@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
@@ -121,6 +121,13 @@ module.exports = _nonIterableSpread, module.exports.__esModule = true, module.ex
121
121
 
122
122
  /***/ }),
123
123
 
124
+ /***/ "0a7d":
125
+ /***/ (function(module, exports, __webpack_require__) {
126
+
127
+ // extracted by mini-css-extract-plugin
128
+
129
+ /***/ }),
130
+
124
131
  /***/ "0d58":
125
132
  /***/ (function(module, exports) {
126
133
 
@@ -307,24 +314,6 @@ module.exports = _iterableToArray, module.exports.__esModule = true, module.expo
307
314
 
308
315
  /***/ }),
309
316
 
310
- /***/ "1292":
311
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
312
-
313
- "use strict";
314
- /* 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");
315
- /* 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__);
316
- /* unused harmony reexport * */
317
-
318
-
319
- /***/ }),
320
-
321
- /***/ "12d1":
322
- /***/ (function(module, exports, __webpack_require__) {
323
-
324
- // extracted by mini-css-extract-plugin
325
-
326
- /***/ }),
327
-
328
317
  /***/ "12f2":
329
318
  /***/ (function(module, exports, __webpack_require__) {
330
319
 
@@ -782,6 +771,13 @@ module.exports = __webpack_require__("e62d");
782
771
 
783
772
  /***/ }),
784
773
 
774
+ /***/ "1613":
775
+ /***/ (function(module, exports, __webpack_require__) {
776
+
777
+ // extracted by mini-css-extract-plugin
778
+
779
+ /***/ }),
780
+
785
781
  /***/ "1951":
786
782
  /***/ (function(module, exports, __webpack_require__) {
787
783
 
@@ -2479,6 +2475,13 @@ module.exports = __webpack_require__("8bbf");
2479
2475
 
2480
2476
  /***/ }),
2481
2477
 
2478
+ /***/ "2a5b":
2479
+ /***/ (function(module, exports, __webpack_require__) {
2480
+
2481
+ // extracted by mini-css-extract-plugin
2482
+
2483
+ /***/ }),
2484
+
2482
2485
  /***/ "2a5e":
2483
2486
  /***/ (function(module, exports, __webpack_require__) {
2484
2487
 
@@ -2598,17 +2601,6 @@ exports.default = {
2598
2601
  }
2599
2602
  };
2600
2603
 
2601
- /***/ }),
2602
-
2603
- /***/ "2ce7":
2604
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
2605
-
2606
- "use strict";
2607
- /* 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");
2608
- /* 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__);
2609
- /* unused harmony reexport * */
2610
-
2611
-
2612
2604
  /***/ }),
2613
2605
 
2614
2606
  /***/ "2ff9":
@@ -2977,6 +2969,13 @@ var removeResizeListener = exports.removeResizeListener = function removeResizeL
2977
2969
 
2978
2970
  /***/ }),
2979
2971
 
2972
+ /***/ "4136":
2973
+ /***/ (function(module, exports, __webpack_require__) {
2974
+
2975
+ // extracted by mini-css-extract-plugin
2976
+
2977
+ /***/ }),
2978
+
2980
2979
  /***/ "417f":
2981
2980
  /***/ (function(module, exports, __webpack_require__) {
2982
2981
 
@@ -3401,6 +3400,13 @@ module.exports = require("core-js/modules/es.array.sort.js");
3401
3400
 
3402
3401
  /***/ }),
3403
3402
 
3403
+ /***/ "4c7f":
3404
+ /***/ (function(module, exports) {
3405
+
3406
+ module.exports = require("core-js/modules/es.array.find-index.js");
3407
+
3408
+ /***/ }),
3409
+
3404
3410
  /***/ "4ccb":
3405
3411
  /***/ (function(module, exports) {
3406
3412
 
@@ -5591,6 +5597,17 @@ src_select.install = function (Vue) {
5591
5597
 
5592
5598
  /******/ });
5593
5599
 
5600
+ /***/ }),
5601
+
5602
+ /***/ "4efe":
5603
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
5604
+
5605
+ "use strict";
5606
+ /* 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");
5607
+ /* 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__);
5608
+ /* unused harmony reexport * */
5609
+
5610
+
5594
5611
  /***/ }),
5595
5612
 
5596
5613
  /***/ "5128":
@@ -5840,7 +5857,6 @@ var _typeof = __webpack_require__("7037").default;
5840
5857
  __webpack_require__("2439");
5841
5858
  __webpack_require__("db0a");
5842
5859
  __webpack_require__("ea64");
5843
- __webpack_require__("f3b8");
5844
5860
  var THREE = __webpack_require__("9206").THREE;
5845
5861
  // Current model's associate data, data fields, external link, nerve map
5846
5862
  // informations,
@@ -5855,26 +5871,20 @@ var OrgansSceneData = function OrgansSceneData() {
5855
5871
  this.currentTime = 0.0;
5856
5872
  this.timeVarying = false;
5857
5873
  };
5858
- var PrimitiveData = function PrimitiveData() {
5859
- this.geometries = [];
5860
- this.lines = [];
5861
- this.glyphsets = [];
5862
- this.pointsets = [];
5863
- };
5864
5874
 
5865
- /**
5866
- * Viewer of 3D-organs models. Users can toggle on/off different views. Data is
5867
- * displayed instead if models are not available.
5868
- *
5869
- * @class
5870
- * @param {PJP.ModelsLoader}
5871
- * ModelsLoaderIn - defined in modelsLoade.js, providing locations of
5872
- * files.
5873
- * @param {String}
5874
- * PanelName - Id of the target element to create the
5875
- * {@link PJP.OrgansViewer} on.
5876
- * @author Alan Wu
5877
- * @returns {PJP.OrgansViewer}
5875
+ /**
5876
+ * Viewer of 3D-organs models. Users can toggle on/off different views. Data is
5877
+ * displayed instead if models are not available.
5878
+ *
5879
+ * @class
5880
+ * @param {PJP.ModelsLoader}
5881
+ * ModelsLoaderIn - defined in modelsLoade.js, providing locations of
5882
+ * files.
5883
+ * @param {String}
5884
+ * PanelName - Id of the target element to create the
5885
+ * {@link PJP.OrgansViewer} on.
5886
+ * @author Alan Wu
5887
+ * @returns {PJP.OrgansViewer}
5878
5888
  */
5879
5889
  var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
5880
5890
  var _this2 = this;
@@ -5882,7 +5892,6 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
5882
5892
  var _this = this;
5883
5893
  var pickerScene = undefined;
5884
5894
  this.sceneData = new OrgansSceneData();
5885
- this.primitiveData = new PrimitiveData();
5886
5895
  var timeChangedCallbacks = new Array();
5887
5896
  var sceneChangedCallbacks = new Array();
5888
5897
  var organPartAddedCallbacks = new Array();
@@ -5894,8 +5903,8 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
5894
5903
  return _this.sceneData;
5895
5904
  };
5896
5905
 
5897
- /**
5898
- * Used to update internal timer in scene when time slider has changed.
5906
+ /**
5907
+ * Used to update internal timer in scene when time slider has changed.
5899
5908
  */
5900
5909
  this.updateTime = function (value) {
5901
5910
  var duration = 6000;
@@ -5908,8 +5917,8 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
5908
5917
  _this.sceneData.currentTime = value;
5909
5918
  };
5910
5919
 
5911
- /**
5912
- * Update the time slider and other renderers/scenes when time has changed.
5920
+ /**
5921
+ * Update the time slider and other renderers/scenes when time has changed.
5913
5922
  */
5914
5923
  var preRenderTimeUpdate = function preRenderTimeUpdate() {
5915
5924
  var duration = 3000;
@@ -5976,8 +5985,8 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
5976
5985
  };
5977
5986
  };
5978
5987
 
5979
- /**
5980
- * Add a callback which will be called when time has changed
5988
+ /**
5989
+ * Add a callback which will be called when time has changed
5981
5990
  */
5982
5991
  this.addTimeChangedCallback = function (callback) {
5983
5992
  if (_typeof(callback === "function")) timeChangedCallbacks.push(callback);
@@ -6013,11 +6022,16 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
6013
6022
  var id = undefined;
6014
6023
  var intersectedObject = undefined;
6015
6024
  if (intersected !== undefined) {
6025
+ var marker = false;
6016
6026
  if (intersected.object.userData && intersected.object.userData.isMarker) {
6027
+ marker = true;
6017
6028
  intersectedObject = intersected.object.userData.parent.morph;
6018
6029
  } else {
6019
6030
  intersectedObject = intersected.object;
6020
6031
  }
6032
+ try {
6033
+ intersectedObject.userData.userData.annotation.data.lastActionOnMarker = marker;
6034
+ } finally {}
6021
6035
  if (intersectedObject) {
6022
6036
  if (intersectedObject.name) {
6023
6037
  id = intersectedObject.name;
@@ -6035,12 +6049,12 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
6035
6049
  };
6036
6050
  };
6037
6051
 
6038
- /**
6039
- * Callback function when a pickable object has been picked. It will then
6040
- * call functions in tissueViewer and cellPanel to show corresponding
6041
- * informations.
6042
- *
6043
- * @callback
6052
+ /**
6053
+ * Callback function when a pickable object has been picked. It will then
6054
+ * call functions in tissueViewer and cellPanel to show corresponding
6055
+ * informations.
6056
+ *
6057
+ * @callback
6044
6058
  */
6045
6059
  var _pickingCallback = function _pickingCallback() {
6046
6060
  return function (intersects, window_x, window_y) {
@@ -6063,10 +6077,10 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
6063
6077
  };
6064
6078
  };
6065
6079
 
6066
- /**
6067
- * Callback function when a pickable object has been hovered over.
6068
- *
6069
- * @callback
6080
+ /**
6081
+ * Callback function when a pickable object has been hovered over.
6082
+ *
6083
+ * @callback
6070
6084
  */
6071
6085
  var _hoverCallback = function _hoverCallback() {
6072
6086
  return function (intersects, window_x, window_y) {
@@ -6113,40 +6127,40 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
6113
6127
  }
6114
6128
  };
6115
6129
 
6116
- /**
6117
- * Change visibility for parts of the current scene.
6130
+ /**
6131
+ * Change visibility for parts of the current scene.
6118
6132
  */
6119
6133
  this.changeGeometriesVisibility = function (name, value) {
6120
6134
  changeOrganPartsVisibilityForScene(_this.scene, name, value, 'geometries');
6121
6135
  if (pickerScene) changeOrganPartsVisibilityForScene(pickerScene, name, value, 'geometries');
6122
6136
  };
6123
6137
 
6124
- /**
6125
- * Change visibility for parts of the current scene.
6138
+ /**
6139
+ * Change visibility for parts of the current scene.
6126
6140
  */
6127
6141
  this.changeGlyphsetsVisibility = function (name, value) {
6128
6142
  changeOrganPartsVisibilityForScene(_this.scene, name, value, 'glyphsets');
6129
6143
  if (pickerScene) changeOrganPartsVisibilityForScene(pickerScene, name, value, 'glyphsets');
6130
6144
  };
6131
6145
 
6132
- /**
6133
- * Change visibility for parts of the current scene.
6146
+ /**
6147
+ * Change visibility for parts of the current scene.
6134
6148
  */
6135
6149
  this.changeLinesVisibility = function (name, value) {
6136
6150
  changeOrganPartsVisibilityForScene(_this.scene, name, value, 'lines');
6137
6151
  if (pickerScene) changeOrganPartsVisibilityForScene(pickerScene, name, value, 'lines');
6138
6152
  };
6139
6153
 
6140
- /**
6141
- * Change visibility for parts of the current scene.
6154
+ /**
6155
+ * Change visibility for parts of the current scene.
6142
6156
  */
6143
6157
  this.changePointsetsVisibility = function (name, value) {
6144
6158
  changeOrganPartsVisibilityForScene(_this.scene, name, value, 'pointsets');
6145
6159
  if (pickerScene) changeOrganPartsVisibilityForScene(pickerScene, name, value, 'pointsets');
6146
6160
  };
6147
6161
 
6148
- /**
6149
- * Change visibility for parts of the current scene.
6162
+ /**
6163
+ * Change visibility for parts of the current scene.
6150
6164
  */
6151
6165
  this.changeOrganPartsVisibility = function (name, value, typeIn) {
6152
6166
  var type = "all";
@@ -6166,23 +6180,11 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
6166
6180
  internalRenderer.setClearColor(colour, 1);
6167
6181
  }
6168
6182
  };
6169
- var addOrganPartToPrimitiveData = function addOrganPartToPrimitiveData(zincObject) {
6170
- if (zincObject.isGeometry) {
6171
- _this.primitiveData.geometries.push(zincObject);
6172
- } else if (zincObject.isGlyphset) {
6173
- _this.primitiveData.glyphsets.push(zincObject);
6174
- } else if (zincObject.isLines) {
6175
- _this.primitiveData.lines.push(zincObject);
6176
- } else if (zincObject.isPointset) {
6177
- _this.primitiveData.pointsets.push(zincObject);
6178
- }
6179
- };
6180
6183
  var addOrganPart = function addOrganPart(systemName, partName, useDefautColour, zincObject) {
6181
6184
  for (var i = 0; i < organPartAddedCallbacks.length; i++) {
6182
6185
  organPartAddedCallbacks[i](zincObject, _this.scene.isTimeVarying());
6183
6186
  }
6184
6187
  if (useDefautColour) modelsLoader.setGeometryColour(zincObject, systemName, partName);
6185
- addOrganPartToPrimitiveData(zincObject);
6186
6188
  var annotation = new (__webpack_require__("984d").annotation)();
6187
6189
  var region = zincObject.region.getFullPath();
6188
6190
  annotation.data = {
@@ -6190,14 +6192,16 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
6190
6192
  system: systemName,
6191
6193
  part: partName,
6192
6194
  group: zincObject.groupName,
6193
- region: region
6195
+ region: region,
6196
+ uuid: zincObject.uuid,
6197
+ lastActionOnMarker: false
6194
6198
  };
6195
6199
  zincObject.userData["annotation"] = annotation;
6196
6200
  };
6197
6201
 
6198
- /**
6199
- * New organs geometry has been added to the scene, add UIs and make
6200
- * sure the viewport is correct.
6202
+ /**
6203
+ * New organs geometry has been added to the scene, add UIs and make
6204
+ * sure the viewport is correct.
6201
6205
  */
6202
6206
  var _addOrganPartCallback = function _addOrganPartCallback(systemName, partName, useDefautColour) {
6203
6207
  return function (zincObject) {
@@ -6218,9 +6222,9 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
6218
6222
  };
6219
6223
  };
6220
6224
 
6221
- /**
6222
- * Toggle data field displays. Data fields displays flow/pressure and <button @click="play">Play</button>
6223
- * other activities of the organs.
6225
+ /**
6226
+ * Toggle data field displays. Data fields displays flow/pressure and <button @click="play">Play</button>
6227
+ * other activities of the organs.
6224
6228
  */
6225
6229
  this.updateFieldvisibility = function (dataFields, value) {
6226
6230
  for (var i = 0; i < dataFields.length; i++) {
@@ -6242,11 +6246,11 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
6242
6246
  }
6243
6247
  };
6244
6248
 
6245
- /**
6246
- * Return an array containing name(s) of species that also contains the
6247
- * currently displayed organs.
6248
- *
6249
- * @returns {Array} containing species name
6249
+ /**
6250
+ * Return an array containing name(s) of species that also contains the
6251
+ * currently displayed organs.
6252
+ *
6253
+ * @returns {Array} containing species name
6250
6254
  */
6251
6255
  this.getAvailableSpecies = function (currentSpecies, currentSystem, currentPart) {
6252
6256
  var availableSpecies = new Array();
@@ -6271,10 +6275,6 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
6271
6275
  _this.sceneData.currentSystem = systemName;
6272
6276
  _this.sceneData.currentPart = partName;
6273
6277
  _this.sceneData.currentTime = 0.0;
6274
- _this.primitiveData.geometries.splice(0);
6275
- _this.primitiveData.lines.splice(0);
6276
- _this.primitiveData.glyphsets.splice(0);
6277
- _this.primitiveData.pointsets.splice(0);
6278
6278
  _this.sceneData.timeVarying = false;
6279
6279
  // This is used as title
6280
6280
  var name = "";
@@ -6372,11 +6372,11 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
6372
6372
  return false;
6373
6373
  };
6374
6374
 
6375
- /**
6376
- * initialise loading of the html layout for the organs panel, this is
6377
- * called when the {@link PJP.OrgansViewer} is created.
6378
- *
6379
- * @async
6375
+ /**
6376
+ * initialise loading of the html layout for the organs panel, this is
6377
+ * called when the {@link PJP.OrgansViewer} is created.
6378
+ *
6379
+ * @async
6380
6380
  */
6381
6381
  var initialise = function initialise() {
6382
6382
  _this.initialiseRenderer(undefined);
@@ -6497,13 +6497,6 @@ exports.default = {
6497
6497
 
6498
6498
  /***/ }),
6499
6499
 
6500
- /***/ "5682":
6501
- /***/ (function(module, exports, __webpack_require__) {
6502
-
6503
- // extracted by mini-css-extract-plugin
6504
-
6505
- /***/ }),
6506
-
6507
6500
  /***/ "5924":
6508
6501
  /***/ (function(module, exports, __webpack_require__) {
6509
6502
 
@@ -6743,17 +6736,6 @@ var isInContainer = exports.isInContainer = function isInContainer(el, container
6743
6736
  return elRect.top < containerRect.bottom && elRect.bottom > containerRect.top && elRect.right > containerRect.left && elRect.left < containerRect.right;
6744
6737
  };
6745
6738
 
6746
- /***/ }),
6747
-
6748
- /***/ "5956":
6749
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
6750
-
6751
- "use strict";
6752
- /* 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");
6753
- /* 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__);
6754
- /* unused harmony reexport * */
6755
-
6756
-
6757
6739
  /***/ }),
6758
6740
 
6759
6741
  /***/ "5a3b":
@@ -6775,13 +6757,6 @@ module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exp
6775
6757
 
6776
6758
  /***/ }),
6777
6759
 
6778
- /***/ "5db0":
6779
- /***/ (function(module, exports, __webpack_require__) {
6780
-
6781
- // extracted by mini-css-extract-plugin
6782
-
6783
- /***/ }),
6784
-
6785
6760
  /***/ "5e32":
6786
6761
  /***/ (function(module, exports, __webpack_require__) {
6787
6762
 
@@ -6796,11 +6771,11 @@ var _toConsumableArray = __webpack_require__("448a").default;
6796
6771
  __webpack_require__("2439");
6797
6772
  var THREE = __webpack_require__("9206").THREE;
6798
6773
 
6799
- /**
6800
- * This module manages highlighted and selected objects in 3D modules.
6801
- *
6802
- * @class
6803
- * @returns {exports.GraphicsHighlight}
6774
+ /**
6775
+ * This module manages highlighted and selected objects in 3D modules.
6776
+ *
6777
+ * @class
6778
+ * @returns {exports.GraphicsHighlight}
6804
6779
  */
6805
6780
  exports.GraphicsHighlight = function () {
6806
6781
  var currentHighlightedObjects = [];
@@ -8183,6 +8158,17 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
8183
8158
 
8184
8159
  module.exports = require("core-js/modules/es.string.replace.js");
8185
8160
 
8161
+ /***/ }),
8162
+
8163
+ /***/ "6514":
8164
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
8165
+
8166
+ "use strict";
8167
+ /* 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");
8168
+ /* 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__);
8169
+ /* unused harmony reexport * */
8170
+
8171
+
8186
8172
  /***/ }),
8187
8173
 
8188
8174
  /***/ "6611":
@@ -11222,6 +11208,13 @@ exports.default = {
11222
11208
 
11223
11209
  /***/ }),
11224
11210
 
11211
+ /***/ "6de0":
11212
+ /***/ (function(module, exports) {
11213
+
11214
+ module.exports = require("core-js/modules/es.object.get-own-property-descriptor.js");
11215
+
11216
+ /***/ }),
11217
+
11225
11218
  /***/ "7037":
11226
11219
  /***/ (function(module, exports, __webpack_require__) {
11227
11220
 
@@ -11252,13 +11245,6 @@ module.exports = require("core-js/modules/web.url-search-params.js");
11252
11245
 
11253
11246
  /***/ }),
11254
11247
 
11255
- /***/ "7209":
11256
- /***/ (function(module, exports, __webpack_require__) {
11257
-
11258
- // extracted by mini-css-extract-plugin
11259
-
11260
- /***/ }),
11261
-
11262
11248
  /***/ "72aa":
11263
11249
  /***/ (function(module, exports, __webpack_require__) {
11264
11250
 
@@ -14158,6 +14144,24 @@ module.exports = __webpack_require__("8bbf");
14158
14144
 
14159
14145
  /******/ });
14160
14146
 
14147
+ /***/ }),
14148
+
14149
+ /***/ "7664":
14150
+ /***/ (function(module, exports) {
14151
+
14152
+ module.exports = require("core-js/modules/es.object.get-own-property-descriptors.js");
14153
+
14154
+ /***/ }),
14155
+
14156
+ /***/ "79d6":
14157
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
14158
+
14159
+ "use strict";
14160
+ /* 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");
14161
+ /* 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__);
14162
+ /* unused harmony reexport * */
14163
+
14164
+
14161
14165
  /***/ }),
14162
14166
 
14163
14167
  /***/ "7a0f":
@@ -15078,16 +15082,17 @@ var isMac = exports.isMac = function isMac() {
15078
15082
  /***/ (function(module, exports, __webpack_require__) {
15079
15083
 
15080
15084
  var _readOnlyError = __webpack_require__("da60").default;
15085
+ __webpack_require__("4391");
15081
15086
  __webpack_require__("db0a");
15082
15087
  __webpack_require__("2439");
15083
15088
  __webpack_require__("97d3");
15084
15089
  __webpack_require__("13e3");
15085
15090
  var THREE = __webpack_require__("9206").THREE;
15086
15091
 
15087
- /**
15088
- * Create a {@link Zinc.Renderer} on the dom element with corresponding elementID.
15089
- * @param {String} elementID - id of the target dom element.
15090
- * @returns {Zinc.Renderer}
15092
+ /**
15093
+ * Create a {@link Zinc.Renderer} on the dom element with corresponding elementID.
15094
+ * @param {String} elementID - id of the target dom element.
15095
+ * @returns {Zinc.Renderer}
15091
15096
  */
15092
15097
  var createRenderer = function createRenderer() {
15093
15098
  var WEBGL = __webpack_require__("cf41").WEBGL;
@@ -15123,18 +15128,21 @@ var RendererModule = function RendererModule() {
15123
15128
  this.liveUpdatesObjects = undefined;
15124
15129
  };
15125
15130
  RendererModule.prototype = Object.create(__webpack_require__("6aa6").BaseModule.prototype);
15126
-
15127
- /**
15128
- * This function will get the the first intersected object with name or
15129
- * the first glyph object with name.
15130
- */
15131
15131
  RendererModule.prototype.getIntersectedObject = function (intersects) {
15132
15132
  if (intersects) {
15133
- for (var i = 0; i < intersects.length; i++) {
15134
- if (intersects[i] !== undefined) {
15135
- 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];
15133
+ var typeMap = intersects.map(function (intersect) {
15134
+ if (intersect && intersect.object && intersect.object.userData) {
15135
+ if (intersect.object.userData.isMarker) {
15136
+ return 1;
15137
+ } else if (intersect.object.name && intersect.object.userData.isZincObject) {
15138
+ return 2;
15139
+ }
15136
15140
  }
15137
- }
15141
+ return 0;
15142
+ });
15143
+ var i = typeMap.indexOf(1);
15144
+ i = i > -1 ? i : typeMap.indexOf(2);
15145
+ return intersects[i];
15138
15146
  }
15139
15147
  return undefined;
15140
15148
  };
@@ -15189,9 +15197,10 @@ RendererModule.prototype.setupLiveCoordinates = function (zincObjects) {
15189
15197
  var boundingBox = this.scene.getBoundingBoxOfZincObjects(zincObjects);
15190
15198
  var newSelectedCenter = new THREE.Vector3();
15191
15199
  boundingBox.getCenter(newSelectedCenter);
15192
- if (this.selectedCenter == undefined) this.selectedCenter = newSelectedCenter;else {
15193
- this.selectedCenter.x = newSelectedCenter.x;
15194
- this.selectedCenter.y = newSelectedCenter.y;
15200
+ if (this.selectedCenter == undefined) {
15201
+ this.selectedCenter = newSelectedCenter;
15202
+ } else {
15203
+ this.selectedCenter.copy(newSelectedCenter);
15195
15204
  }
15196
15205
  } else {
15197
15206
  this.selectedCenter = undefined;
@@ -15275,31 +15284,31 @@ RendererModule.prototype.viewAll = function () {
15275
15284
  if (this.zincRenderer) this.zincRenderer.viewAll();
15276
15285
  };
15277
15286
 
15278
- /**
15279
- * Start the animation and let the renderer to processs with
15280
- * time progression
15287
+ /**
15288
+ * Start the animation and let the renderer to processs with
15289
+ * time progression
15281
15290
  */
15282
15291
  RendererModule.prototype.playAnimation = function (flag) {
15283
15292
  if (this.zincRenderer) this.zincRenderer.playAnimation = flag;
15284
15293
  };
15285
15294
 
15286
- /**
15287
- * Set the speed of playback
15295
+ /**
15296
+ * Set the speed of playback
15288
15297
  */
15289
15298
  RendererModule.prototype.setPlayRate = function (value) {
15290
15299
  if (this.zincRenderer) this.zincRenderer.setPlayRate(value);
15291
15300
  };
15292
15301
 
15293
- /**
15294
- * Get the speed of playback
15302
+ /**
15303
+ * Get the speed of playback
15295
15304
  */
15296
15305
  RendererModule.prototype.getPlayRate = function (value) {
15297
15306
  if (this.zincRenderer) return this.zincRenderer.getPlayRate();else return 0.0;
15298
15307
  };
15299
15308
 
15300
- /** Initialise everything in the renderer, including the 3D renderer,
15301
- * and picker for the 3D renderer.
15302
- *
15309
+ /** Initialise everything in the renderer, including the 3D renderer,
15310
+ * and picker for the 3D renderer.
15311
+ *
15303
15312
  */
15304
15313
  RendererModule.prototype.initialiseRenderer = function (displayAreaIn) {
15305
15314
  if (this.zincRenderer === undefined || this.rendererContainer === undefined) {
@@ -17080,17 +17089,6 @@ var RE_NARGS = /(%|)\{([0-9a-zA-Z_]+)\}/g;
17080
17089
 
17081
17090
  module.exports = require("resize-observer-polyfill");
17082
17091
 
17083
- /***/ }),
17084
-
17085
- /***/ "a1fc":
17086
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
17087
-
17088
- "use strict";
17089
- /* 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");
17090
- /* 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__);
17091
- /* unused harmony reexport * */
17092
-
17093
-
17094
17092
  /***/ }),
17095
17093
 
17096
17094
  /***/ "a578":
@@ -17448,6 +17446,17 @@ var isDefined = exports.isDefined = function isDefined(val) {
17448
17446
 
17449
17447
  module.exports = require("core-js/modules/es.object.assign.js");
17450
17448
 
17449
+ /***/ }),
17450
+
17451
+ /***/ "ad4c":
17452
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
17453
+
17454
+ "use strict";
17455
+ /* 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");
17456
+ /* 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__);
17457
+ /* unused harmony reexport * */
17458
+
17459
+
17451
17460
  /***/ }),
17452
17461
 
17453
17462
  /***/ "adec":
@@ -17597,6 +17606,13 @@ exports.default = {
17597
17606
 
17598
17607
  /***/ }),
17599
17608
 
17609
+ /***/ "b7ac":
17610
+ /***/ (function(module, exports) {
17611
+
17612
+ module.exports = require("core-js/modules/es.array.reduce.js");
17613
+
17614
+ /***/ }),
17615
+
17600
17616
  /***/ "b94f":
17601
17617
  /***/ (function(module, exports) {
17602
17618
 
@@ -18118,6 +18134,13 @@ module.exports = require("core-js/modules/es.regexp.exec.js");
18118
18134
 
18119
18135
  /***/ }),
18120
18136
 
18137
+ /***/ "ccb0":
18138
+ /***/ (function(module, exports) {
18139
+
18140
+ module.exports = require("core-js/modules/es.array.concat.js");
18141
+
18142
+ /***/ }),
18143
+
18121
18144
  /***/ "ccb3":
18122
18145
  /***/ (function(module, exports) {
18123
18146
 
@@ -18130,9 +18153,9 @@ module.exports = require("core-js/modules/es.number.to-fixed.js");
18130
18153
 
18131
18154
  __webpack_require__("c8a6");
18132
18155
  __webpack_require__("6378");
18133
- /**
18134
- * @author alteredq / http://alteredqualia.com/
18135
- * @author mr.doob / http://mrdoob.com/
18156
+ /**
18157
+ * @author alteredq / http://alteredqualia.com/
18158
+ * @author mr.doob / http://mrdoob.com/
18136
18159
  */
18137
18160
 
18138
18161
  exports.WEBGL = {
@@ -19269,6 +19292,13 @@ tab_pane.install = function (Vue) {
19269
19292
 
19270
19293
  /***/ }),
19271
19294
 
19295
+ /***/ "e01a":
19296
+ /***/ (function(module, exports) {
19297
+
19298
+ module.exports = require("core-js/modules/es.object.values.js");
19299
+
19300
+ /***/ }),
19301
+
19272
19302
  /***/ "e450":
19273
19303
  /***/ (function(module, exports, __webpack_require__) {
19274
19304
 
@@ -20026,6 +20056,13 @@ input_number.install = function (Vue) {
20026
20056
 
20027
20057
  /***/ }),
20028
20058
 
20059
+ /***/ "e57c":
20060
+ /***/ (function(module, exports, __webpack_require__) {
20061
+
20062
+ // extracted by mini-css-extract-plugin
20063
+
20064
+ /***/ }),
20065
+
20029
20066
  /***/ "e612":
20030
20067
  /***/ (function(module, exports, __webpack_require__) {
20031
20068
 
@@ -20780,6 +20817,17 @@ module.exports = require("core-js/modules/es.array.slice.js");
20780
20817
 
20781
20818
  module.exports = require("core-js/modules/es.object.keys.js");
20782
20819
 
20820
+ /***/ }),
20821
+
20822
+ /***/ "ee47":
20823
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
20824
+
20825
+ "use strict";
20826
+ /* 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");
20827
+ /* 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__);
20828
+ /* unused harmony reexport * */
20829
+
20830
+
20783
20831
  /***/ }),
20784
20832
 
20785
20833
  /***/ "eedf":
@@ -21277,13 +21325,6 @@ exports.default = {
21277
21325
 
21278
21326
  /***/ }),
21279
21327
 
21280
- /***/ "f0e8":
21281
- /***/ (function(module, exports, __webpack_require__) {
21282
-
21283
- // extracted by mini-css-extract-plugin
21284
-
21285
- /***/ }),
21286
-
21287
21328
  /***/ "f3ad":
21288
21329
  /***/ (function(module, exports, __webpack_require__) {
21289
21330
 
@@ -22292,17 +22333,6 @@ module.exports = __webpack_require__("7f4d");
22292
22333
 
22293
22334
  module.exports = require("core-js/modules/es.array.splice.js");
22294
22335
 
22295
- /***/ }),
22296
-
22297
- /***/ "f4b0":
22298
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
22299
-
22300
- "use strict";
22301
- /* 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");
22302
- /* 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__);
22303
- /* unused harmony reexport * */
22304
-
22305
-
22306
22336
  /***/ }),
22307
22337
 
22308
22338
  /***/ "f4f9":
@@ -22360,7 +22390,7 @@ if (typeof window !== 'undefined') {
22360
22390
  // Indicate to webpack that this file can be concatenated
22361
22391
  /* harmony default export */ var setPublicPath = (null);
22362
22392
 
22363
- // 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&
22393
+ // 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&
22364
22394
  var render = function render() {
22365
22395
  var _vm = this,
22366
22396
  _c = _vm._self._c;
@@ -22845,7 +22875,7 @@ var render = function render() {
22845
22875
  };
22846
22876
  var staticRenderFns = [];
22847
22877
 
22848
- // CONCATENATED MODULE: ./src/components/ScaffoldVuer.vue?vue&type=template&id=02838f59&scoped=true&
22878
+ // CONCATENATED MODULE: ./src/components/ScaffoldVuer.vue?vue&type=template&id=718c348c&scoped=true&
22849
22879
 
22850
22880
  // EXTERNAL MODULE: ./node_modules/element-ui/lib/theme-chalk/tabs.css
22851
22881
  var tabs = __webpack_require__("075a");
@@ -22920,15 +22950,18 @@ var theme_chalk_button = __webpack_require__("1951");
22920
22950
  var lib_button = __webpack_require__("eedf");
22921
22951
  var lib_button_default = /*#__PURE__*/__webpack_require__.n(lib_button);
22922
22952
 
22953
+ // EXTERNAL MODULE: external "core-js/modules/es.object.to-string.js"
22954
+ var es_object_to_string_js_ = __webpack_require__("97d3");
22955
+
22956
+ // EXTERNAL MODULE: external "core-js/modules/web.dom-collections.for-each.js"
22957
+ var web_dom_collections_for_each_js_ = __webpack_require__("13e3");
22958
+
22923
22959
  // EXTERNAL MODULE: external "core-js/modules/es.number.to-fixed.js"
22924
22960
  var es_number_to_fixed_js_ = __webpack_require__("ccb3");
22925
22961
 
22926
22962
  // EXTERNAL MODULE: external "core-js/modules/es.array.iterator.js"
22927
22963
  var es_array_iterator_js_ = __webpack_require__("4ccb");
22928
22964
 
22929
- // EXTERNAL MODULE: external "core-js/modules/es.object.to-string.js"
22930
- var es_object_to_string_js_ = __webpack_require__("97d3");
22931
-
22932
22965
  // EXTERNAL MODULE: external "core-js/modules/es.string.iterator.js"
22933
22966
  var es_string_iterator_js_ = __webpack_require__("9bb5");
22934
22967
 
@@ -22941,18 +22974,9 @@ var web_url_js_ = __webpack_require__("b94f");
22941
22974
  // EXTERNAL MODULE: external "core-js/modules/web.url-search-params.js"
22942
22975
  var web_url_search_params_js_ = __webpack_require__("712c");
22943
22976
 
22944
- // EXTERNAL MODULE: external "core-js/modules/web.dom-collections.for-each.js"
22945
- var web_dom_collections_for_each_js_ = __webpack_require__("13e3");
22946
-
22947
22977
  // EXTERNAL MODULE: external "core-js/modules/es.array.push.js"
22948
22978
  var es_array_push_js_ = __webpack_require__("2439");
22949
22979
 
22950
- // EXTERNAL MODULE: external "core-js/modules/es.regexp.exec.js"
22951
- var es_regexp_exec_js_ = __webpack_require__("c8a6");
22952
-
22953
- // EXTERNAL MODULE: external "core-js/modules/es.string.search.js"
22954
- var es_string_search_js_ = __webpack_require__("1c32");
22955
-
22956
22980
  // EXTERNAL MODULE: external "core-js/modules/es.object.keys.js"
22957
22981
  var es_object_keys_js_ = __webpack_require__("ea64");
22958
22982
 
@@ -22960,7 +22984,7 @@ var es_object_keys_js_ = __webpack_require__("ea64");
22960
22984
  var external_vue_ = __webpack_require__("8bbf");
22961
22985
  var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);
22962
22986
 
22963
- // 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&
22987
+ // 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&
22964
22988
  var OpacityControlsvue_type_template_id_4c00a30f_scoped_true_render = function render() {
22965
22989
  var _vm = this,
22966
22990
  _c = _vm._self._c;
@@ -23107,8 +23131,8 @@ external_vue_default.a.use(lib_icon_default.a);
23107
23131
  external_vue_default.a.use(lib_main_default.a);
23108
23132
  external_vue_default.a.use(lib_slider_default.a);
23109
23133
 
23110
- /**
23111
- * A component to control the opacity of the target object.
23134
+ /**
23135
+ * A component to control the opacity of the target object.
23112
23136
  */
23113
23137
  /* harmony default export */ var OpacityControlsvue_type_script_lang_js_ = ({
23114
23138
  name: "OpacityControls",
@@ -23267,8 +23291,8 @@ var component = normalizeComponent(
23267
23291
  )
23268
23292
 
23269
23293
  /* harmony default export */ var OpacityControls = (component.exports);
23270
- // 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&
23271
- var ScaffoldTooltipvue_type_template_id_01613535_scoped_true_render = function render() {
23294
+ // 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&
23295
+ var ScaffoldTooltipvue_type_template_id_0cbe500c_scoped_true_render = function render() {
23272
23296
  var _vm = this,
23273
23297
  _c = _vm._self._c;
23274
23298
  return _c('div', {
@@ -23290,21 +23314,15 @@ var ScaffoldTooltipvue_type_template_id_01613535_scoped_true_render = function r
23290
23314
  },
23291
23315
  expression: "display"
23292
23316
  }
23293
- }, [_c('div', {
23317
+ }, [[_c('div', {
23294
23318
  staticClass: "tooltip-text"
23295
23319
  }, [_vm._v(_vm._s(_vm.label))]), _vm.region ? _c('div', {
23296
23320
  staticClass: "tooltip-text"
23297
- }, [_vm._v("Region: " + _vm._s(_vm.region))]) : _vm._e(), _c('i', {
23298
- directives: [{
23299
- name: "popover",
23300
- rawName: "v-popover:tooltip",
23301
- arg: "tooltip"
23302
- }]
23303
- })])], 1);
23321
+ }, [_vm._v("Region: " + _vm._s(_vm.region))]) : _vm._e()]], 2)], 1);
23304
23322
  };
23305
- var ScaffoldTooltipvue_type_template_id_01613535_scoped_true_staticRenderFns = [];
23323
+ var ScaffoldTooltipvue_type_template_id_0cbe500c_scoped_true_staticRenderFns = [];
23306
23324
 
23307
- // CONCATENATED MODULE: ./src/components/ScaffoldTooltip.vue?vue&type=template&id=01613535&scoped=true&
23325
+ // CONCATENATED MODULE: ./src/components/ScaffoldTooltip.vue?vue&type=template&id=0cbe500c&scoped=true&
23308
23326
 
23309
23327
  // EXTERNAL MODULE: external "core-js/modules/es.number.constructor.js"
23310
23328
  var es_number_constructor_js_ = __webpack_require__("f989");
@@ -23321,8 +23339,8 @@ var es_number_constructor_js_ = __webpack_require__("f989");
23321
23339
  locale_default.a.use(en_default.a);
23322
23340
  external_vue_default.a.use(lib_popover_default.a);
23323
23341
 
23324
- /**
23325
- * A component to control the opacity of the target object.
23342
+ /**
23343
+ * A component to control the opacity of the target object.
23326
23344
  */
23327
23345
  /* harmony default export */ var ScaffoldTooltipvue_type_script_lang_js_ = ({
23328
23346
  name: "ScaffoldTooltip",
@@ -23359,8 +23377,9 @@ external_vue_default.a.use(lib_popover_default.a);
23359
23377
  if (this.region) {
23360
23378
  yOffset = 55;
23361
23379
  }
23380
+ var x = this.x - 40;
23362
23381
  return {
23363
- left: this.x + "px",
23382
+ left: x + "px",
23364
23383
  top: this.y - yOffset + "px"
23365
23384
  };
23366
23385
  }
@@ -23382,8 +23401,8 @@ external_vue_default.a.use(lib_popover_default.a);
23382
23401
  });
23383
23402
  // CONCATENATED MODULE: ./src/components/ScaffoldTooltip.vue?vue&type=script&lang=js&
23384
23403
  /* harmony default export */ var components_ScaffoldTooltipvue_type_script_lang_js_ = (ScaffoldTooltipvue_type_script_lang_js_);
23385
- // EXTERNAL MODULE: ./src/components/ScaffoldTooltip.vue?vue&type=style&index=0&id=01613535&prod&scoped=true&lang=scss&
23386
- var ScaffoldTooltipvue_type_style_index_0_id_01613535_prod_scoped_true_lang_scss_ = __webpack_require__("1292");
23404
+ // EXTERNAL MODULE: ./src/components/ScaffoldTooltip.vue?vue&type=style&index=0&id=0cbe500c&prod&scoped=true&lang=scss&
23405
+ var ScaffoldTooltipvue_type_style_index_0_id_0cbe500c_prod_scoped_true_lang_scss_ = __webpack_require__("ad4c");
23387
23406
 
23388
23407
  // CONCATENATED MODULE: ./src/components/ScaffoldTooltip.vue
23389
23408
 
@@ -23396,18 +23415,26 @@ var ScaffoldTooltipvue_type_style_index_0_id_01613535_prod_scoped_true_lang_scss
23396
23415
 
23397
23416
  var ScaffoldTooltip_component = normalizeComponent(
23398
23417
  components_ScaffoldTooltipvue_type_script_lang_js_,
23399
- ScaffoldTooltipvue_type_template_id_01613535_scoped_true_render,
23400
- ScaffoldTooltipvue_type_template_id_01613535_scoped_true_staticRenderFns,
23418
+ ScaffoldTooltipvue_type_template_id_0cbe500c_scoped_true_render,
23419
+ ScaffoldTooltipvue_type_template_id_0cbe500c_scoped_true_staticRenderFns,
23401
23420
  false,
23402
23421
  null,
23403
- "01613535",
23422
+ "0cbe500c",
23404
23423
  null
23405
23424
 
23406
23425
  )
23407
23426
 
23408
23427
  /* harmony default export */ var ScaffoldTooltip = (ScaffoldTooltip_component.exports);
23409
- // 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&
23410
- var TreeControlsvue_type_template_id_5a5e9e67_scoped_true_render = function render() {
23428
+ // EXTERNAL MODULE: external "core-js/modules/es.array.includes.js"
23429
+ var es_array_includes_js_ = __webpack_require__("85f7");
23430
+
23431
+ // EXTERNAL MODULE: external "core-js/modules/es.string.includes.js"
23432
+ var es_string_includes_js_ = __webpack_require__("fd22");
23433
+
23434
+ // 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&
23435
+
23436
+
23437
+ var TreeControlsvue_type_template_id_29a4f879_scoped_true_render = function render() {
23411
23438
  var _vm = this,
23412
23439
  _c = _vm._self._c;
23413
23440
  return _c('div', {
@@ -23455,8 +23482,8 @@ var TreeControlsvue_type_template_id_5a5e9e67_scoped_true_render = function rend
23455
23482
  return _c('span', {
23456
23483
  staticClass: "region-tree-node",
23457
23484
  class: {
23458
- activeItem: _vm.nodeIsActive(data),
23459
- hoverItem: _vm.nodeIsHover(data)
23485
+ activeItem: _vm.active.includes(data.id),
23486
+ hoverItem: _vm.hover.includes(data.id)
23460
23487
  },
23461
23488
  on: {
23462
23489
  "click": function click($event) {
@@ -23496,9 +23523,9 @@ var TreeControlsvue_type_template_id_5a5e9e67_scoped_true_render = function rend
23496
23523
  staticClass: "el-icon-arrow-left"
23497
23524
  })])]);
23498
23525
  };
23499
- var TreeControlsvue_type_template_id_5a5e9e67_scoped_true_staticRenderFns = [];
23526
+ var TreeControlsvue_type_template_id_29a4f879_scoped_true_staticRenderFns = [];
23500
23527
 
23501
- // CONCATENATED MODULE: ./src/components/TreeControls.vue?vue&type=template&id=5a5e9e67&scoped=true&
23528
+ // CONCATENATED MODULE: ./src/components/TreeControls.vue?vue&type=template&id=29a4f879&scoped=true&
23502
23529
 
23503
23530
  // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
23504
23531
  function _arrayLikeToArray(arr, len) {
@@ -23541,6 +23568,9 @@ var es_array_slice_js_ = __webpack_require__("ea12");
23541
23568
  // EXTERNAL MODULE: external "core-js/modules/es.function.name.js"
23542
23569
  var es_function_name_js_ = __webpack_require__("db0a");
23543
23570
 
23571
+ // EXTERNAL MODULE: external "core-js/modules/es.regexp.exec.js"
23572
+ var es_regexp_exec_js_ = __webpack_require__("c8a6");
23573
+
23544
23574
  // EXTERNAL MODULE: external "core-js/modules/es.regexp.test.js"
23545
23575
  var es_regexp_test_js_ = __webpack_require__("5a3b");
23546
23576
 
@@ -23614,42 +23644,174 @@ var es_array_find_js_ = __webpack_require__("0d58");
23614
23644
  // EXTERNAL MODULE: external "core-js/modules/es.string.replace.js"
23615
23645
  var es_string_replace_js_ = __webpack_require__("6378");
23616
23646
 
23617
- // EXTERNAL MODULE: external "core-js/modules/es.array.includes.js"
23618
- var es_array_includes_js_ = __webpack_require__("85f7");
23647
+ // EXTERNAL MODULE: external "core-js/modules/es.array.concat.js"
23648
+ var es_array_concat_js_ = __webpack_require__("ccb0");
23619
23649
 
23620
- // EXTERNAL MODULE: external "core-js/modules/es.string.includes.js"
23621
- var es_string_includes_js_ = __webpack_require__("fd22");
23650
+ // EXTERNAL MODULE: external "core-js/modules/es.array.splice.js"
23651
+ var es_array_splice_js_ = __webpack_require__("f3b8");
23622
23652
 
23623
23653
  // EXTERNAL MODULE: external "core-js/modules/es.array.map.js"
23624
23654
  var es_array_map_js_ = __webpack_require__("4391");
23625
23655
 
23626
- // EXTERNAL MODULE: external "core-js/modules/es.object.assign.js"
23627
- var es_object_assign_js_ = __webpack_require__("ad1b");
23656
+ // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js
23628
23657
 
23629
- // CONCATENATED MODULE: ./src/scripts/utilities.js
23630
23658
 
23631
23659
 
23632
23660
 
23633
23661
 
23634
23662
 
23635
23663
 
23636
- var createListFromPrimitives = function createListFromPrimitives(primitives, list) {
23637
- if (primitives) {
23638
- primitives.forEach(function (primitive) {
23639
- if (primitive && primitive.getVisibility()) {
23640
- list.push({
23641
- group: primitive.groupName,
23642
- regionPath: primitive.region.getFullPath()
23643
- });
23644
- }
23645
- });
23646
- }
23647
- return list;
23648
- };
23649
- var extractAllIds = function extractAllIds(item, list) {
23650
- list.push(item.id);
23664
+ function _typeof(obj) {
23665
+ "@babel/helpers - typeof";
23666
+
23667
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
23668
+ return typeof obj;
23669
+ } : function (obj) {
23670
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
23671
+ }, _typeof(obj);
23672
+ }
23673
+ // EXTERNAL MODULE: external "core-js/modules/es.symbol.to-primitive.js"
23674
+ var es_symbol_to_primitive_js_ = __webpack_require__("fb89");
23675
+
23676
+ // EXTERNAL MODULE: external "core-js/modules/es.date.to-primitive.js"
23677
+ var es_date_to_primitive_js_ = __webpack_require__("1f48");
23678
+
23679
+ // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toPrimitive.js
23680
+
23681
+
23682
+
23683
+
23684
+
23685
+
23686
+
23687
+
23688
+ function _toPrimitive(input, hint) {
23689
+ if (_typeof(input) !== "object" || input === null) return input;
23690
+ var prim = input[Symbol.toPrimitive];
23691
+ if (prim !== undefined) {
23692
+ var res = prim.call(input, hint || "default");
23693
+ if (_typeof(res) !== "object") return res;
23694
+ throw new TypeError("@@toPrimitive must return a primitive value.");
23695
+ }
23696
+ return (hint === "string" ? String : Number)(input);
23697
+ }
23698
+ // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js
23699
+
23700
+
23701
+ function _toPropertyKey(arg) {
23702
+ var key = _toPrimitive(arg, "string");
23703
+ return _typeof(key) === "symbol" ? key : String(key);
23704
+ }
23705
+ // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
23706
+
23707
+ function _defineProperty(obj, key, value) {
23708
+ key = _toPropertyKey(key);
23709
+ if (key in obj) {
23710
+ Object.defineProperty(obj, key, {
23711
+ value: value,
23712
+ enumerable: true,
23713
+ configurable: true,
23714
+ writable: true
23715
+ });
23716
+ } else {
23717
+ obj[key] = value;
23718
+ }
23719
+ return obj;
23720
+ }
23721
+ // EXTERNAL MODULE: external "core-js/modules/es.array.filter.js"
23722
+ var es_array_filter_js_ = __webpack_require__("1a89");
23723
+
23724
+ // EXTERNAL MODULE: external "core-js/modules/es.object.get-own-property-descriptor.js"
23725
+ var es_object_get_own_property_descriptor_js_ = __webpack_require__("6de0");
23726
+
23727
+ // EXTERNAL MODULE: external "core-js/modules/es.object.get-own-property-descriptors.js"
23728
+ var es_object_get_own_property_descriptors_js_ = __webpack_require__("7664");
23729
+
23730
+ // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js
23731
+
23732
+
23733
+
23734
+
23735
+
23736
+
23737
+
23738
+
23739
+
23740
+ function ownKeys(object, enumerableOnly) {
23741
+ var keys = Object.keys(object);
23742
+ if (Object.getOwnPropertySymbols) {
23743
+ var symbols = Object.getOwnPropertySymbols(object);
23744
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
23745
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
23746
+ })), keys.push.apply(keys, symbols);
23747
+ }
23748
+ return keys;
23749
+ }
23750
+ function _objectSpread2(target) {
23751
+ for (var i = 1; i < arguments.length; i++) {
23752
+ var source = null != arguments[i] ? arguments[i] : {};
23753
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
23754
+ _defineProperty(target, key, source[key]);
23755
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
23756
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
23757
+ });
23758
+ }
23759
+ return target;
23760
+ }
23761
+ // EXTERNAL MODULE: external "core-js/modules/es.object.assign.js"
23762
+ var es_object_assign_js_ = __webpack_require__("ad1b");
23763
+
23764
+ // EXTERNAL MODULE: external "core-js/modules/es.array.find-index.js"
23765
+ var es_array_find_index_js_ = __webpack_require__("4c7f");
23766
+
23767
+ // EXTERNAL MODULE: external "core-js/modules/es.object.values.js"
23768
+ var es_object_values_js_ = __webpack_require__("e01a");
23769
+
23770
+ // EXTERNAL MODULE: external "core-js/modules/es.array.reduce.js"
23771
+ var es_array_reduce_js_ = __webpack_require__("b7ac");
23772
+
23773
+ // CONCATENATED MODULE: ./src/scripts/utilities.js
23774
+
23775
+
23776
+
23777
+
23778
+
23779
+
23780
+
23781
+
23782
+
23783
+
23784
+
23785
+
23786
+
23787
+
23788
+
23789
+ var createListFromPrimitives = function createListFromPrimitives(primitives, list) {
23790
+ if (primitives) {
23791
+ var id = "";
23792
+ primitives.forEach(function (primitive) {
23793
+ id = primitive.uuid;
23794
+ if (primitive.region) {
23795
+ id = primitive.region.uuid + "/" + id;
23796
+ }
23797
+ if (primitive && primitive.getVisibility()) {
23798
+ list.push(id);
23799
+ }
23800
+ });
23801
+ }
23802
+ return list;
23803
+ };
23804
+ var extractAllFullPaths = function extractAllFullPaths(item, list) {
23805
+ var nodeName = "";
23806
+ if (item.isRegion) {
23807
+ nodeName = "__r".concat(item.regionPath);
23808
+ }
23809
+ if (item.isPrimitives) {
23810
+ nodeName = "".concat(item.regionPath, "/").concat(item.label);
23811
+ }
23812
+ list.push(nodeName);
23651
23813
  if (item.children) item.children.forEach(function (child) {
23652
- return extractAllIds(child, list);
23814
+ return extractAllFullPaths(child, list);
23653
23815
  });
23654
23816
  };
23655
23817
  var utilities_findObjectsWithNames = function findObjectsWithNames(rootRegion, names, regionPath, transverse) {
@@ -23659,7 +23821,9 @@ var utilities_findObjectsWithNames = function findObjectsWithNames(rootRegion, n
23659
23821
  if (targetRegion) {
23660
23822
  var isArray = Array.isArray(names);
23661
23823
  var array = names;
23662
- if (!isArray) array = [array];
23824
+ if (!isArray) {
23825
+ array = [array];
23826
+ }
23663
23827
  array.forEach(function (name) {
23664
23828
  var temp = targetRegion.findObjectsWithGroupName(name, transverse);
23665
23829
  targetObjects.push.apply(targetObjects, _toConsumableArray(temp));
@@ -23676,6 +23840,101 @@ var getAllObjects = function getAllObjects(scene) {
23676
23840
  });
23677
23841
  }); // Add id to each object
23678
23842
  };
23843
+
23844
+ var findObjectWithUUID = function findObjectWithUUID(objects, uuid, remove) {
23845
+ var index = objects.findIndex(function (obj) {
23846
+ return obj.uuid === uuid;
23847
+ });
23848
+ var object = undefined;
23849
+ if (index > -1) {
23850
+ object = objects[index];
23851
+ if (remove) {
23852
+ objects.splice(i, 1);
23853
+ }
23854
+ }
23855
+ return object;
23856
+ };
23857
+ var utilities_convertUUIDsToFullPaths = function convertUUIDsToFullPaths(rootRegion, IDs) {
23858
+ var results = [];
23859
+ if (rootRegion && IDs && IDs.length > 0) {
23860
+ //a region to primitivs map list
23861
+ var rpLists = {};
23862
+ var reIDToPath = {};
23863
+ var allRegions = [rootRegion].concat(_toConsumableArray(rootRegion.getChildRegions(true)));
23864
+ var region = undefined;
23865
+ var primitive = undefined;
23866
+ var regionID = undefined;
23867
+ IDs.forEach(function (id) {
23868
+ var uuids = id.split("/");
23869
+ regionID = uuids[0];
23870
+ region = findObjectWithUUID(allRegions, regionID, false);
23871
+ if (region) {
23872
+ if (!reIDToPath[regionID]) {
23873
+ reIDToPath[regionID] = region.getFullPath();
23874
+ }
23875
+ if (uuids[1]) {
23876
+ if (!rpLists[regionID]) {
23877
+ rpLists[regionID] = region.getAllObjects(false);
23878
+ }
23879
+ primitive = findObjectWithUUID(rpLists[regionID], uuids[1], true);
23880
+ if (primitive) {
23881
+ results.push("".concat(reIDToPath[regionID], "/").concat(primitive.groupName));
23882
+ }
23883
+ } else {
23884
+ results.push("__r/".concat(reIDToPath[regionID]));
23885
+ }
23886
+ }
23887
+ });
23888
+ }
23889
+ return results;
23890
+ };
23891
+ var utilities_createUnqiuesFromObjects = function createUnqiuesFromObjects(zincObjects) {
23892
+ if (zincObjects) {
23893
+ var expanded = [];
23894
+ zincObjects.forEach(function (obj) {
23895
+ if (obj.isZincObject) {
23896
+ expanded.push(obj);
23897
+ } else if (obj.isRegion) {
23898
+ expanded.push.apply(expanded, _toConsumableArray(obj.getAllObjects(true)));
23899
+ }
23900
+ });
23901
+ var uniq = Object.values(expanded.reduce(function (acc, obj) {
23902
+ return _objectSpread2(_objectSpread2({}, acc), {}, _defineProperty({}, obj.uuid, obj));
23903
+ }, {}));
23904
+ return uniq;
23905
+ }
23906
+ return [];
23907
+ };
23908
+ var getObjectsFromAnnotations = function getObjectsFromAnnotations(scene, annotations) {
23909
+ var returned = {
23910
+ label: "Multiple selections",
23911
+ regionPath: "",
23912
+ objects: []
23913
+ };
23914
+ if (annotations && scene) {
23915
+ var rpList = {};
23916
+ var rootRegion = scene.getRootRegion();
23917
+ if (annotations.length > 0) {
23918
+ returned.regionPath = annotations[0].data.region;
23919
+ returned.label = annotations[0].data.group;
23920
+ }
23921
+ annotations.forEach(function (annotation) {
23922
+ if (!annotation.data.region.includes(returned.regionPath)) {
23923
+ returned.regionPath = "";
23924
+ }
23925
+ if (returned.label !== annotation.data.group) {
23926
+ returned.label = "Multiple selections";
23927
+ }
23928
+ var region = rootRegion.findChildFromPath(annotation.data.region);
23929
+ if (!rpList[region.uuid]) {
23930
+ rpList[region.uuid] = region.getAllObjects(false);
23931
+ }
23932
+ var obj = findObjectWithUUID(rpList[region.uuid], annotation.data.uuid);
23933
+ if (obj) returned.objects.push(obj);
23934
+ });
23935
+ }
23936
+ return returned;
23937
+ };
23679
23938
  // 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&
23680
23939
 
23681
23940
 
@@ -23703,6 +23962,8 @@ var getAllObjects = function getAllObjects(scene) {
23703
23962
 
23704
23963
 
23705
23964
 
23965
+
23966
+
23706
23967
 
23707
23968
 
23708
23969
 
@@ -23712,7 +23973,7 @@ var getAllObjects = function getAllObjects(scene) {
23712
23973
 
23713
23974
 
23714
23975
  var orderBy = __webpack_require__("6814");
23715
- var uniq = __webpack_require__("4e2d");
23976
+ var TreeControlsvue_type_script_lang_js_uniq = __webpack_require__("4e2d");
23716
23977
  locale_default.a.use(en_default.a);
23717
23978
  external_vue_default.a.use(lib_checkbox_default.a);
23718
23979
  external_vue_default.a.use(lib_checkbox_group_default.a);
@@ -23732,14 +23993,14 @@ var nameSorting = function nameSorting(a, b) {
23732
23993
  return 0;
23733
23994
  };
23734
23995
 
23735
- /**
23736
- * A vue component for toggling visibility of various regions.
23996
+ /**
23997
+ * A vue component for toggling visibility of various regions.
23737
23998
  */
23738
23999
  /* harmony default export */ var TreeControlsvue_type_script_lang_js_ = ({
23739
24000
  name: "TreeControls",
23740
24001
  props: {
23741
- /**
23742
- * Enable/disable colour picker
24002
+ /**
24003
+ * Enable/disable colour picker
23743
24004
  */
23744
24005
  showColourPicker: Boolean,
23745
24006
  isReady: Boolean
@@ -23748,17 +24009,12 @@ var nameSorting = function nameSorting(a, b) {
23748
24009
  return {
23749
24010
  treeData: [{
23750
24011
  label: "Root",
23751
- id: "__r/",
24012
+ regionPath: "",
24013
+ id: undefined,
23752
24014
  children: []
23753
24015
  }],
23754
- active: [{
23755
- group: "",
23756
- regionPath: undefined
23757
- }],
23758
- hover: [{
23759
- group: "",
23760
- regionPath: undefined
23761
- }],
24016
+ active: [],
24017
+ hover: [],
23762
24018
  myPopperClass: "hide-scaffold-colour-popup",
23763
24019
  drawerOpen: true
23764
24020
  };
@@ -23778,12 +24034,10 @@ var nameSorting = function nameSorting(a, b) {
23778
24034
  addTreeItem: function addTreeItem(parentContainer, item) {
23779
24035
  var _this = this;
23780
24036
  //The following block prevent duplicate graphics with the same name
23781
- for (var i = 0; i < parentContainer.length; i++) {
23782
- if (parentContainer[i].id === item.id) {
23783
- if (item.isPrimitives && parentContainer[i].isPrimitives) {
23784
- return;
23785
- }
23786
- }
24037
+ if (parentContainer.some(function (child) {
24038
+ return child.label === item.label;
24039
+ })) {
24040
+ return;
23787
24041
  }
23788
24042
  parentContainer.push(item);
23789
24043
  parentContainer.sort(function (a, b) {
@@ -23798,8 +24052,8 @@ var nameSorting = function nameSorting(a, b) {
23798
24052
  // '__r/'
23799
24053
  findOrCreateRegion: function findOrCreateRegion(data, paths, prefix) {
23800
24054
  //check if root region has been set
23801
- if (this.treeData[0].regionPath === undefined && this.$module && this.$module.scene) {
23802
- this.treeData[0].regionPath = "";
24055
+ if (this.rootID === undefined && this.$module && this.$module.scene) {
24056
+ this.treeData[0].id = this.$module.scene.getRootRegion().uuid;
23803
24057
  this.treeData[0].isRegion = true;
23804
24058
  }
23805
24059
  if (paths.length > 0) {
@@ -23808,11 +24062,11 @@ var nameSorting = function nameSorting(a, b) {
23808
24062
  return child.label == _paths[0];
23809
24063
  });
23810
24064
  var path = prefix + "/" + paths[0];
23811
- var id = "__r" + path;
24065
+ var region = this.$module.scene.getRootRegion().findChildFromPath(path);
23812
24066
  if (!childRegion) {
23813
24067
  childRegion = {
23814
24068
  label: _paths[0],
23815
- id: id,
24069
+ id: region.uuid,
23816
24070
  children: [],
23817
24071
  regionPath: path,
23818
24072
  isRegion: true
@@ -23825,28 +24079,14 @@ var nameSorting = function nameSorting(a, b) {
23825
24079
  return data;
23826
24080
  }
23827
24081
  },
23828
- nodeIsActive: function nodeIsActive(data) {
23829
- for (var i = 0; i < this.active.length; i++) {
23830
- var item = this.active[i];
23831
- if (item.group === data.label && (item.regionPath === data.regionPath || item.regionPath === undefined)) {
23832
- return true;
23833
- }
23834
- }
23835
- return false;
23836
- },
23837
- nodeIsHover: function nodeIsHover(data) {
23838
- for (var i = 0; i < this.hover.length; i++) {
23839
- var item = this.hover[i];
23840
- if (item.group === data.label && (item.regionPath === data.regionPath || item.regionPath === undefined)) {
23841
- return true;
23842
- }
23843
- }
23844
- return false;
23845
- },
23846
- /**
23847
- * This is called when a new zinc object is read into the scene.
24082
+ /**
24083
+ * This is called when a new zinc object is read into the scene.
23848
24084
  */
23849
24085
  zincObjectAdded: function zincObjectAdded(zincObject) {
24086
+ // Using the new uuid, the cavaet of that is graphics with
24087
+ // same groupName will have different uuid. So in the tree control
24088
+ // We use the first uuid found for a group of primitives with same
24089
+ // group names to represent all of them.
23850
24090
  var region = zincObject.region;
23851
24091
  if (region) {
23852
24092
  var paths = region.getFullSeparatedPath();
@@ -23856,10 +24096,9 @@ var nameSorting = function nameSorting(a, b) {
23856
24096
  if (!regionData.children) {
23857
24097
  regionData.children = [];
23858
24098
  }
23859
- var id = regionData.id.replace("__r/", "") + "/" + zincObject.groupName;
23860
24099
  var child = {
23861
24100
  label: zincObject.groupName,
23862
- id: id,
24101
+ id: region.uuid + "/" + zincObject.uuid,
23863
24102
  isPrimitives: true,
23864
24103
  regionPath: zincObject.region.getFullPath()
23865
24104
  };
@@ -23908,16 +24147,16 @@ var nameSorting = function nameSorting(a, b) {
23908
24147
  this.removeHover(propagate);
23909
24148
  }
23910
24149
  },
23911
- /**
23912
- * Select a region by its name.
24150
+ /**
24151
+ * Select a region by its name.
23913
24152
  */
23914
24153
  changeActiveByNames: function changeActiveByNames(names, regionPath, propagate) {
23915
24154
  var rootRegion = this.$module.scene.getRootRegion();
23916
24155
  var targetObjects = utilities_findObjectsWithNames(rootRegion, names, regionPath, true);
23917
24156
  this.changeActiveByPrimitives(targetObjects, propagate);
23918
24157
  },
23919
- /**
23920
- * Hover a region by its name.
24158
+ /**
24159
+ * Hover a region by its name.
23921
24160
  */
23922
24161
  changeHoverByNames: function changeHoverByNames(names, regionPath, propagate) {
23923
24162
  var rootRegion = this.$module.scene.getRootRegion();
@@ -23925,8 +24164,9 @@ var nameSorting = function nameSorting(a, b) {
23925
24164
  this.changeHoverByPrimitives(targetObjects, propagate);
23926
24165
  },
23927
24166
  changeActiveByNode: function changeActiveByNode(node, propagate) {
23928
- if (node.isPrimitives) {
23929
- var targetObjects = this.getZincObjectsFromNode(node, false);
24167
+ if (node.isPrimitives || node.isRegion) {
24168
+ var transverse = node.isRegion ? true : false;
24169
+ var targetObjects = this.getZincObjectsFromNode(node, transverse);
23930
24170
  this.changeActiveByPrimitives(targetObjects, propagate);
23931
24171
  }
23932
24172
  },
@@ -23936,31 +24176,31 @@ var nameSorting = function nameSorting(a, b) {
23936
24176
  this.changeHoverByPrimitives(targetObjects, propagate);
23937
24177
  }
23938
24178
  },
23939
- /**
23940
- * Unselect the current selected region.
24179
+ /**
24180
+ * Unselect the current selected region.
23941
24181
  */
23942
24182
  removeActive: function removeActive(propagate) {
23943
24183
  this.active = [];
23944
24184
  this.$emit("object-selected", [], propagate);
23945
24185
  },
23946
- /**
23947
- * Unselect the current hover region.
24186
+ /**
24187
+ * Unselect the current hover region.
23948
24188
  */
23949
24189
  removeHover: function removeHover(propagate) {
23950
24190
  this.hover = [];
23951
24191
  this.$emit("object-hovered", [], propagate);
23952
24192
  },
23953
- /**
23954
- * Reset the controls.
24193
+ /**
24194
+ * Reset the controls.
23955
24195
  */
23956
24196
  clear: function clear() {
23957
- this.active.group = "";
23958
- this.active.regionPath = undefined;
23959
- this.hover.group = "";
23960
- this.hover.regionPath = undefined;
23961
- this.$refs.regionTree.updateKeyChildren("__r/", []);
24197
+ this.active.length = 0;
24198
+ this.hover.length = 0;
24199
+ this.__nodeNumbers = 0;
24200
+ this.$refs.regionTree.updateKeyChildren(this.treeData[0].id, []);
23962
24201
  this.treeData[0].children.length = 0;
23963
- this.$emit("object-selected", undefined);
24202
+ this.treeData[0].id = undefined;
24203
+ this.$emit("object-selected", []);
23964
24204
  },
23965
24205
  getColour: function getColour(nodeData) {
23966
24206
  //Do not need to check for primitives as this is checked on the template
@@ -23976,26 +24216,28 @@ var nameSorting = function nameSorting(a, b) {
23976
24216
  },
23977
24217
  getZincObjectsFromNode: function getZincObjectsFromNode(node, transverse) {
23978
24218
  var rootRegion = this.$module.scene.getRootRegion();
23979
- return utilities_findObjectsWithNames(rootRegion, node.label, node.regionPath, transverse);
24219
+ if (node.isPrimitives) {
24220
+ return utilities_findObjectsWithNames(rootRegion, node.label, node.regionPath, transverse);
24221
+ } else if (node.isRegion) {
24222
+ if (node.regionPath) {
24223
+ var targetRegion = rootRegion.findChildFromPath(node.regionPath);
24224
+ if (targetRegion) {
24225
+ return targetRegion.getAllObjects(transverse);
24226
+ }
24227
+ }
24228
+ }
24229
+ return [];
23980
24230
  },
23981
24231
  //Set this right at the beginning.
23982
24232
  setModule: function setModule(moduleIn) {
23983
24233
  var _this2 = this;
23984
24234
  this.$module = moduleIn;
23985
- this.$module.primitiveData.geometries.forEach(function (zincObject) {
23986
- _this2.zincObjectAdded(zincObject);
23987
- });
23988
- this.$module.primitiveData.lines.forEach(function (zincObject) {
23989
- _this2.zincObjectAdded(zincObject);
23990
- });
23991
- this.$module.primitiveData.glyphsets.forEach(function (zincObject) {
23992
- _this2.zincObjectAdded(zincObject);
23993
- });
23994
- this.$module.primitiveData.pointsets.forEach(function (zincObject) {
24235
+ this.__nodeNumbers = 0;
24236
+ var objects = this.$module.scene.getRootRegion().getAllObjects(true);
24237
+ objects.forEach(function (zincObject) {
23995
24238
  _this2.zincObjectAdded(zincObject);
23996
24239
  });
23997
24240
  this.$module.addOrganPartAddedCallback(this.zincObjectAdded);
23998
- this.__nodeNumbers = 1;
23999
24241
  },
24000
24242
  setColour: function setColour(nodeData, value) {
24001
24243
  if (nodeData && nodeData.isPrimitives) {
@@ -24024,38 +24266,63 @@ var nameSorting = function nameSorting(a, b) {
24024
24266
  this.drawerOpen = !this.drawerOpen;
24025
24267
  this.$emit("drawer-toggled", this.drawerOpen);
24026
24268
  },
24027
- setTreeVisibility: function setTreeVisibility(node, list) {
24269
+ //Set visibility using full paths and add found id to the ids list
24270
+ //and remove item from list if remove is set to true.
24271
+ setTreeVisibilityWithFullPaths: function setTreeVisibilityWithFullPaths(node, list, ids, remove) {
24028
24272
  var _this3 = this;
24029
24273
  var flag = false;
24030
- if (list.includes(node.id)) flag = true;
24031
- var region = this.$module.scene.getRootRegion().findChildFromPath(node.regionPath);
24032
- if (node.isRegion) region.setVisibility(flag);
24274
+ var nodeName = "";
24275
+ if (node.isRegion) {
24276
+ nodeName = "__r".concat(node.regionPath);
24277
+ }
24033
24278
  if (node.isPrimitives) {
24034
- var primitives = region.findObjectsWithGroupName(node.label);
24035
- primitives.forEach(function (primitive) {
24036
- return primitive.setVisibility(flag);
24279
+ nodeName = "".concat(node.regionPath, "/").concat(node.label);
24280
+ }
24281
+ //Find the node in list, remove it from list if remove flag is on
24282
+ var index = list.indexOf(nodeName);
24283
+ if (index > -1) {
24284
+ flag = true;
24285
+ list.splice(index, 1);
24286
+ ids.push(node.id);
24287
+ }
24288
+ var region = this.$module.scene.getRootRegion().findChildFromPath(node.regionPath);
24289
+ if (nodeName && nodeName !== "__r") {
24290
+ if (node.isPrimitives) {
24291
+ var primitives = region.findObjectsWithGroupName(node.label);
24292
+ primitives.forEach(function (primitive) {
24293
+ return primitive.setVisibility(flag);
24294
+ });
24295
+ }
24296
+ }
24297
+ if (node.children) {
24298
+ node.children.forEach(function (child) {
24299
+ _this3.setTreeVisibilityWithFullPaths(child, list, ids, true);
24037
24300
  });
24038
24301
  }
24039
- if (node.children) node.children.forEach(function (child) {
24040
- return _this3.setTreeVisibility(child, list);
24041
- });
24042
24302
  },
24043
24303
  checkAllKeys: function checkAllKeys() {
24044
24304
  var keysList = [];
24045
- extractAllIds(this.treeData[0], keysList);
24046
- this.setTreeVisibility(this.treeData[0], keysList);
24047
- this.$refs.regionTree.setCheckedKeys(keysList);
24305
+ var ids = [];
24306
+ extractAllFullPaths(this.treeData[0], keysList);
24307
+ this.setTreeVisibilityWithFullPaths(this.treeData[0], keysList, ids, true);
24308
+ this.$refs.regionTree.setCheckedKeys(ids);
24048
24309
  },
24049
24310
  getState: function getState() {
24050
24311
  var checkedItems = this.$refs.regionTree.getCheckedKeys();
24051
- if (checkedItems.length === this.__nodeNumbers) return {
24052
- checkAll: true,
24053
- version: "2.0"
24054
- };
24055
- return {
24056
- checkedItems: checkedItems,
24057
- version: "2.0"
24058
- };
24312
+ if (checkedItems.length === this.__nodeNumbers) {
24313
+ return {
24314
+ checkAll: true,
24315
+ version: "2.0"
24316
+ };
24317
+ } else {
24318
+ //We cannot use the generated uuid as the identifier for permastate,
24319
+ //convert it back to paths
24320
+ var paths = utilities_convertUUIDsToFullPaths(this.$module.scene.getRootRegion(), checkedItems);
24321
+ return {
24322
+ checkedItems: paths,
24323
+ version: "2.0"
24324
+ };
24325
+ }
24059
24326
  },
24060
24327
  setState: function setState(state) {
24061
24328
  if (state) {
@@ -24072,8 +24339,9 @@ var nameSorting = function nameSorting(a, b) {
24072
24339
  var _list;
24073
24340
  (_list = list).push.apply(_list, _toConsumableArray(state.checkedItems));
24074
24341
  }
24075
- this.setTreeVisibility(this.treeData[0], list);
24076
- this.$refs.regionTree.setCheckedKeys(list);
24342
+ var ids = [];
24343
+ this.setTreeVisibilityWithFullPaths(this.treeData[0], list, ids, true);
24344
+ this.$refs.regionTree.setCheckedKeys(ids);
24077
24345
  }
24078
24346
  }
24079
24347
  }
@@ -24081,11 +24349,11 @@ var nameSorting = function nameSorting(a, b) {
24081
24349
  });
24082
24350
  // CONCATENATED MODULE: ./src/components/TreeControls.vue?vue&type=script&lang=js&
24083
24351
  /* harmony default export */ var components_TreeControlsvue_type_script_lang_js_ = (TreeControlsvue_type_script_lang_js_);
24084
- // EXTERNAL MODULE: ./src/components/TreeControls.vue?vue&type=style&index=0&id=5a5e9e67&prod&scoped=true&lang=scss&
24085
- var TreeControlsvue_type_style_index_0_id_5a5e9e67_prod_scoped_true_lang_scss_ = __webpack_require__("a1fc");
24352
+ // EXTERNAL MODULE: ./src/components/TreeControls.vue?vue&type=style&index=0&id=29a4f879&prod&scoped=true&lang=scss&
24353
+ var TreeControlsvue_type_style_index_0_id_29a4f879_prod_scoped_true_lang_scss_ = __webpack_require__("4efe");
24086
24354
 
24087
- // EXTERNAL MODULE: ./src/components/TreeControls.vue?vue&type=style&index=1&id=5a5e9e67&prod&lang=css&
24088
- var TreeControlsvue_type_style_index_1_id_5a5e9e67_prod_lang_css_ = __webpack_require__("5956");
24355
+ // EXTERNAL MODULE: ./src/components/TreeControls.vue?vue&type=style&index=1&id=29a4f879&prod&lang=css&
24356
+ var TreeControlsvue_type_style_index_1_id_29a4f879_prod_lang_css_ = __webpack_require__("79d6");
24089
24357
 
24090
24358
  // CONCATENATED MODULE: ./src/components/TreeControls.vue
24091
24359
 
@@ -24099,11 +24367,11 @@ var TreeControlsvue_type_style_index_1_id_5a5e9e67_prod_lang_css_ = __webpack_re
24099
24367
 
24100
24368
  var TreeControls_component = normalizeComponent(
24101
24369
  components_TreeControlsvue_type_script_lang_js_,
24102
- TreeControlsvue_type_template_id_5a5e9e67_scoped_true_render,
24103
- TreeControlsvue_type_template_id_5a5e9e67_scoped_true_staticRenderFns,
24370
+ TreeControlsvue_type_template_id_29a4f879_scoped_true_render,
24371
+ TreeControlsvue_type_template_id_29a4f879_scoped_true_staticRenderFns,
24104
24372
  false,
24105
24373
  null,
24106
- "5a5e9e67",
24374
+ "29a4f879",
24107
24375
  null
24108
24376
 
24109
24377
  )
@@ -24119,55 +24387,6 @@ function _classCallCheck(instance, Constructor) {
24119
24387
  throw new TypeError("Cannot call a class as a function");
24120
24388
  }
24121
24389
  }
24122
- // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js
24123
-
24124
-
24125
-
24126
-
24127
-
24128
-
24129
-
24130
- function _typeof(obj) {
24131
- "@babel/helpers - typeof";
24132
-
24133
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
24134
- return typeof obj;
24135
- } : function (obj) {
24136
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
24137
- }, _typeof(obj);
24138
- }
24139
- // EXTERNAL MODULE: external "core-js/modules/es.symbol.to-primitive.js"
24140
- var es_symbol_to_primitive_js_ = __webpack_require__("fb89");
24141
-
24142
- // EXTERNAL MODULE: external "core-js/modules/es.date.to-primitive.js"
24143
- var es_date_to_primitive_js_ = __webpack_require__("1f48");
24144
-
24145
- // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toPrimitive.js
24146
-
24147
-
24148
-
24149
-
24150
-
24151
-
24152
-
24153
-
24154
- function _toPrimitive(input, hint) {
24155
- if (_typeof(input) !== "object" || input === null) return input;
24156
- var prim = input[Symbol.toPrimitive];
24157
- if (prim !== undefined) {
24158
- var res = prim.call(input, hint || "default");
24159
- if (_typeof(res) !== "object") return res;
24160
- throw new TypeError("@@toPrimitive must return a primitive value.");
24161
- }
24162
- return (hint === "string" ? String : Number)(input);
24163
- }
24164
- // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js
24165
-
24166
-
24167
- function _toPropertyKey(arg) {
24168
- var key = _toPrimitive(arg, "string");
24169
- return _typeof(key) === "symbol" ? key : String(key);
24170
- }
24171
24390
  // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js
24172
24391
 
24173
24392
  function _defineProperties(target, props) {
@@ -24187,8 +24406,8 @@ function _createClass(Constructor, protoProps, staticProps) {
24187
24406
  });
24188
24407
  return Constructor;
24189
24408
  }
24190
- // EXTERNAL MODULE: external "core-js/modules/es.array.filter.js"
24191
- var es_array_filter_js_ = __webpack_require__("1a89");
24409
+ // EXTERNAL MODULE: external "core-js/modules/es.string.search.js"
24410
+ var es_string_search_js_ = __webpack_require__("1c32");
24192
24411
 
24193
24412
  // EXTERNAL MODULE: external "minisearch"
24194
24413
  var external_minisearch_ = __webpack_require__("f9b6");
@@ -24208,30 +24427,32 @@ var external_minisearch_default = /*#__PURE__*/__webpack_require__.n(external_mi
24208
24427
 
24209
24428
 
24210
24429
 
24211
- /******************************************************************************
24212
-
24213
- Flatmap viewer and annotation tool
24214
-
24215
- Copyright (c) 2019 David Brooks
24216
-
24217
- Licensed under the Apache License, Version 2.0 (the "License");
24218
- you may not use this file except in compliance with the License.
24219
- You may obtain a copy of the License at
24220
-
24221
- http://www.apache.org/licenses/LICENSE-2.0
24222
-
24223
- Unless required by applicable law or agreed to in writing, software
24224
- distributed under the License is distributed on an "AS IS" BASIS,
24225
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24226
- See the License for the specific language governing permissions and
24227
- limitations under the License.
24228
24430
 
24431
+ /******************************************************************************
24432
+
24433
+ Flatmap viewer and annotation tool
24434
+
24435
+ Copyright (c) 2019 David Brooks
24436
+
24437
+ Licensed under the Apache License, Version 2.0 (the "License");
24438
+ you may not use this file except in compliance with the License.
24439
+ You may obtain a copy of the License at
24440
+
24441
+ http://www.apache.org/licenses/LICENSE-2.0
24442
+
24443
+ Unless required by applicable law or agreed to in writing, software
24444
+ distributed under the License is distributed on an "AS IS" BASIS,
24445
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24446
+ See the License for the specific language governing permissions and
24447
+ limitations under the License.
24448
+
24229
24449
  ******************************************************************************/
24230
24450
 
24231
24451
  //==============================================================================
24232
24452
 
24233
24453
 
24234
24454
 
24455
+
24235
24456
  //==============================================================================
24236
24457
 
24237
24458
  // The properties of a feature we index and show
@@ -24244,8 +24465,8 @@ var search_SearchIndex = /*#__PURE__*/function () {
24244
24465
  function SearchIndex() {
24245
24466
  _classCallCheck(this, SearchIndex);
24246
24467
  this._searchEngine = new external_minisearch_default.a({
24247
- fields: ['groupName'],
24248
- storeFields: ['groupName'],
24468
+ fields: ['path', 'name'],
24469
+ storeFields: ['path'],
24249
24470
  tokenize: function tokenize(string, _fieldName) {
24250
24471
  return string.split('"');
24251
24472
  } // indexing tokenizer
@@ -24253,6 +24474,7 @@ var search_SearchIndex = /*#__PURE__*/function () {
24253
24474
 
24254
24475
  this._featureIds = [];
24255
24476
  this.zincObjects = [];
24477
+ this.regions = [];
24256
24478
  }
24257
24479
  _createClass(SearchIndex, [{
24258
24480
  key: "indexMetadata",
@@ -24276,15 +24498,33 @@ var search_SearchIndex = /*#__PURE__*/function () {
24276
24498
  value: function addZincObject(zincObject, id)
24277
24499
  //=======================
24278
24500
  {
24501
+ var path = zincObject.getRegion().getFullPath();
24502
+ var fullPath = path ? "".concat(path, "/").concat(zincObject.groupName) : zincObject.groupName;
24279
24503
  var item = {
24280
- groupName: zincObject.groupName,
24504
+ path: fullPath,
24505
+ name: zincObject.groupName,
24281
24506
  id: id
24282
24507
  };
24283
24508
  this._searchEngine.add(item, {
24284
- fields: ['groupName']
24509
+ fields: ['path', 'name']
24285
24510
  });
24286
24511
  this.zincObjects.push(zincObject);
24287
24512
  }
24513
+ }, {
24514
+ key: "addRegion",
24515
+ value: function addRegion(region, id)
24516
+ //=======================
24517
+ {
24518
+ var item = {
24519
+ path: region.getFullPath(),
24520
+ name: region.getName(),
24521
+ id: id
24522
+ };
24523
+ this._searchEngine.add(item, {
24524
+ fields: ['path', 'name']
24525
+ });
24526
+ this.regions.push(region);
24527
+ }
24288
24528
  }, {
24289
24529
  key: "clearResults",
24290
24530
  value: function clearResults()
@@ -24299,15 +24539,41 @@ var search_SearchIndex = /*#__PURE__*/function () {
24299
24539
  {
24300
24540
  this._searchEngine.removeAll();
24301
24541
  this.zincObjects.length = 0;
24542
+ this.regions.length = 0;
24302
24543
  }
24303
24544
  }, {
24304
24545
  key: "auto_suggest",
24305
24546
  value: function auto_suggest(text)
24306
24547
  //================
24307
24548
  {
24308
- return this._searchEngine.autoSuggest(text, {
24549
+ var results = this._searchEngine.autoSuggest(text, {
24309
24550
  prefix: true
24310
24551
  });
24552
+ return results;
24553
+ }
24554
+ }, {
24555
+ key: "processResults",
24556
+ value: function processResults(zincObjects, searchText) {
24557
+ var result = {
24558
+ regionPath: undefined,
24559
+ label: "Search Results for \""
24560
+ };
24561
+ if (Array.isArray(searchText)) {
24562
+ result.label += ','.join(searchText);
24563
+ } else {
24564
+ result.label += searchText;
24565
+ }
24566
+ result.label += "\"";
24567
+ if (zincObjects.length === 1) {
24568
+ if (zincObjects[0].isRegion) {
24569
+ result.regionPath = zincObjects[0].getFullPath();
24570
+ } else if (zincObjects[0].isZincObject) {
24571
+ result.regionPath = zincObjects[0].getRegion().getFullPath();
24572
+ result.label = zincObjects[0].groupName;
24573
+ }
24574
+ }
24575
+ result["zincObjects"] = utilities_createUnqiuesFromObjects(zincObjects);
24576
+ return result;
24311
24577
  }
24312
24578
  }, {
24313
24579
  key: "search",
@@ -24318,8 +24584,14 @@ var search_SearchIndex = /*#__PURE__*/function () {
24318
24584
  var zincResults = this.zincObjects.filter(function (zincObject) {
24319
24585
  return results.map(function (r) {
24320
24586
  return r.id;
24321
- }).includes(zincObject.searchIndexId);
24587
+ }).includes(zincObject.uuid);
24322
24588
  });
24589
+ var regionResults = this.regions.filter(function (region) {
24590
+ return results.map(function (r) {
24591
+ return r.id;
24592
+ }).includes(region.uuid);
24593
+ });
24594
+ zincResults.push.apply(zincResults, _toConsumableArray(regionResults));
24323
24595
  return zincResults;
24324
24596
  }
24325
24597
  }, {
@@ -24333,28 +24605,17 @@ var search_SearchIndex = /*#__PURE__*/function () {
24333
24605
  });
24334
24606
  return results;
24335
24607
  }
24336
-
24337
- // search(text)
24338
- // //==========
24339
- // {
24340
- // const options = {};
24341
- // let results = [];
24342
- // text = text.trim()
24343
- // if (text.length > 2 && ["'", '"'].indexOf(text.slice(0, 1)) >= 0) {
24344
- // text = text.replaceAll(text.slice(0, 1), '');
24345
- // results = this._searchEngine.search(text, {prefix: true, combineWith: 'AND'});
24346
- // } else if (text.length > 1) {
24347
- // results = this._searchEngine.search(text, {prefix: true});
24348
- // }
24349
- // const featureResults = results.map(r => {
24350
- // return {
24351
- // featureId: this._featureIds[r.id],
24352
- // score: r.score,
24353
- // terms: r.terms,
24354
- // text: r.text
24355
- // }});
24356
- // return new SearchResults(featureResults);
24357
- // }
24608
+ }, {
24609
+ key: "searchAndProcessResult",
24610
+ value: function searchAndProcessResult(terms) {
24611
+ var zincObjectResults = [];
24612
+ if (Array.isArray(terms)) {
24613
+ zincObjectResults = this.searchTerms(terms);
24614
+ } else {
24615
+ zincObjectResults = this.search(terms);
24616
+ }
24617
+ return this.processResults(zincObjectResults, terms);
24618
+ }
24358
24619
  }]);
24359
24620
  return SearchIndex;
24360
24621
  }();
@@ -24421,8 +24682,6 @@ var search_SearchResults = /*#__PURE__*/function () {
24421
24682
 
24422
24683
 
24423
24684
 
24424
-
24425
-
24426
24685
 
24427
24686
 
24428
24687
 
@@ -24450,11 +24709,11 @@ external_vue_default.a.use(lib_tabs_default.a);
24450
24709
  var OrgansViewer = __webpack_require__("53d7").OrgansViewer;
24451
24710
  var EventNotifier = __webpack_require__("9b21").EventNotifier;
24452
24711
 
24453
- /**
24454
- * A vue component of the scaffold viewer.
24455
- *
24456
- * @requires ./OpacityControls.vue
24457
- * @requires ./TreeControls.vue
24712
+ /**
24713
+ * A vue component of the scaffold viewer.
24714
+ *
24715
+ * @requires ./OpacityControls.vue
24716
+ * @requires ./TreeControls.vue
24458
24717
  */
24459
24718
  /* harmony default export */ var ScaffoldVuervue_type_script_lang_js_ = ({
24460
24719
  name: "ScaffoldVuer",
@@ -24466,56 +24725,56 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24466
24725
  TreeControls: TreeControls
24467
24726
  },
24468
24727
  props: {
24469
- /**
24470
- * URL of the zincjs metadata. This value will be ignored if a valid
24471
- * state prop is also provided.
24472
- * If the url needs to be updated with state present, please use
24473
- * the setURL method.
24728
+ /**
24729
+ * URL of the zincjs metadata. This value will be ignored if a valid
24730
+ * state prop is also provided.
24731
+ * If the url needs to be updated with state present, please use
24732
+ * the setURL method.
24474
24733
  */
24475
24734
  url: {
24476
24735
  type: String,
24477
24736
  default: ""
24478
24737
  },
24479
- /**
24480
- * Show the colour control of set to true.
24738
+ /**
24739
+ * Show the colour control of set to true.
24481
24740
  */
24482
24741
  showColourPicker: {
24483
24742
  type: Boolean,
24484
24743
  default: false
24485
24744
  },
24486
- /**
24487
- * Flag to show/hide the UI.
24745
+ /**
24746
+ * Flag to show/hide the UI.
24488
24747
  */
24489
24748
  displayUI: {
24490
24749
  type: Boolean,
24491
24750
  default: true
24492
24751
  },
24493
- /**
24494
- * Display all graphics at start.
24495
- *
24496
- * This setting only works when traditional is set to false.
24752
+ /**
24753
+ * Display all graphics at start.
24754
+ *
24755
+ * This setting only works when traditional is set to false.
24497
24756
  */
24498
24757
  displayAtStartUp: {
24499
24758
  type: Boolean,
24500
24759
  default: true
24501
24760
  },
24502
- /**
24503
- * Use for toggling the help tooltips.
24761
+ /**
24762
+ * Use for toggling the help tooltips.
24504
24763
  */
24505
24764
  helpMode: {
24506
24765
  type: Boolean,
24507
24766
  default: false
24508
24767
  },
24509
- /**
24510
- * Use for show/display beta warning icon.
24768
+ /**
24769
+ * Use for show/display beta warning icon.
24511
24770
  */
24512
24771
  displayWarning: {
24513
24772
  type: Boolean,
24514
24773
  default: true
24515
24774
  },
24516
- /**
24517
- * Warning message for the hovered over text
24518
- * on the warning icon.
24775
+ /**
24776
+ * Warning message for the hovered over text
24777
+ * on the warning icon.
24519
24778
  */
24520
24779
  warningMessage: {
24521
24780
  type: String,
@@ -24529,29 +24788,35 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24529
24788
  type: String,
24530
24789
  default: "New feature - Local search is now available"
24531
24790
  },
24532
- /**
24533
- * Show/hide pickable markers for regions.
24791
+ /**
24792
+ * Show/hide pickable markers for regions.
24534
24793
  */
24535
24794
  displayMarkers: {
24536
24795
  type: Boolean,
24537
24796
  default: false
24538
24797
  },
24539
- /**
24540
- * Show/hide minimap.
24798
+ markerLabels: {
24799
+ type: Array,
24800
+ default: function _default() {
24801
+ return [];
24802
+ }
24803
+ },
24804
+ /**
24805
+ * Show/hide minimap.
24541
24806
  */
24542
24807
  displayMinimap: {
24543
24808
  type: Boolean,
24544
24809
  default: false
24545
24810
  },
24546
- /**
24547
- * Format of the input URL
24811
+ /**
24812
+ * Format of the input URL
24548
24813
  */
24549
24814
  format: {
24550
24815
  type: String,
24551
24816
  default: "metadata"
24552
24817
  },
24553
- /**
24554
- * Settings for minimap position, size and alignment.
24818
+ /**
24819
+ * Settings for minimap position, size and alignment.
24555
24820
  */
24556
24821
  minimapSettings: {
24557
24822
  type: Object,
@@ -24565,9 +24830,9 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24565
24830
  };
24566
24831
  }
24567
24832
  },
24568
- /**
24569
- * Flag to determine rather open map UI should be
24570
- * presented or not.
24833
+ /**
24834
+ * Flag to determine rather open map UI should be
24835
+ * presented or not.
24571
24836
  */
24572
24837
  enableOpenMapUI: {
24573
24838
  type: Boolean,
@@ -24588,32 +24853,32 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24588
24853
  }];
24589
24854
  }
24590
24855
  },
24591
- /**
24592
- * State containing state of the scaffold.
24856
+ /**
24857
+ * State containing state of the scaffold.
24593
24858
  */
24594
24859
  state: {
24595
24860
  type: Object,
24596
24861
  default: undefined
24597
24862
  },
24598
- /**
24599
- * Optional prop for the name of the region to focus on,
24600
- * this option is ignored if state or viewURL is also provided.
24863
+ /**
24864
+ * Optional prop for the name of the region to focus on,
24865
+ * this option is ignored if state or viewURL is also provided.
24601
24866
  */
24602
24867
  region: {
24603
24868
  type: String,
24604
24869
  default: ""
24605
24870
  },
24606
- /**
24607
- * Optional prop for an URL of containing information of a viewport.
24608
- * This option is ignored if state is also provided.
24609
- * It will use the provided URL as base if a relative parth is provided.
24871
+ /**
24872
+ * Optional prop for an URL of containing information of a viewport.
24873
+ * This option is ignored if state is also provided.
24874
+ * It will use the provided URL as base if a relative parth is provided.
24610
24875
  */
24611
24876
  viewURL: {
24612
24877
  type: String,
24613
24878
  default: ""
24614
24879
  },
24615
- /**
24616
- * Settings for turning on/off rendering
24880
+ /**
24881
+ * Settings for turning on/off rendering
24617
24882
  */
24618
24883
  render: {
24619
24884
  type: Boolean,
@@ -24625,8 +24890,8 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24625
24890
  sceneData: this.$module.sceneData,
24626
24891
  isPlaying: false,
24627
24892
  isReady: false,
24628
- /**
24629
- * This is set when scene is transitioning.
24893
+ /**
24894
+ * This is set when scene is transitioning.
24630
24895
  */
24631
24896
  isTransitioning: false,
24632
24897
  tooltipAppendToBody: false,
@@ -24689,7 +24954,8 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24689
24954
  x: 200,
24690
24955
  y: 200
24691
24956
  },
24692
- fileFormat: "metadata"
24957
+ fileFormat: "metadata",
24958
+ previousMarkerLabels: []
24693
24959
  };
24694
24960
  },
24695
24961
  watch: {
@@ -24736,11 +25002,11 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24736
25002
  this.$module.scene.displayMinimap = val;
24737
25003
  },
24738
25004
  "sceneData.currentTime": function sceneDataCurrentTime() {
24739
- /**
24740
- * Triggers when scene time changes.
24741
- *
24742
- * @property {number} time Current build-in time of scene.
24743
- * of selected object.
25005
+ /**
25006
+ * Triggers when scene time changes.
25007
+ *
25008
+ * @property {number} time Current build-in time of scene.
25009
+ * of selected object.
24744
25010
  */
24745
25011
  this.$emit("timeChanged", this.sceneData.currentTime);
24746
25012
  },
@@ -24753,6 +25019,17 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24753
25019
  },
24754
25020
  render: function render(val) {
24755
25021
  this.toggleRendering(val);
25022
+ },
25023
+ markerLabels: function markerLabels(labels) {
25024
+ var _this = this;
25025
+ console.log("marker labels changed", labels);
25026
+ this.previousMarkerLabels.forEach(function (pml) {
25027
+ _this.setMarkerModeForObjectsWithName(pml, "off");
25028
+ });
25029
+ labels.forEach(function (l) {
25030
+ _this.setMarkerModeForObjectsWithName(l, "on");
25031
+ });
25032
+ this.previousMarkerLabels = labels;
24756
25033
  }
24757
25034
  },
24758
25035
  beforeCreate: function beforeCreate() {
@@ -24763,7 +25040,6 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24763
25040
  this._currentURL = undefined;
24764
25041
  this.availableBackground = ["white", "black", "lightskyblue"];
24765
25042
  this.$_searchIndex = new search_SearchIndex();
24766
- this.$_tempId = 1;
24767
25043
  },
24768
25044
  mounted: function mounted() {
24769
25045
  this.$refs.treeControls.setModule(this.$module);
@@ -24782,28 +25058,45 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24782
25058
  this.$module = undefined;
24783
25059
  },
24784
25060
  methods: {
24785
- /**
24786
- * This is called when a new zinc object is read into the scene.
25061
+ addZincObject: function addZincObject(zincObject) {
25062
+ if (this.$module.scene) {
25063
+ this.$module.scene.addZincObject(zincObject);
25064
+ this.zincObjectAdded(zincObject);
25065
+ if (this.$refs.treeControls) this.$refs.treeControls.zincObjectAdded(zincObject);
25066
+ }
25067
+ },
25068
+ /**
25069
+ * This is called when a new zinc object is read into the scene.
24787
25070
  */
24788
25071
  zincObjectAdded: function zincObjectAdded(zincObject) {
24789
25072
  this.loading = false;
24790
- zincObject.searchIndexId = ++this.$_tempId;
24791
- this.$_searchIndex.addZincObject(zincObject, zincObject.searchIndexId);
25073
+ this.$_searchIndex.addZincObject(zincObject, zincObject.uuid);
24792
25074
  this.$emit("zinc-object-added", zincObject);
24793
25075
  },
24794
- /**
24795
- * This is called when Change backgspeedround colour button
24796
- * is pressed an causes the backgrouColornd colour to be changed
24797
- * to one of the three preset colour: white, black and
24798
- * lightskyblue.
25076
+ /**
25077
+ *
25078
+ */
25079
+ addRegionsToSearchIndex: function addRegionsToSearchIndex() {
25080
+ var _this2 = this;
25081
+ var rootRegion = this.$module.scene.getRootRegion();
25082
+ var regions = rootRegion.getChildRegions(true);
25083
+ regions.forEach(function (region) {
25084
+ _this2.$_searchIndex.addRegion(region, region.uuid);
25085
+ });
25086
+ },
25087
+ /**
25088
+ * This is called when Change backgspeedround colour button
25089
+ * is pressed an causes the backgrouColornd colour to be changed
25090
+ * to one of the three preset colour: white, black and
25091
+ * lightskyblue.
24799
25092
  */
24800
25093
  backgroundChangeCallback: function backgroundChangeCallback(colour) {
24801
25094
  this.currentBackground = colour;
24802
25095
  this.$module.zincRenderer.getThreeJSRenderer().setClearColor(this.currentBackground, 1);
24803
25096
  },
24804
- /**
24805
- * This is called by captueeScreenshot and after the last render
24806
- * loop, it download a screenshot of the current scene with no UI.
25097
+ /**
25098
+ * This is called by captueeScreenshot and after the last render
25099
+ * loop, it download a screenshot of the current scene with no UI.
24807
25100
  */
24808
25101
  captureScreenshotCallback: function captureScreenshotCallback() {
24809
25102
  //Remove the callback, only needs to happen once
@@ -24816,17 +25109,27 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24816
25109
  hrefElement.click();
24817
25110
  hrefElement.remove();
24818
25111
  },
24819
- /**
24820
- * Function for capturing a screenshot of the current rendering.
24821
- *
24822
- * @param {String} filename filename given to the screenshot.
24823
- *
24824
- * @public
25112
+ /**
25113
+ * Function for capturing a screenshot of the current rendering.
25114
+ *
25115
+ * @param {String} filename filename given to the screenshot.
25116
+ *
25117
+ * @public
24825
25118
  */
24826
25119
  captureScreenshot: function captureScreenshot(filename) {
24827
25120
  this.captureFilename = filename;
24828
25121
  this.captureID = this.$module.zincRenderer.addPostRenderCallbackFunction(this.captureScreenshotCallback);
24829
25122
  },
25123
+ /**
25124
+ * Function to clear current scene, the tree controls and the search index.
25125
+ *
25126
+ * @public
25127
+ */
25128
+ clearScene: function clearScene() {
25129
+ if (this.$refs.treeControls) this.$refs.treeControls.clear();
25130
+ if (this.$_searchIndex) this.$_searchIndex.removeAll();
25131
+ if (this.$module.scene) this.$module.scene.clearAll();
25132
+ },
24830
25133
  formatTooltip: function formatTooltip(val) {
24831
25134
  if (this.timeMax >= 1000) {
24832
25135
  if (val) {
@@ -24837,52 +25140,52 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24837
25140
  }
24838
25141
  return val ? val.toFixed(2) + " ms" : "0 ms";
24839
25142
  },
24840
- /**
24841
- * Function to reset the view to default.
24842
- * Also called when the associated button is pressed.
24843
- *
24844
- * @public
25143
+ /**
25144
+ * Function to reset the view to default.
25145
+ * Also called when the associated button is pressed.
25146
+ *
25147
+ * @public
24845
25148
  */
24846
25149
  fitWindow: function fitWindow() {
24847
25150
  if (this.$module.scene) {
24848
25151
  this.$module.scene.viewAll();
24849
25152
  }
24850
25153
  },
24851
- /**
24852
- * Function to zoom in.
24853
- * Also called when the associated button is pressed.
24854
- *
24855
- * @public
25154
+ /**
25155
+ * Function to zoom in.
25156
+ * Also called when the associated button is pressed.
25157
+ *
25158
+ * @public
24856
25159
  */
24857
25160
  zoomIn: function zoomIn() {
24858
25161
  if (this.$module.scene) {
24859
25162
  this.$module.scene.changeZoomByScrollRateUnit(-1);
24860
25163
  }
24861
25164
  },
24862
- /**
24863
- * Function to zoom out.
24864
- * Also called when the associated button is pressed.
24865
- *
24866
- * @public
25165
+ /**
25166
+ * Function to zoom out.
25167
+ * Also called when the associated button is pressed.
25168
+ *
25169
+ * @public
24867
25170
  */
24868
25171
  zoomOut: function zoomOut() {
24869
25172
  if (this.$module.scene) {
24870
25173
  this.$module.scene.changeZoomByScrollRateUnit(1);
24871
25174
  }
24872
25175
  },
24873
- /**
24874
- * Function to change the current play speed.
24875
- *
24876
- * @public
25176
+ /**
25177
+ * Function to change the current play speed.
25178
+ *
25179
+ * @public
24877
25180
  */
24878
25181
  speedChanged: function speedChanged(speed) {
24879
25182
  this.currentSpeed = speed;
24880
25183
  this.$module.setPlayRate(this.defaultRate * this.currentSpeed);
24881
25184
  },
24882
- /**
24883
- * Function used to stop the free spin
24884
- *
24885
- * @public
25185
+ /**
25186
+ * Function used to stop the free spin
25187
+ *
25188
+ * @public
24886
25189
  */
24887
25190
  stopFreeSpin: function stopFreeSpin() {
24888
25191
  var cameracontrol = this.$module.scene.getZincCameraControls();
@@ -24896,8 +25199,8 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24896
25199
  }
24897
25200
  return objects;
24898
25201
  },
24899
- /**
24900
- * Focus on named region
25202
+ /**
25203
+ * Focus on named region
24901
25204
  */
24902
25205
  viewRegion: function viewRegion(names) {
24903
25206
  var rootRegion = this.$module.scene.getRootRegion();
@@ -24946,11 +25249,11 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24946
25249
  }
24947
25250
  return undefined;
24948
25251
  },
24949
- /**
24950
- * Function used to rotate the scene.
24951
- * Also called when the associated button is pressed.
24952
- *
24953
- * @public
25252
+ /**
25253
+ * Function used to rotate the scene.
25254
+ * Also called when the associated button is pressed.
25255
+ *
25256
+ * @public
24954
25257
  */
24955
25258
  freeSpin: function freeSpin() {
24956
25259
  if (this.$module.scene) {
@@ -24961,10 +25264,10 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24961
25264
  setTimeout(this.stopFreeSpin, 4000);
24962
25265
  }
24963
25266
  },
24964
- /**
24965
- * Callback when a region is selected/highlighted.
24966
- * It will also update other controls.
24967
- *
25267
+ /**
25268
+ * Callback when a region is selected/highlighted.
25269
+ * It will also update other controls.
25270
+ *
24968
25271
  */
24969
25272
  eventNotifierCallback: function eventNotifierCallback(event) {
24970
25273
  var names = [];
@@ -24979,10 +25282,10 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24979
25282
  });
24980
25283
  zincObjects = event.zincObjects;
24981
25284
  }
24982
- /*
24983
- * Event Type 1: Selected
24984
- * Event Type 2: Highlighted
24985
- * Event Type 1: Move
25285
+ /*
25286
+ * Event Type 1: Selected
25287
+ * Event Type 2: Highlighted
25288
+ * Event Type 1: Move
24986
25289
  */
24987
25290
  if (event.eventType == 1) {
24988
25291
  if (this.$refs.treeControls) {
@@ -25013,7 +25316,7 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25013
25316
  if (event.identifiers[0].coords) {
25014
25317
  this.tData.visible = true;
25015
25318
  this.tData.label = id;
25016
- if (event.identifiers[0].data.region) this.tData.region = event.identifiers[0].data.region;else this.tData.region = "Root";
25319
+ if (event.identifiers[0].data.region) this.tData.region = event.identifiers[0].data.region;else this.tData.region = undefined;
25017
25320
  this.tData.x = event.identifiers[0].coords.x;
25018
25321
  this.tData.y = event.identifiers[0].coords.y;
25019
25322
  }
@@ -25032,10 +25335,10 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25032
25335
  }
25033
25336
  }
25034
25337
  },
25035
- /**
25036
- * Get the coordinates of the current selected region.
25037
- *
25038
- * @public
25338
+ /**
25339
+ * Get the coordinates of the current selected region.
25340
+ *
25341
+ * @public
25039
25342
  */
25040
25343
  getCoordinatesOfSelected: function getCoordinatesOfSelected() {
25041
25344
  if (this.selectedObjects && this.selectedObjects.length > 0) {
@@ -25043,46 +25346,46 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25043
25346
  }
25044
25347
  return undefined;
25045
25348
  },
25046
- /**
25047
- * Return an object containing the window coordinates of the
25048
- * current selected region which will be updated after each render
25049
- * loop.
25050
- *
25051
- * @public
25349
+ /**
25350
+ * Return an object containing the window coordinates of the
25351
+ * current selected region which will be updated after each render
25352
+ * loop.
25353
+ *
25354
+ * @public
25052
25355
  */
25053
25356
  getDynamicSelectedCoordinates: function getDynamicSelectedCoordinates() {
25054
25357
  return this.$module.selectedScreenCoordinates;
25055
25358
  },
25056
- /**
25057
- * Callback when time is changed through the UI.
25359
+ /**
25360
+ * Callback when time is changed through the UI.
25058
25361
  */
25059
25362
  timeChange: function timeChange(event) {
25060
25363
  var normalizedTime = event / this.timeMax * 100;
25061
25364
  if (normalizedTime != this.sceneData.currentTime) this.$module.updateTime(normalizedTime);
25062
25365
  },
25063
- /**
25064
- * A callback used by children components. Set the selected zinc object
25065
- *
25066
- * @param {object} object Zinc object
25366
+ /**
25367
+ * A callback used by children components. Set the selected zinc object
25368
+ *
25369
+ * @param {object} object Zinc object
25067
25370
  */
25068
25371
  objectSelected: function objectSelected(objects, propagate) {
25069
25372
  this.selectedObjects = objects;
25070
25373
  if (this.selectedObjects && this.selectedObjects.length > 0) this.$refs.opacityControl.setObject(this.selectedObjects[0]);
25071
25374
  this.$module.setSelectedByZincObjects(objects, undefined, propagate);
25072
25375
  },
25073
- /**
25074
- * A callback used by children components. Set the highlighted zinc object
25075
- *
25076
- * @param {object} object Zinc object
25376
+ /**
25377
+ * A callback used by children components. Set the highlighted zinc object
25378
+ *
25379
+ * @param {object} object Zinc object
25077
25380
  */
25078
25381
  objectHovered: function objectHovered(objects, propagate) {
25079
25382
  this.hoveredObjects = objects;
25080
25383
  this.$module.setHighlightedByZincObjects(objects, undefined, propagate);
25081
25384
  },
25082
- /**
25083
- * Set the selected by name.
25084
- *
25085
- * @param {} name Name of the group
25385
+ /**
25386
+ * Set the selected by name.
25387
+ *
25388
+ * @param {} name Name of the group
25086
25389
  */
25087
25390
  changeActiveByName: function changeActiveByName(names, region, propagate) {
25088
25391
  var isArray = Array.isArray(names);
@@ -25094,10 +25397,10 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25094
25397
  this.$refs.treeControls.changeActiveByNames(array, region, propagate);
25095
25398
  }
25096
25399
  },
25097
- /**
25098
- * Set the highlighted by name.
25099
- *
25100
- * @param {name} name Name of the group
25400
+ /**
25401
+ * Set the highlighted by name.
25402
+ *
25403
+ * @param {name} name Name of the group
25101
25404
  */
25102
25405
  changeHighlightedByName: function changeHighlightedByName(names, region, propagate) {
25103
25406
  var isArray = Array.isArray(names);
@@ -25109,10 +25412,10 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25109
25412
  this.$refs.treeControls.changeHoverByNames(array, region, propagate);
25110
25413
  }
25111
25414
  },
25112
- /**
25113
- * Start the animation.
25114
- *
25115
- * @param {object} object Zinc object
25415
+ /**
25416
+ * Start the animation.
25417
+ *
25418
+ * @param {object} object Zinc object
25116
25419
  */
25117
25420
  play: function play(flag) {
25118
25421
  this.$module.playAnimation(flag);
@@ -25121,8 +25424,8 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25121
25424
  //this.hideRegionTooltip();
25122
25425
  },
25123
25426
 
25124
- /**
25125
- * Function to toggle on/off overlay help.
25427
+ /**
25428
+ * Function to toggle on/off overlay help.
25126
25429
  */
25127
25430
  setHelpMode: function setHelpMode(helpMode) {
25128
25431
  if (helpMode) {
@@ -25137,16 +25440,16 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25137
25440
  });
25138
25441
  }
25139
25442
  },
25140
- /**
25141
- * Callback function used by showRegionTooltip in the case when the tooltip
25142
- * is out of view.
25443
+ /**
25444
+ * Callback function used by showRegionTooltip in the case when the tooltip
25445
+ * is out of view.
25143
25446
  */
25144
- displayTooltipOfObjectsCallback: function displayTooltipOfObjectsCallback(name, objects, resetView, liveUpdates) {
25447
+ displayTooltipOfObjectsCallback: function displayTooltipOfObjectsCallback(name, objects, regionPath, resetView, liveUpdates) {
25145
25448
  var instance = this;
25146
25449
  return function () {
25147
25450
  instance.$module.zincRenderer.removePostRenderCallbackFunction(instance.$_regionTooltipCallback);
25148
25451
  instance.$_regionTooltipCallback = undefined;
25149
- instance.displayTooltipOfObjects(name, objects, resetView, liveUpdates);
25452
+ instance.displayTooltipOfObjects(name, objects, regionPath, resetView, liveUpdates);
25150
25453
  };
25151
25454
  },
25152
25455
  liveUpdateTooltipPosition: function liveUpdateTooltipPosition() {
@@ -25155,7 +25458,7 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25155
25458
  this.tData.y = this.$module.selectedScreenCoordinates.y;
25156
25459
  }
25157
25460
  },
25158
- displayTooltipOfObjects: function displayTooltipOfObjects(name, objects, resetView, liveUpdates) {
25461
+ displayTooltipOfObjects: function displayTooltipOfObjects(name, objects, regionPath, resetView, liveUpdates) {
25159
25462
  if (objects.length > 0) {
25160
25463
  var coords = objects[0].getClosestVertexDOMElementCoords(this.$module.scene);
25161
25464
  if (coords) {
@@ -25169,20 +25472,19 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25169
25472
  if (this.$_regionTooltipCallback) {
25170
25473
  this.$module.zincRenderer.removePostRenderCallbackFunction(this.$_regionTooltipCallback);
25171
25474
  }
25172
- this.$_regionTooltipCallback = this.$module.zincRenderer.addPostRenderCallbackFunction(this.displayTooltipOfObjectsCallback(name, objects, resetView, liveUpdates));
25475
+ this.$_regionTooltipCallback = this.$module.zincRenderer.addPostRenderCallbackFunction(this.displayTooltipOfObjectsCallback(name, objects, regionPath, resetView, liveUpdates));
25173
25476
  }
25174
25477
  } else {
25175
25478
  this.tData.visible = true;
25176
25479
  this.tData.label = name;
25177
25480
  this.tData.x = coords.position.x;
25178
25481
  this.tData.y = coords.position.y;
25179
- var regionPath = objects[0].getRegion().getFullPath();
25180
- if (regionPath) this.tData.region = regionPath;else this.tData.region = "Root";
25482
+ this.tData.region = regionPath;
25483
+ if (this.$_liveCoordinatesUpdated) {
25484
+ this.$module.zincRenderer.removePostRenderCallbackFunction(this.$_liveCoordinatesUpdated);
25485
+ }
25181
25486
  if (liveUpdates) {
25182
25487
  this.$module.setupLiveCoordinates(objects);
25183
- if (this.$_liveCoordinatesUpdated) {
25184
- this.$module.zincRenderer.removePostRenderCallbackFunction(this.$_liveCoordinatesUpdated);
25185
- }
25186
25488
  this.$_liveCoordinatesUpdated = this.$module.zincRenderer.addPostRenderCallbackFunction(this.liveUpdateTooltipPosition);
25187
25489
  }
25188
25490
  }
@@ -25192,18 +25494,53 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25192
25494
  this.hideRegionTooltip();
25193
25495
  return false;
25194
25496
  },
25195
- /**
25196
- * Display the tooltip. When resetView is set to true, it will
25197
- * reset view if the tooltip is not in view.
25198
- * Setting liveUpdates to true will update the tooltip location
25199
- * at every rendering loop.
25497
+ /**
25498
+ * Display the tooltip used for displaying search result.
25499
+ * When resetView is set to true, it will
25500
+ * reset view if the tooltip is not in view.
25501
+ * Setting liveUpdates to true will update the tooltip location
25502
+ * at every rendering loop.
25503
+ */
25504
+ showRegionTooltipWithObjects: function showRegionTooltipWithObjects(label, zincObjects, regionPath, resetView, liveUpdates) {
25505
+ if (label && zincObjects && zincObjects.length > 0 && this.$module.scene) {
25506
+ return this.displayTooltipOfObjects(label, zincObjects, regionPath, resetView, liveUpdates);
25507
+ }
25508
+ this.hideRegionTooltip();
25509
+ return false;
25510
+ },
25511
+ /**
25512
+ * Display the tooltip. When resetView is set to true, it will
25513
+ * reset view if the tooltip is not in view.
25514
+ * Setting liveUpdates to true will update the tooltip location
25515
+ * at every rendering loop.
25200
25516
  */
25201
25517
  showRegionTooltip: function showRegionTooltip(name, resetView, liveUpdates) {
25202
25518
  if (name && this.$module.scene) {
25203
25519
  var rootRegion = this.$module.scene.getRootRegion();
25204
25520
  var groups = [name];
25205
25521
  var objects = utilities_findObjectsWithNames(rootRegion, groups, "", true);
25206
- return this.displayTooltipOfObjects(name, objects, resetView, liveUpdates);
25522
+ var regionPath = undefined;
25523
+ if (objects && objects.length > 0) {
25524
+ regionPath = objects[0].getRegion().getFullPath();
25525
+ }
25526
+ return this.showRegionTooltipWithObjects(name, objects, regionPath, resetView, liveUpdates);
25527
+ }
25528
+ this.hideRegionTooltip();
25529
+ return false;
25530
+ },
25531
+ /**
25532
+ * Display the tooltip using the list of annotations.
25533
+ * When resetView is set to true, it will
25534
+ * reset view if the tooltip is not in view.
25535
+ * Setting liveUpdates to true will update the tooltip location
25536
+ * at every rendering loop.
25537
+ */
25538
+ showRegionTooltipWithAnnotations: function showRegionTooltipWithAnnotations(annotations, resetView, liveUpdates) {
25539
+ if (this.$module.scene) {
25540
+ var result = getObjectsFromAnnotations(this.$module.scene, annotations);
25541
+ if (result && result.objects.length > 0) {
25542
+ return this.showRegionTooltipWithObjects(result.label, result.objects, result.regionPath, resetView, liveUpdates);
25543
+ }
25207
25544
  }
25208
25545
  this.hideRegionTooltip();
25209
25546
  return false;
@@ -25215,22 +25552,49 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25215
25552
  this.$module.setupLiveCoordinates(undefined);
25216
25553
  }
25217
25554
  this.tData.visible = false;
25218
- this.tData.region = "Root";
25555
+ this.tData.region = undefined;
25219
25556
  },
25220
- /**
25221
- * This is called when mouse cursor enters supported elements
25222
- * with help tootltips.
25557
+ /**
25558
+ * Set the marker modes for objects with the provided name, mode can
25559
+ * be "on", "off" or "inherited".
25560
+ */
25561
+ setMarkerModeForObjectsWithName: function setMarkerModeForObjectsWithName(name, mode) {
25562
+ if (name && this.$module.scene) {
25563
+ var rootRegion = this.$module.scene.getRootRegion();
25564
+ var groups = [name];
25565
+ var objects = utilities_findObjectsWithNames(rootRegion, groups, "", true);
25566
+ objects.forEach(function (object) {
25567
+ return object.setMarkerMode(mode);
25568
+ });
25569
+ }
25570
+ },
25571
+ /**
25572
+ * Set the marker modes for objects specified by the list of annotations
25573
+ */
25574
+ setMarkerModeWithAnnotations: function setMarkerModeWithAnnotations(annotations, mode) {
25575
+ if (this.$module.scene) {
25576
+ var result = getObjectsFromAnnotations(this.$module.scene, annotations);
25577
+ if (result && result.objects.length > 0) {
25578
+ result.objects.forEach(function (object) {
25579
+ return object.setMarkerMode(mode);
25580
+ });
25581
+ }
25582
+ }
25583
+ },
25584
+ /**
25585
+ * This is called when mouse cursor enters supported elements
25586
+ * with help tootltips.
25223
25587
  */
25224
25588
  showHelpText: function showHelpText(helpTextNumber) {
25225
- var _this = this;
25589
+ var _this3 = this;
25226
25590
  if (!this.inHelp) {
25227
25591
  this.helpTextWait = setTimeout(function () {
25228
- _this.hoverVisibilities[helpTextNumber].value = true;
25592
+ _this3.hoverVisibilities[helpTextNumber].value = true;
25229
25593
  }, 500);
25230
25594
  }
25231
25595
  },
25232
- /**
25233
- * This is called when mouse cursor exits supported element..
25596
+ /**
25597
+ * This is called when mouse cursor exits supported element..
25234
25598
  */
25235
25599
  hideHelpText: function hideHelpText(helpTextNumber) {
25236
25600
  if (!this.inHelp) {
@@ -25244,19 +25608,14 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25244
25608
  this.objectSelected([], true);
25245
25609
  return false;
25246
25610
  } else {
25247
- var zincObjectResults = [];
25248
- if (Array.isArray(text)) {
25249
- //zincObjectResults = this.$_searchIndex.search("Heart");
25250
- zincObjectResults = this.$_searchIndex.searchTerms(text);
25251
- } else {
25252
- zincObjectResults = this.$_searchIndex.search(text);
25253
- }
25254
- if (zincObjectResults.length > 0) {
25255
- this.objectSelected(zincObjectResults, true);
25611
+ var result = this.$_searchIndex.searchAndProcessResult(text);
25612
+ var zincObjects = result.zincObjects;
25613
+ if (zincObjects.length > 0) {
25614
+ this.objectSelected(zincObjects, true);
25256
25615
  if (displayLabel) {
25257
- for (var i = 0; i < zincObjectResults.length; i++) {
25258
- if (zincObjectResults[i] && zincObjectResults[i].groupName) {
25259
- this.showRegionTooltip(zincObjectResults[i].groupName, true, true);
25616
+ for (var i = 0; i < zincObjects.length; i++) {
25617
+ if (zincObjects[i] && zincObjects[i].groupName) {
25618
+ this.showRegionTooltipWithObjects(result.label, zincObjects, result.regionPath, true, true);
25260
25619
  }
25261
25620
  }
25262
25621
  }
@@ -25268,21 +25627,21 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25268
25627
  }
25269
25628
  return false;
25270
25629
  },
25271
- /**
25272
- * Get the list of suggested terms
25630
+ /**
25631
+ * Get the list of suggested terms
25273
25632
  */
25274
25633
  fetchSuggestions: function fetchSuggestions(term) {
25275
25634
  if (this.$_searchIndex === undefined) return [];
25276
25635
  return this.$_searchIndex.auto_suggest(term);
25277
25636
  },
25278
- /**
25279
- * Called when minimap settings has changed. Pass the
25280
- * parameters to ZincJS and marked it for update.
25637
+ /**
25638
+ * Called when minimap settings has changed. Pass the
25639
+ * parameters to ZincJS and marked it for update.
25281
25640
  */
25282
25641
  updateMinimapScissor: function updateMinimapScissor() {
25283
- var _this2 = this;
25642
+ var _this4 = this;
25284
25643
  Object.keys(this.minimapSettings).forEach(function (key) {
25285
- _this2.$module.scene.minimapScissor[key] = _this2.minimapSettings[key];
25644
+ _this4.$module.scene.minimapScissor[key] = _this4.minimapSettings[key];
25286
25645
  });
25287
25646
  this.$module.scene.minimapScissor.updateRequired = true;
25288
25647
  },
@@ -25299,37 +25658,39 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25299
25658
  this.timeMax = this.$module.scene.getDuration();
25300
25659
  },
25301
25660
  setURLFinishCallback: function setURLFinishCallback(options) {
25302
- var _this3 = this;
25661
+ var _this5 = this;
25303
25662
  return function () {
25304
25663
  if (options) {
25305
25664
  if (options.viewport) {
25306
- _this3.$module.scene.getZincCameraControls().setCurrentCameraSettings(options.viewport);
25665
+ _this5.$module.scene.getZincCameraControls().setCurrentCameraSettings(options.viewport);
25307
25666
  } else if (options.viewURL && options.viewURL !== "") {
25308
- var url = new URL(options.viewURL, _this3.url);
25309
- _this3.$module.scene.loadViewURL(url);
25667
+ var url = new URL(options.viewURL, _this5.url);
25668
+ _this5.$module.scene.loadViewURL(url);
25310
25669
  } else if (options.region && options.region !== "") {
25311
- _this3.viewRegion(options.region);
25670
+ _this5.viewRegion(options.region);
25312
25671
  }
25313
25672
  if (options.visibility) {
25314
25673
  // Some UIs may not be ready at this time.
25315
- _this3.$nextTick(function () {
25316
- _this3.$refs.treeControls.setState(options.visibility);
25674
+ _this5.$nextTick(function () {
25675
+ _this5.$refs.treeControls.setState(options.visibility);
25317
25676
  });
25318
25677
  }
25319
25678
  }
25320
- _this3.updateSettingsfromScene();
25321
- _this3.$module.updateTime(0.01);
25322
- _this3.$module.updateTime(0);
25323
- _this3.$module.unsetFinishDownloadCallback();
25324
- _this3.$emit("on-ready");
25325
- _this3.isReady = true;
25679
+ _this5.updateSettingsfromScene();
25680
+ _this5.$module.updateTime(0.01);
25681
+ _this5.$module.updateTime(0);
25682
+ _this5.$module.unsetFinishDownloadCallback();
25683
+ _this5.addRegionsToSearchIndex();
25684
+ _this5.$emit("on-ready");
25685
+ _this5.setMarkers();
25686
+ _this5.isReady = true;
25326
25687
  };
25327
25688
  },
25328
- /**
25329
- * Function used for getting the current states of the scene. This exported states
25330
- * can be imported using the importStates method.
25331
- *
25332
- * @public
25689
+ /**
25690
+ * Function used for getting the current states of the scene. This exported states
25691
+ * can be imported using the importStates method.
25692
+ *
25693
+ * @public
25333
25694
  */
25334
25695
  getState: function getState() {
25335
25696
  var state = {
@@ -25345,11 +25706,11 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25345
25706
  }
25346
25707
  return state;
25347
25708
  },
25348
- /**
25349
- * Function used for importing the states of the scene. This exported states
25350
- * can be imported using the read states method.
25351
- *
25352
- * @public
25709
+ /**
25710
+ * Function used for importing the states of the scene. This exported states
25711
+ * can be imported using the read states method.
25712
+ *
25713
+ * @public
25353
25714
  */
25354
25715
  setState: function setState(state) {
25355
25716
  if (state) {
@@ -25377,12 +25738,12 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25377
25738
  exportGLTF: function exportGLTF(binary) {
25378
25739
  return this.$module.scene.exportGLTF(binary);
25379
25740
  },
25380
- /**
25381
- * Function used for reading in new scaffold metadata and a custom
25382
- * viewport. This function will ignore the state prop and
25383
- * read in the new url.
25384
- *
25385
- * @public
25741
+ /**
25742
+ * Function used for reading in new scaffold metadata and a custom
25743
+ * viewport. This function will ignore the state prop and
25744
+ * read in the new url.
25745
+ *
25746
+ * @public
25386
25747
  */
25387
25748
  setURLAndState: function setURLAndState(newValue, state) {
25388
25749
  if (newValue != this._currentURL) {
@@ -25393,6 +25754,8 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25393
25754
  if (this.$refs.treeControls) this.$refs.treeControls.clear();
25394
25755
  this.loading = true;
25395
25756
  this.isReady = false;
25757
+ this.$_searchIndex.removeAll();
25758
+ this.hideRegionTooltip();
25396
25759
  this.$module.setFinishDownloadCallback(this.setURLFinishCallback({
25397
25760
  viewport: viewport,
25398
25761
  region: this.region,
@@ -25404,33 +25767,30 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25404
25767
  } else {
25405
25768
  this.$module.loadOrgansFromURL(newValue, undefined, undefined, "scene", undefined, true);
25406
25769
  }
25407
- this.$_searchIndex.removeAll();
25408
- this.$_tempId = 1;
25409
- this.hideRegionTooltip();
25410
25770
  this.$module.scene.displayMarkers = this.displayMarkers;
25411
25771
  this.$module.scene.forcePickableObjectsUpdate = true;
25412
25772
  this.$module.scene.displayMinimap = this.displayMinimap;
25413
25773
  this.updateMinimapScissor();
25414
25774
  }
25415
25775
  },
25416
- /**
25417
- * Function used for reading in new scaffold metadata. This function will ignore
25418
- * the state prop and read in the new url.
25419
- *
25420
- * @public
25776
+ /**
25777
+ * Function used for reading in new scaffold metadata. This function will ignore
25778
+ * the state prop and read in the new url.
25779
+ *
25780
+ * @public
25421
25781
  */
25422
25782
  setURL: function setURL(newValue) {
25423
25783
  this.setURLAndState(newValue, undefined);
25424
25784
  },
25425
- /**
25426
- * Callback when drawer is toggled.
25785
+ /**
25786
+ * Callback when drawer is toggled.
25427
25787
  */
25428
25788
  drawerToggled: function drawerToggled(flag) {
25429
25789
  this.drawerOpen = flag;
25430
25790
  this.adjustLayout();
25431
25791
  },
25432
- /**
25433
- * Callback using ResizeObserver.
25792
+ /**
25793
+ * Callback using ResizeObserver.
25434
25794
  */
25435
25795
  adjustLayout: function adjustLayout() {
25436
25796
  var width = this.$refs.scaffoldContainer.clientWidth;
@@ -25458,27 +25818,36 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25458
25818
  syncControlCallback: function syncControlCallback() {
25459
25819
  var payload = this.$module.NDCCameraControl.getPanZoom();
25460
25820
  if (this.tData.visible) {
25461
- this.showRegionTooltip(this.tData.label);
25821
+ this.showRegionTooltip(this.tData.label, true, true);
25462
25822
  }
25463
25823
  this.$emit("scaffold-navigated", payload);
25464
25824
  },
25465
- /**
25466
- * Rotate mode - "none", "horizontal", "vertical", "free" but
25467
- * it will be ignored if flag is set to false.
25825
+ /**
25826
+ * Rotate mode - "none", "horizontal", "vertical", "free" but
25827
+ * it will be ignored if flag is set to false.
25468
25828
  */
25469
25829
  toggleSyncControl: function toggleSyncControl(flag, rotateMode) {
25470
25830
  this.$module.toggleSyncControl(flag, rotateMode);
25471
25831
  this.$module.setSyncControlCallback(this.syncControlCallback);
25832
+ },
25833
+ /**
25834
+ * Set the markers for the scene.
25835
+ */
25836
+ setMarkers: function setMarkers() {
25837
+ var _this6 = this;
25838
+ this.markerLabels.forEach(function (l) {
25839
+ _this6.setMarkerModeForObjectsWithName(l, "on");
25840
+ });
25472
25841
  }
25473
25842
  }
25474
25843
  });
25475
25844
  // CONCATENATED MODULE: ./src/components/ScaffoldVuer.vue?vue&type=script&lang=js&
25476
25845
  /* harmony default export */ var components_ScaffoldVuervue_type_script_lang_js_ = (ScaffoldVuervue_type_script_lang_js_);
25477
- // EXTERNAL MODULE: ./src/components/ScaffoldVuer.vue?vue&type=style&index=0&id=02838f59&prod&scoped=true&lang=scss&
25478
- var ScaffoldVuervue_type_style_index_0_id_02838f59_prod_scoped_true_lang_scss_ = __webpack_require__("f4b0");
25846
+ // EXTERNAL MODULE: ./src/components/ScaffoldVuer.vue?vue&type=style&index=0&id=718c348c&prod&scoped=true&lang=scss&
25847
+ var ScaffoldVuervue_type_style_index_0_id_718c348c_prod_scoped_true_lang_scss_ = __webpack_require__("ee47");
25479
25848
 
25480
- // EXTERNAL MODULE: ./src/components/ScaffoldVuer.vue?vue&type=style&index=1&id=02838f59&prod&lang=scss&
25481
- var ScaffoldVuervue_type_style_index_1_id_02838f59_prod_lang_scss_ = __webpack_require__("2ce7");
25849
+ // EXTERNAL MODULE: ./src/components/ScaffoldVuer.vue?vue&type=style&index=1&id=718c348c&prod&lang=scss&
25850
+ var ScaffoldVuervue_type_style_index_1_id_718c348c_prod_lang_scss_ = __webpack_require__("6514");
25482
25851
 
25483
25852
  // CONCATENATED MODULE: ./src/components/ScaffoldVuer.vue
25484
25853
 
@@ -25496,7 +25865,7 @@ var ScaffoldVuer_component = normalizeComponent(
25496
25865
  staticRenderFns,
25497
25866
  false,
25498
25867
  null,
25499
- "02838f59",
25868
+ "718c348c",
25500
25869
  null
25501
25870
 
25502
25871
  )