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

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