@abi-software/scaffoldvuer 0.1.52-beta.1 → 0.1.52-beta.4

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.
@@ -142,6 +142,13 @@ module.exports = require("element-ui/lib/theme-chalk/select.css");
142
142
 
143
143
  /***/ }),
144
144
 
145
+ /***/ "0fec":
146
+ /***/ (function(module, exports) {
147
+
148
+ module.exports = require("element-ui/lib/tree");
149
+
150
+ /***/ }),
151
+
145
152
  /***/ "11b0":
146
153
  /***/ (function(module, exports, __webpack_require__) {
147
154
 
@@ -176,17 +183,17 @@ module.exports = require("core-js/modules/es.array.for-each");
176
183
 
177
184
  /***/ }),
178
185
 
179
- /***/ "18d2":
186
+ /***/ "1ac9":
180
187
  /***/ (function(module, exports) {
181
188
 
182
- module.exports = require("core-js/modules/es.array.concat");
189
+ module.exports = require("element-ui/lib/container");
183
190
 
184
191
  /***/ }),
185
192
 
186
- /***/ "1ac9":
187
- /***/ (function(module, exports) {
193
+ /***/ "1b02":
194
+ /***/ (function(module, exports, __webpack_require__) {
188
195
 
189
- module.exports = require("element-ui/lib/container");
196
+ // extracted by mini-css-extract-plugin
190
197
 
191
198
  /***/ }),
192
199
 
@@ -291,22 +298,15 @@ module.exports = require("element-ui/lib/drawer");
291
298
 
292
299
  /***/ }),
293
300
 
294
- /***/ "3a59":
301
+ /***/ "3816":
295
302
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
296
303
 
297
304
  "use strict";
298
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TraditionalControls_vue_vue_type_style_index_0_id_335c5764_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("4646");
299
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TraditionalControls_vue_vue_type_style_index_0_id_335c5764_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TraditionalControls_vue_vue_type_style_index_0_id_335c5764_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
305
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_0_id_8761aa48_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("641f");
306
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_0_id_8761aa48_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_0_id_8761aa48_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
300
307
  /* unused harmony reexport * */
301
308
 
302
309
 
303
- /***/ }),
304
-
305
- /***/ "3bde":
306
- /***/ (function(module, exports, __webpack_require__) {
307
-
308
- // extracted by mini-css-extract-plugin
309
-
310
310
  /***/ }),
311
311
 
312
312
  /***/ "429c":
@@ -335,10 +335,14 @@ module.exports = _toConsumableArray;
335
335
 
336
336
  /***/ }),
337
337
 
338
- /***/ "4646":
339
- /***/ (function(module, exports, __webpack_require__) {
338
+ /***/ "47d7":
339
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
340
+
341
+ "use strict";
342
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TreeControls_vue_vue_type_style_index_0_id_4d20ec9a_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("1b02");
343
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TreeControls_vue_vue_type_style_index_0_id_4d20ec9a_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TreeControls_vue_vue_type_style_index_0_id_4d20ec9a_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
344
+ /* unused harmony reexport * */
340
345
 
341
- // extracted by mini-css-extract-plugin
342
346
 
343
347
  /***/ }),
344
348
 
@@ -349,6 +353,13 @@ module.exports = require("element-ui/lib/color-picker");
349
353
 
350
354
  /***/ }),
351
355
 
356
+ /***/ "49d0":
357
+ /***/ (function(module, exports) {
358
+
359
+ module.exports = require("element-ui/lib/theme-chalk/tree.css");
360
+
361
+ /***/ }),
362
+
352
363
  /***/ "4c89":
353
364
  /***/ (function(module, exports) {
354
365
 
@@ -387,16 +398,12 @@ module.exports = require("core-js/modules/es.regexp.exec");
387
398
  /***/ "53d7":
388
399
  /***/ (function(module, exports, __webpack_require__) {
389
400
 
390
- __webpack_require__("ab7e");
391
-
392
401
  __webpack_require__("7c81");
393
402
 
394
403
  __webpack_require__("bcd8");
395
404
 
396
405
  __webpack_require__("2175");
397
406
 
398
- __webpack_require__("fd48");
399
-
400
407
  var _typeof = __webpack_require__("7037");
401
408
 
402
409
  var THREE = __webpack_require__("9206").THREE; // Current model's associate data, data fields, external link, nerve map
@@ -498,7 +505,18 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
498
505
  cameraControl.resetView();
499
506
  _this2.NDCCameraControl = cameraControl.enableSyncControl();
500
507
  } else {
501
- _this2.NDCCameraControl = cameraControl.disableSyncControl();
508
+ cameraControl.disableSyncControl();
509
+ _this2.NDCCameraControl = undefined;
510
+ }
511
+ };
512
+
513
+ this.isSyncControl = function () {
514
+ return _this2.NDCCameraControl !== undefined;
515
+ };
516
+
517
+ this.setSyncControlZoomToBox = function (box) {
518
+ if (_this2.NDCCameraControl) {
519
+ _this2.NDCCameraControl.zoomToBox(box, 2);
502
520
  }
503
521
  };
504
522
 
@@ -622,17 +640,21 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
622
640
  var intersected = _this.getIntersectedObject(intersects);
623
641
 
624
642
  var idObject = getIdObjectFromIntersect(intersected);
643
+ var coords = {
644
+ x: window_x,
645
+ y: window_y
646
+ };
625
647
 
626
648
  if (idObject.id) {
627
649
  if (idObject.object.userData.isGlyph) {
628
- if (idObject.object.name) _this.setSelectedByObjects([idObject.object], true);else _this.setSelectedByZincObject(idObject.object.userData.getGlyphset(), true);
650
+ if (idObject.object.name) _this.setSelectedByObjects([idObject.object], coords, true);else _this.setSelectedByZincObject(idObject.object.userData.getGlyphset(), coords, true);
629
651
  } else {
630
- _this.setSelectedByObjects([idObject.object], true);
652
+ _this.setSelectedByObjects([idObject.object], coords, true);
631
653
  }
632
654
 
633
655
  return;
634
656
  } else {
635
- _this.setSelectedByObjects([], true);
657
+ _this.setSelectedByObjects([], coords, true);
636
658
  }
637
659
  };
638
660
  };
@@ -648,17 +670,21 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
648
670
  var intersected = _this.getIntersectedObject(intersects);
649
671
 
650
672
  var idObject = getIdObjectFromIntersect(intersected);
673
+ var coords = {
674
+ x: window_x,
675
+ y: window_y
676
+ };
651
677
 
652
678
  if (idObject.id) {
653
679
  _this.displayArea.style.cursor = "pointer";
654
680
 
655
- _this.setHighlightedByObjects([idObject.object], true);
681
+ _this.setHighlightedByObjects([idObject.object], coords, true);
656
682
 
657
683
  return;
658
684
  } else {
659
685
  _this.displayArea.style.cursor = "auto";
660
686
 
661
- _this.setHighlightedByObjects([], true);
687
+ _this.setHighlightedByObjects([], coords, true);
662
688
  }
663
689
  };
664
690
  };
@@ -761,42 +787,34 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
761
787
  };
762
788
 
763
789
  var addOrganPartToSceneData = function addOrganPartToSceneData(zincObject) {
764
- if (zincObject.groupName) {
765
- if (zincObject.isGeometry) {
766
- if (!_this.sceneData.geometries.includes(zincObject.groupName)) {
767
- _this.sceneData.geometries.push(zincObject.groupName);
768
- }
769
- } else if (zincObject.isGlyphset) {
770
- if (!_this.sceneData.glyphsets.includes(zincObject.groupName)) {
771
- _this.sceneData.glyphsets.push(zincObject.groupName);
772
- }
773
- } else if (zincObject.isLines) {
774
- if (!_this.sceneData.lines.includes(zincObject.groupName)) {
775
- _this.sceneData.lines.push(zincObject.groupName);
776
- }
777
- } else if (zincObject.isPointset) {
778
- if (!_this.sceneData.pointsets.includes(zincObject.groupName)) {
779
- _this.sceneData.pointsets.push(zincObject.groupName);
780
- }
781
- }
790
+ if (zincObject.isGeometry) {
791
+ _this.sceneData.geometries.push(zincObject);
792
+ } else if (zincObject.isGlyphset) {
793
+ _this.sceneData.glyphsets.push(zincObject);
794
+ } else if (zincObject.isLines) {
795
+ _this.sceneData.lines.push(zincObject);
796
+ } else if (zincObject.isPointset) {
797
+ _this.sceneData.pointsets.push(zincObject);
782
798
  }
783
799
  };
784
800
 
785
801
  var addOrganPart = function addOrganPart(systemName, partName, useDefautColour, zincObject) {
786
802
  for (var i = 0; i < organPartAddedCallbacks.length; i++) {
787
- organPartAddedCallbacks[i](zincObject.groupName, _this.scene.isTimeVarying(), zincObject);
803
+ organPartAddedCallbacks[i](zincObject, _this.scene.isTimeVarying());
788
804
  }
789
805
 
790
806
  if (useDefautColour) modelsLoader.setGeometryColour(zincObject, systemName, partName);
791
807
  addOrganPartToSceneData(zincObject);
792
808
  var annotation = new (__webpack_require__("984d").annotation)();
809
+ var region = zincObject.region.getFullPath();
793
810
  annotation.data = {
794
811
  species: _this.sceneData.currentSpecies,
795
812
  system: systemName,
796
813
  part: partName,
797
- group: zincObject.groupName
814
+ group: zincObject.groupName,
815
+ region: region
798
816
  };
799
- zincObject.userData = [annotation];
817
+ zincObject.userData["annotation"] = annotation;
800
818
  };
801
819
  /**
802
820
  * New organs geometry has been added to the scene, add UIs and make
@@ -1219,6 +1237,13 @@ module.exports = require("core-js/modules/es.symbol");
1219
1237
 
1220
1238
  /***/ }),
1221
1239
 
1240
+ /***/ "641f":
1241
+ /***/ (function(module, exports, __webpack_require__) {
1242
+
1243
+ // extracted by mini-css-extract-plugin
1244
+
1245
+ /***/ }),
1246
+
1222
1247
  /***/ "642d":
1223
1248
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1224
1249
 
@@ -1394,6 +1419,17 @@ module.exports = require("core-js/modules/es.array.index-of");
1394
1419
 
1395
1420
  module.exports = require("element-ui/lib/locale/lang/en");
1396
1421
 
1422
+ /***/ }),
1423
+
1424
+ /***/ "6e86":
1425
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1426
+
1427
+ "use strict";
1428
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldTooltip_vue_vue_type_style_index_0_id_2ff3bbca_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("d0b9");
1429
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldTooltip_vue_vue_type_style_index_0_id_2ff3bbca_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldTooltip_vue_vue_type_style_index_0_id_2ff3bbca_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
1430
+ /* unused harmony reexport * */
1431
+
1432
+
1397
1433
  /***/ }),
1398
1434
 
1399
1435
  /***/ "6ea3":
@@ -1403,6 +1439,13 @@ module.exports = require("element-ui/lib/row");
1403
1439
 
1404
1440
  /***/ }),
1405
1441
 
1442
+ /***/ "6faa":
1443
+ /***/ (function(module, exports) {
1444
+
1445
+ module.exports = require("core-js/modules/es.number.constructor");
1446
+
1447
+ /***/ }),
1448
+
1406
1449
  /***/ "7037":
1407
1450
  /***/ (function(module, exports, __webpack_require__) {
1408
1451
 
@@ -1555,7 +1598,6 @@ RendererModule.prototype.getIntersectedObject = function (intersects) {
1555
1598
 
1556
1599
  RendererModule.prototype.getAnnotationsFromObjects = function (objects) {
1557
1600
  var annotations = [];
1558
- var count = 0;
1559
1601
 
1560
1602
  for (var i = 0; i < objects.length; i++) {
1561
1603
  var zincObject = objects[i].userData;
@@ -1565,13 +1607,13 @@ RendererModule.prototype.getAnnotationsFromObjects = function (objects) {
1565
1607
  if (zincObject.isGlyph || zincObject.isGlyphset) {
1566
1608
  var glyphset = zincObject;
1567
1609
  if (zincObject.isGlyph) glyphset = (_readOnlyError("glyphset"), zincObject.getGlyphset());
1568
- annotation = glyphset.userData ? glyphset.userData[0] : undefined;
1610
+ annotation = glyphset.userData ? glyphset.userData.annotation : undefined;
1569
1611
 
1570
1612
  if (annotation && annotation.data) {
1571
1613
  if (objects[i].name && objects[i].name != "") annotation.data.id = objects[i].name;else annotation.data.id = glyphset.groupName;
1572
1614
  }
1573
1615
  } else {
1574
- annotation = zincObject.userData ? zincObject.userData[0] : undefined;
1616
+ annotation = zincObject.userData ? zincObject.userData.annotation : undefined;
1575
1617
 
1576
1618
  if (annotation && annotation.data) {
1577
1619
  annotation.data.id = objects[i].name;
@@ -1579,27 +1621,28 @@ RendererModule.prototype.getAnnotationsFromObjects = function (objects) {
1579
1621
  }
1580
1622
  }
1581
1623
 
1582
- if (annotation) annotations[count++] = annotation;
1624
+ if (annotation) annotations.push(annotation);
1583
1625
  }
1584
1626
 
1585
1627
  return annotations;
1586
1628
  };
1587
1629
 
1588
- RendererModule.prototype.setHighlightedByObjects = function (objects, propagateChanges) {
1630
+ RendererModule.prototype.setHighlightedByObjects = function (objects, coords, propagateChanges) {
1589
1631
  var changed = this.graphicsHighlight.setHighlighted(objects);
1590
1632
 
1591
- if (changed && propagateChanges) {
1592
- var eventType = __webpack_require__("9b21").EVENT_TYPE.HIGHLIGHTED;
1593
-
1633
+ if (propagateChanges) {
1634
+ eventType = __webpack_require__("9b21").EVENT_TYPE.MOVE;
1635
+ if (changed) eventType = __webpack_require__("9b21").EVENT_TYPE.HIGHLIGHTED;
1594
1636
  var annotations = this.getAnnotationsFromObjects(objects);
1637
+ if (annotations.length > 0) annotations[0].coords = coords;
1595
1638
  this.publishChanges(annotations, eventType);
1596
1639
  }
1597
1640
 
1598
1641
  return changed;
1599
1642
  };
1600
1643
 
1601
- RendererModule.prototype.setHighlightedByZincObject = function (zincObject, propagateChanges) {
1602
- return this.setHighlightedByObjects([zincObject ? zincObject.morph : undefined], propagateChanges);
1644
+ RendererModule.prototype.setHighlightedByZincObject = function (zincObject, coords, propagateChanges) {
1645
+ return this.setHighlightedByObjects([zincObject ? zincObject.morph : undefined], coords, propagateChanges);
1603
1646
  };
1604
1647
 
1605
1648
  RendererModule.prototype.setupLiveCoordinates = function (zincObjects) {
@@ -1636,7 +1679,7 @@ RendererModule.prototype.objectsToZincObjects = function (objects) {
1636
1679
  return zincObjects;
1637
1680
  };
1638
1681
 
1639
- RendererModule.prototype.setSelectedByObjects = function (objects, propagateChanges) {
1682
+ RendererModule.prototype.setSelectedByObjects = function (objects, coords, propagateChanges) {
1640
1683
  var changed = this.graphicsHighlight.setSelected(objects);
1641
1684
 
1642
1685
  if (changed) {
@@ -1644,18 +1687,19 @@ RendererModule.prototype.setSelectedByObjects = function (objects, propagateChan
1644
1687
  this.setupLiveCoordinates(zincObjects);
1645
1688
 
1646
1689
  if (propagateChanges) {
1647
- var eventType = __webpack_require__("9b21").EVENT_TYPE.SELECTED;
1690
+ var _eventType = __webpack_require__("9b21").EVENT_TYPE.SELECTED;
1648
1691
 
1649
1692
  var annotations = this.getAnnotationsFromObjects(objects);
1650
- this.publishChanges(annotations, eventType);
1693
+ if (annotations.length > 0) annotations[0].coords = coords;
1694
+ this.publishChanges(annotations, _eventType);
1651
1695
  }
1652
1696
  }
1653
1697
 
1654
1698
  return changed;
1655
1699
  };
1656
1700
 
1657
- RendererModule.prototype.setSelectedByZincObject = function (zincObject, propagateChanges) {
1658
- return this.setSelectedByObjects([zincObject ? zincObject.morph : undefined], propagateChanges);
1701
+ RendererModule.prototype.setSelectedByZincObject = function (zincObject, coords, propagateChanges) {
1702
+ return this.setSelectedByObjects([zincObject ? zincObject.morph : undefined], coords, propagateChanges);
1659
1703
  };
1660
1704
 
1661
1705
  var addGlyphToArray = function addGlyphToArray(objects) {
@@ -1683,12 +1727,12 @@ RendererModule.prototype.findObjectsByGroupName = function (groupName) {
1683
1727
 
1684
1728
  RendererModule.prototype.setHighlightedByGroupName = function (groupName, propagateChanges) {
1685
1729
  var objects = this.findObjectsByGroupName(groupName);
1686
- return this.setHighlightedByObjects(objects, propagateChanges);
1730
+ return this.setHighlightedByObjects(objects, undefined, propagateChanges);
1687
1731
  };
1688
1732
 
1689
1733
  RendererModule.prototype.setSelectedByGroupName = function (groupName, propagateChanges) {
1690
1734
  var objects = this.findObjectsByGroupName(groupName);
1691
- return this.setSelectedByObjects(objects, propagateChanges);
1735
+ return this.setSelectedByObjects(objects, undefined, propagateChanges);
1692
1736
  };
1693
1737
 
1694
1738
  RendererModule.prototype.changeBackgroundColour = function (backgroundColourString) {
@@ -1799,6 +1843,17 @@ module.exports = require("core-js/modules/es.array.iterator");
1799
1843
 
1800
1844
  module.exports = require("element-ui/lib/theme-chalk/icon.css");
1801
1845
 
1846
+ /***/ }),
1847
+
1848
+ /***/ "8f55":
1849
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1850
+
1851
+ "use strict";
1852
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TreeControls_vue_vue_type_style_index_1_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("9372");
1853
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TreeControls_vue_vue_type_style_index_1_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TreeControls_vue_vue_type_style_index_1_lang_css___WEBPACK_IMPORTED_MODULE_0__);
1854
+ /* unused harmony reexport * */
1855
+
1856
+
1802
1857
  /***/ }),
1803
1858
 
1804
1859
  /***/ "907b":
@@ -1815,6 +1870,13 @@ module.exports = require("zincjs");
1815
1870
 
1816
1871
  /***/ }),
1817
1872
 
1873
+ /***/ "9372":
1874
+ /***/ (function(module, exports, __webpack_require__) {
1875
+
1876
+ // extracted by mini-css-extract-plugin
1877
+
1878
+ /***/ }),
1879
+
1818
1880
  /***/ "93e6":
1819
1881
  /***/ (function(module, exports) {
1820
1882
 
@@ -1862,7 +1924,8 @@ __webpack_require__("7c81");
1862
1924
  var EVENT_TYPE = {
1863
1925
  ALL: 0,
1864
1926
  SELECTED: 1,
1865
- HIGHLIGHTED: 2
1927
+ HIGHLIGHTED: 2,
1928
+ MOVE: 3
1866
1929
  };
1867
1930
 
1868
1931
  var SelectionEvent = function SelectionEvent(eventTypeIn, identifiersIn) {
@@ -1970,17 +2033,6 @@ module.exports = require("core-js/modules/es.array.includes");
1970
2033
 
1971
2034
  module.exports = require("element-ui/lib/loading");
1972
2035
 
1973
- /***/ }),
1974
-
1975
- /***/ "add8":
1976
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
1977
-
1978
- "use strict";
1979
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TraditionalControls_vue_vue_type_style_index_1_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("e8d1");
1980
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TraditionalControls_vue_vue_type_style_index_1_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TraditionalControls_vue_vue_type_style_index_1_lang_css___WEBPACK_IMPORTED_MODULE_0__);
1981
- /* unused harmony reexport * */
1982
-
1983
-
1984
2036
  /***/ }),
1985
2037
 
1986
2038
  /***/ "b0e3":
@@ -2030,17 +2082,6 @@ module.exports = require("core-js/modules/es.string.replace");
2030
2082
 
2031
2083
  module.exports = require("element-ui/lib/option");
2032
2084
 
2033
- /***/ }),
2034
-
2035
- /***/ "c5b3":
2036
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
2037
-
2038
- "use strict";
2039
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_0_id_02b8949c_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("3bde");
2040
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_0_id_02b8949c_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_0_id_02b8949c_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
2041
- /* unused harmony reexport * */
2042
-
2043
-
2044
2085
  /***/ }),
2045
2086
 
2046
2087
  /***/ "cf41":
@@ -2113,6 +2154,13 @@ exports.WEBGL = {
2113
2154
 
2114
2155
  /***/ }),
2115
2156
 
2157
+ /***/ "d0b9":
2158
+ /***/ (function(module, exports, __webpack_require__) {
2159
+
2160
+ // extracted by mini-css-extract-plugin
2161
+
2162
+ /***/ }),
2163
+
2116
2164
  /***/ "da60":
2117
2165
  /***/ (function(module, exports) {
2118
2166
 
@@ -2131,10 +2179,10 @@ module.exports = require("core-js/modules/es.array.from");
2131
2179
 
2132
2180
  /***/ }),
2133
2181
 
2134
- /***/ "e8d1":
2135
- /***/ (function(module, exports, __webpack_require__) {
2182
+ /***/ "f705":
2183
+ /***/ (function(module, exports) {
2136
2184
 
2137
- // extracted by mini-css-extract-plugin
2185
+ module.exports = require("core-js/modules/es.array.map");
2138
2186
 
2139
2187
  /***/ }),
2140
2188
 
@@ -2172,12 +2220,12 @@ if (typeof window !== 'undefined') {
2172
2220
  // Indicate to webpack that this file can be concatenated
2173
2221
  /* harmony default export */ var setPublicPath = (null);
2174
2222
 
2175
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"162c90a4-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ScaffoldVuer.vue?vue&type=template&id=02b8949c&scoped=true&
2176
- var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.loading),expression:"loading"}],ref:"scaffoldContainer",staticClass:"scaffold-container",attrs:{"element-loading-text":"Loading...","element-loading-spinner":"el-icon-loading","element-loading-background":"rgba(0, 0, 0, 0.3)"}},[_c('map-svg-sprite-color'),_c('div',{ref:"display",staticStyle:{"height":"100%","width":"100%"},attrs:{"id":"organsDisplayArea","tabindex":"-1"},on:{"keydown":function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==66){ return null; }return _vm.backgroundChangeCallback($event)}}}),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.displayUI && !_vm.isTransitioning),expression:"displayUI && !isTransitioning"}]},[(_vm.displayWarning)?_c('el-popover',{ref:"warningPopover",attrs:{"content":_vm.warningMessage,"placement":"right","append-to-body":false,"trigger":"manual","popper-class":"warning-popper right-popper non-selectable"},model:{value:(_vm.hoverVisabilities[6].value),callback:function ($$v) {_vm.$set(_vm.hoverVisabilities[6], "value", $$v)},expression:"hoverVisabilities[6].value"}}):_vm._e(),(_vm.displayWarning)?_c('i',{directives:[{name:"popover",rawName:"v-popover:warningPopover",arg:"warningPopover"}],staticClass:"el-icon-warning warning-icon",on:{"mouseover":function($event){return _vm.showToolitip(6)},"mouseout":function($event){return _vm.hideToolitip(6)}}},[_c('span',{staticClass:"warning-text"},[_vm._v("Beta")])]):_vm._e(),_c('el-popover',{ref:"checkBoxPopover",attrs:{"content":"Change region visibility","placement":"right","append-to-body":false,"trigger":"manual","popper-class":"scaffold-popper right-popper non-selectable"},model:{value:(_vm.hoverVisabilities[5].value),callback:function ($$v) {_vm.$set(_vm.hoverVisabilities[5], "value", $$v)},expression:"hoverVisabilities[5].value"}}),_c('TraditionalControls',{directives:[{name:"popover",rawName:"v-popover:checkBoxPopover",arg:"checkBoxPopover"}],ref:"traditionalControl",attrs:{"help-mode":_vm.helpMode,"module":_vm.$module,"show-colour-picker":_vm.showColourPicker},on:{"object-selected":_vm.objectSelected,"object-hovered":_vm.objectHovered,"drawer-toggled":_vm.drawerToggled}}),_c('div',{staticClass:"opacity-box"},[_c('OpacityControls',{ref:"opacityControl"})],1),(_vm.sceneData.timeVarying)?_c('el-popover',{ref:"sliderPopover",attrs:{"content":"Move the slider to animate the region","placement":"top","append-to-body":false,"trigger":"manual","popper-class":"scaffold-popper top-popper non-selectable"},model:{value:(_vm.hoverVisabilities[4].value),callback:function ($$v) {_vm.$set(_vm.hoverVisabilities[4], "value", $$v)},expression:"hoverVisabilities[4].value"}}):_vm._e(),(_vm.sceneData.timeVarying)?_c('div',{directives:[{name:"popover",rawName:"v-popover:sliderPopover",arg:"sliderPopover"}],staticClass:"time-slider-container",class:[ _vm.minimisedSlider ? 'minimised' : '', _vm.sliderPosition]},[_c('el-tabs',{attrs:{"type":"card"}},[_c('el-tab-pane',{attrs:{"label":"Animate scaffold"}},[_c('el-row',{staticClass:"tab-content"},[(_vm.isPlaying)?_c('map-svg-icon',{staticClass:"icon-button video-button",attrs:{"icon":"pause"},nativeOn:{"click":function($event){return _vm.play(false)}}}):_c('map-svg-icon',{staticClass:"video-button icon-button",attrs:{"icon":"play"},nativeOn:{"click":function($event){return _vm.play(true)}}}),_c('el-slider',{staticClass:"slider",attrs:{"min":0,"max":_vm.timeMax,"value":_vm.sceneData.currentTime / 100 * _vm.timeMax,"step":0.1,"tooltip-class":"time-slider-tooltip","format-tooltip":_vm.formatTooltip,"marks":_vm.timeStamps},on:{"input":function($event){return _vm.timeChange($event)}}})],1)],1),_c('el-tab-pane',{attrs:{"label":"Animation data"}},[_c('el-row',{staticClass:"tab-content"},[_c('div',{staticClass:"animation-data"},[_vm._v(" Original duration: "),_c('div',{staticClass:"purple"},[_vm._v(" "+_vm._s(_vm.orginalDuration)+" ")])]),_c('div',{staticClass:"animation-data"},[_vm._v(" Animation duration: "),_c('div',{staticClass:"purple"},[_vm._v(" "+_vm._s(_vm.animateDuration)+" ")])]),_c('div',{staticClass:"animation-data"},[_vm._v(" Playback speed "),_c('el-select',{staticClass:"select-box",attrs:{"popper-append-to-body":true,"value":_vm.currentSpeed,"placeholder":"Select","popper-class":"scaffold_viewer_dropdown"},on:{"change":function($event){return _vm.speedChanged($event)}}},_vm._l((_vm.playSpeed),function(item){return _c('el-option',{key:item.value,attrs:{"label":item.label,"value":item.value}})}),1)],1)])],1)],1)],1):_vm._e(),_c('div',{staticClass:"bottom-right-control"},[_c('el-popover',{attrs:{"content":"Zoom in","placement":"left","append-to-body":false,"trigger":"manual","popper-class":"scaffold-popper left-popper non-selectable"},model:{value:(_vm.hoverVisabilities[0].value),callback:function ($$v) {_vm.$set(_vm.hoverVisabilities[0], "value", $$v)},expression:"hoverVisabilities[0].value"}},[_c('map-svg-icon',{staticClass:"icon-button zoomIn",attrs:{"slot":"reference","icon":"zoomIn"},nativeOn:{"click":function($event){return _vm.zoomIn()},"mouseover":function($event){return _vm.showToolitip(0)},"mouseout":function($event){return _vm.hideToolitip(0)}},slot:"reference"})],1),_c('el-popover',{attrs:{"content":"Zoom out","placement":"top-end","append-to-body":false,"trigger":"manual","popper-class":"scaffold-popper popper-zoomout non-selectable"},model:{value:(_vm.hoverVisabilities[1].value),callback:function ($$v) {_vm.$set(_vm.hoverVisabilities[1], "value", $$v)},expression:"hoverVisabilities[1].value"}},[_c('map-svg-icon',{staticClass:"icon-button zoomOut",attrs:{"slot":"reference","icon":"zoomOut"},nativeOn:{"click":function($event){return _vm.zoomOut()},"mouseover":function($event){return _vm.showToolitip(1)},"mouseout":function($event){return _vm.hideToolitip(1)}},slot:"reference"})],1),_c('el-popover',{attrs:{"placement":"top","append-to-body":false,"trigger":"manual","popper-class":"scaffold-popper non-selectable"},model:{value:(_vm.hoverVisabilities[2].value),callback:function ($$v) {_vm.$set(_vm.hoverVisabilities[2], "value", $$v)},expression:"hoverVisabilities[2].value"}},[_c('div',[_vm._v(" Fit to "),_c('br'),_vm._v(" window ")]),_c('map-svg-icon',{staticClass:"icon-button fitWindow",attrs:{"slot":"reference","icon":"fitWindow"},nativeOn:{"click":function($event){return _vm.fitWindow()},"mouseover":function($event){return _vm.showToolitip(2)},"mouseout":function($event){return _vm.hideToolitip(2)}},slot:"reference"})],1)],1),_c('el-popover',{ref:"backgroundPopover",attrs:{"placement":"top-start","width":"128","append-to-body":false,"trigger":"click","popper-class":"background-popper non-selectable"}},[_c('el-row',{staticClass:"backgroundText"},[_vm._v(" Change background ")]),_c('el-row',{staticClass:"backgroundChooser"},_vm._l((_vm.availableBackground),function(item){return _c('div',{key:item,class:['backgroundChoice', item, item == _vm.currentBackground ? 'active' :''],on:{"click":function($event){return _vm.backgroundChangeCallback(item)}}})}),0)],1),_c('el-popover',{attrs:{"content":"Change background color","placement":"right","append-to-body":false,"trigger":"manual","popper-class":"scaffold-popper right-popper non-selectable"},model:{value:(_vm.hoverVisabilities[3].value),callback:function ($$v) {_vm.$set(_vm.hoverVisabilities[3], "value", $$v)},expression:"hoverVisabilities[3].value"}},[_c('map-svg-icon',{directives:[{name:"popover",rawName:"v-popover:backgroundPopover",arg:"backgroundPopover"}],staticClass:"icon-button background-colour",class:{ open: _vm.drawerOpen, close: !_vm.drawerOpen },attrs:{"slot":"reference","icon":"changeBckgd"},nativeOn:{"mouseover":function($event){return _vm.showToolitip(3)},"mouseout":function($event){return _vm.hideToolitip(3)}},slot:"reference"})],1)],1)],1)}
2223
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0dd1e61a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ScaffoldVuer.vue?vue&type=template&id=8761aa48&scoped=true&
2224
+ var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.loading),expression:"loading"}],ref:"scaffoldContainer",staticClass:"scaffold-container",attrs:{"element-loading-text":"Loading...","element-loading-spinner":"el-icon-loading","element-loading-background":"rgba(0, 0, 0, 0.3)"}},[_c('map-svg-sprite-color'),_c('scaffold-tooltip',{attrs:{"label":_vm.tData.label,"visible":_vm.tData.visible,"x":_vm.tData.x,"y":_vm.tData.y}}),_c('div',{ref:"display",staticStyle:{"height":"100%","width":"100%"},attrs:{"id":"organsDisplayArea","tabindex":"-1"},on:{"keydown":function($event){if(!$event.type.indexOf('key')&&$event.keyCode!==66){ return null; }return _vm.backgroundChangeCallback($event)}}}),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.displayUI && !_vm.isTransitioning),expression:"displayUI && !isTransitioning"}]},[(_vm.displayWarning)?_c('el-popover',{ref:"warningPopover",attrs:{"content":_vm.warningMessage,"placement":"right","append-to-body":false,"trigger":"manual","popper-class":"warning-popper right-popper non-selectable"},model:{value:(_vm.hoverVisabilities[6].value),callback:function ($$v) {_vm.$set(_vm.hoverVisabilities[6], "value", $$v)},expression:"hoverVisabilities[6].value"}}):_vm._e(),(_vm.displayWarning)?_c('i',{directives:[{name:"popover",rawName:"v-popover:warningPopover",arg:"warningPopover"}],staticClass:"el-icon-warning warning-icon",on:{"mouseover":function($event){return _vm.showToolitip(6)},"mouseout":function($event){return _vm.hideToolitip(6)}}},[_c('span',{staticClass:"warning-text"},[_vm._v("Beta")])]):_vm._e(),_c('el-popover',{ref:"checkBoxPopover",attrs:{"content":"Change region visibility","placement":"right","append-to-body":false,"trigger":"manual","popper-class":"scaffold-popper right-popper non-selectable"},model:{value:(_vm.hoverVisabilities[5].value),callback:function ($$v) {_vm.$set(_vm.hoverVisabilities[5], "value", $$v)},expression:"hoverVisabilities[5].value"}}),_c('tree-controls',{directives:[{name:"popover",rawName:"v-popover:checkBoxPopover",arg:"checkBoxPopover"}],ref:"treeControl",attrs:{"help-mode":_vm.helpMode,"module":_vm.$module,"show-colour-picker":_vm.showColourPicker},on:{"object-selected":_vm.objectSelected,"object-hovered":_vm.objectHovered,"drawer-toggled":_vm.drawerToggled}}),_c('div',{staticClass:"opacity-box"},[_c('opacity-controls',{ref:"opacityControl"})],1),(_vm.sceneData.timeVarying)?_c('el-popover',{ref:"sliderPopover",attrs:{"content":"Move the slider to animate the region","placement":"top","append-to-body":false,"trigger":"manual","popper-class":"scaffold-popper top-popper non-selectable"},model:{value:(_vm.hoverVisabilities[4].value),callback:function ($$v) {_vm.$set(_vm.hoverVisabilities[4], "value", $$v)},expression:"hoverVisabilities[4].value"}}):_vm._e(),(_vm.sceneData.timeVarying)?_c('div',{directives:[{name:"popover",rawName:"v-popover:sliderPopover",arg:"sliderPopover"}],staticClass:"time-slider-container",class:[ _vm.minimisedSlider ? 'minimised' : '', _vm.sliderPosition]},[_c('el-tabs',{attrs:{"type":"card"}},[_c('el-tab-pane',{attrs:{"label":"Animate scaffold"}},[_c('el-row',{staticClass:"tab-content"},[(_vm.isPlaying)?_c('map-svg-icon',{staticClass:"icon-button video-button",attrs:{"icon":"pause"},nativeOn:{"click":function($event){return _vm.play(false)}}}):_c('map-svg-icon',{staticClass:"video-button icon-button",attrs:{"icon":"play"},nativeOn:{"click":function($event){return _vm.play(true)}}}),_c('el-slider',{staticClass:"slider",attrs:{"min":0,"max":_vm.timeMax,"value":_vm.sceneData.currentTime / 100 * _vm.timeMax,"step":0.1,"tooltip-class":"time-slider-tooltip","format-tooltip":_vm.formatTooltip,"marks":_vm.timeStamps},on:{"input":function($event){return _vm.timeChange($event)}}})],1)],1),_c('el-tab-pane',{attrs:{"label":"Animation data"}},[_c('el-row',{staticClass:"tab-content"},[_c('div',{staticClass:"animation-data"},[_vm._v(" Original duration: "),_c('div',{staticClass:"purple"},[_vm._v(" "+_vm._s(_vm.orginalDuration)+" ")])]),_c('div',{staticClass:"animation-data"},[_vm._v(" Animation duration: "),_c('div',{staticClass:"purple"},[_vm._v(" "+_vm._s(_vm.animateDuration)+" ")])]),_c('div',{staticClass:"animation-data"},[_vm._v(" Playback speed "),_c('el-select',{staticClass:"select-box",attrs:{"popper-append-to-body":true,"value":_vm.currentSpeed,"placeholder":"Select","popper-class":"scaffold_viewer_dropdown"},on:{"change":function($event){return _vm.speedChanged($event)}}},_vm._l((_vm.playSpeed),function(item){return _c('el-option',{key:item.value,attrs:{"label":item.label,"value":item.value}})}),1)],1)])],1)],1)],1):_vm._e(),_c('div',{staticClass:"bottom-right-control"},[_c('el-popover',{attrs:{"content":"Zoom in","placement":"left","append-to-body":false,"trigger":"manual","popper-class":"scaffold-popper left-popper non-selectable"},model:{value:(_vm.hoverVisabilities[0].value),callback:function ($$v) {_vm.$set(_vm.hoverVisabilities[0], "value", $$v)},expression:"hoverVisabilities[0].value"}},[_c('map-svg-icon',{staticClass:"icon-button zoomIn",attrs:{"slot":"reference","icon":"zoomIn"},nativeOn:{"click":function($event){return _vm.zoomIn()},"mouseover":function($event){return _vm.showToolitip(0)},"mouseout":function($event){return _vm.hideToolitip(0)}},slot:"reference"})],1),_c('el-popover',{attrs:{"content":"Zoom out","placement":"top-end","append-to-body":false,"trigger":"manual","popper-class":"scaffold-popper popper-zoomout non-selectable"},model:{value:(_vm.hoverVisabilities[1].value),callback:function ($$v) {_vm.$set(_vm.hoverVisabilities[1], "value", $$v)},expression:"hoverVisabilities[1].value"}},[_c('map-svg-icon',{staticClass:"icon-button zoomOut",attrs:{"slot":"reference","icon":"zoomOut"},nativeOn:{"click":function($event){return _vm.zoomOut()},"mouseover":function($event){return _vm.showToolitip(1)},"mouseout":function($event){return _vm.hideToolitip(1)}},slot:"reference"})],1),_c('el-popover',{attrs:{"placement":"top","append-to-body":false,"trigger":"manual","popper-class":"scaffold-popper non-selectable"},model:{value:(_vm.hoverVisabilities[2].value),callback:function ($$v) {_vm.$set(_vm.hoverVisabilities[2], "value", $$v)},expression:"hoverVisabilities[2].value"}},[_c('div',[_vm._v(" Fit to "),_c('br'),_vm._v(" window ")]),_c('map-svg-icon',{staticClass:"icon-button fitWindow",attrs:{"slot":"reference","icon":"fitWindow"},nativeOn:{"click":function($event){return _vm.fitWindow()},"mouseover":function($event){return _vm.showToolitip(2)},"mouseout":function($event){return _vm.hideToolitip(2)}},slot:"reference"})],1)],1),_c('el-popover',{ref:"backgroundPopover",attrs:{"placement":"top-start","width":"128","append-to-body":false,"trigger":"click","popper-class":"background-popper non-selectable"}},[_c('el-row',{staticClass:"backgroundText"},[_vm._v(" Change background ")]),_c('el-row',{staticClass:"backgroundChooser"},_vm._l((_vm.availableBackground),function(item){return _c('div',{key:item,class:['backgroundChoice', item, item == _vm.currentBackground ? 'active' :''],on:{"click":function($event){return _vm.backgroundChangeCallback(item)}}})}),0)],1),_c('el-popover',{attrs:{"content":"Change background color","placement":"right","append-to-body":false,"trigger":"manual","popper-class":"scaffold-popper right-popper non-selectable"},model:{value:(_vm.hoverVisabilities[3].value),callback:function ($$v) {_vm.$set(_vm.hoverVisabilities[3], "value", $$v)},expression:"hoverVisabilities[3].value"}},[_c('map-svg-icon',{directives:[{name:"popover",rawName:"v-popover:backgroundPopover",arg:"backgroundPopover"}],staticClass:"icon-button background-colour",class:{ open: _vm.drawerOpen, close: !_vm.drawerOpen },attrs:{"slot":"reference","icon":"changeBckgd"},nativeOn:{"mouseover":function($event){return _vm.showToolitip(3)},"mouseout":function($event){return _vm.hideToolitip(3)}},slot:"reference"})],1)],1)],1)}
2177
2225
  var staticRenderFns = []
2178
2226
 
2179
2227
 
2180
- // CONCATENATED MODULE: ./src/components/ScaffoldVuer.vue?vue&type=template&id=02b8949c&scoped=true&
2228
+ // CONCATENATED MODULE: ./src/components/ScaffoldVuer.vue?vue&type=template&id=8761aa48&scoped=true&
2181
2229
 
2182
2230
  // EXTERNAL MODULE: external "core-js/modules/es.array.for-each"
2183
2231
  var es_array_for_each_ = __webpack_require__("139f");
@@ -2276,7 +2324,7 @@ var col_default = /*#__PURE__*/__webpack_require__.n(col_);
2276
2324
  var external_vue_ = __webpack_require__("8bbf");
2277
2325
  var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);
2278
2326
 
2279
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"162c90a4-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/OpacityControls.vue?vue&type=template&id=4c00a30f&scoped=true&
2327
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0dd1e61a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/OpacityControls.vue?vue&type=template&id=4c00a30f&scoped=true&
2280
2328
  var OpacityControlsvue_type_template_id_4c00a30f_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.material!=undefined)?_c('div',{ref:"control",staticClass:"opacity-control"},[_c('el-drawer',{staticClass:"drawer-content",attrs:{"custom-class":"my-drawer","visible":_vm.drawerOpen,"append-to-body":false,"modal-append-to-body":false,"size":"300","with-header":false,"wrapper-closable":false,"modal":false},on:{"update:visible":function($event){_vm.drawerOpen=$event}}},[(_vm.drawerOpen)?_c('div',{staticClass:"tab-button close",on:{"click":_vm.toggleDrawer}},[_c('i',{staticClass:"el-icon-arrow-right"})]):_vm._e(),_c('el-container',{staticClass:"opacity-container"},[_c('el-header',{staticClass:"header",attrs:{"height":"37px"}},[_c('div',[_vm._v("Opacity")])]),_c('el-main',{staticClass:"main"},[_c('div',{staticClass:"block"},[_c('span',{staticClass:"display"},[_vm._v(_vm._s(_vm.displayString))]),_c('el-slider',{staticClass:"my-slider",attrs:{"step":0.01,"min":0,"max":1,"format-tooltip":_vm.formatTooltip,"show-tooltip":false},model:{value:(_vm.material.opacity),callback:function ($$v) {_vm.$set(_vm.material, "opacity", $$v)},expression:"material.opacity"}})],1)])],1)],1),(!_vm.drawerOpen)?_c('div',{staticClass:"tab-button open",on:{"click":_vm.toggleDrawer}},[_c('i',{staticClass:"el-icon-arrow-left"})]):_vm._e()],1):_vm._e()}
2281
2329
  var OpacityControlsvue_type_template_id_4c00a30f_scoped_true_staticRenderFns = []
2282
2330
 
@@ -2577,25 +2625,149 @@ var component = normalizeComponent(
2577
2625
  )
2578
2626
 
2579
2627
  /* harmony default export */ var OpacityControls = (component.exports);
2580
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"162c90a4-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/TraditionalControls.vue?vue&type=template&id=335c5764&scoped=true&
2581
- var TraditionalControlsvue_type_template_id_335c5764_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"traditional-location",class:{ open: _vm.drawerOpen, close: !_vm.drawerOpen }},[_c('div',{staticClass:"traditional-container"},[_c('el-row',[_c('el-col',{attrs:{"span":12}},[_c('div',{staticClass:"regions-display-text"},[_vm._v(" Regions ")])]),_c('el-col',{attrs:{"span":12}},[_c('el-checkbox',{staticClass:"all-checkbox",attrs:{"indeterminate":_vm.isIndeterminate},on:{"change":_vm.handleCheckAllChange},model:{value:(_vm.checkAll),callback:function ($$v) {_vm.checkAll=$$v},expression:"checkAll"}},[_vm._v(" Display all ")])],1)],1),_c('el-checkbox-group',{staticClass:"checkbox-group",attrs:{"size":"small"},on:{"change":_vm.handleCheckedItemsChange},model:{value:(_vm.checkedItems),callback:function ($$v) {_vm.checkedItems=$$v},expression:"checkedItems"}},[_c('div',{staticClass:"checkbox-group-inner"},_vm._l((_vm.sortedPrimitiveGroups),function(item){return _c('el-row',{key:item,attrs:{"label":item}},[_c('div',{staticClass:"checkbox-container"},[_c('el-checkbox',{staticClass:"my-checkbox",class:{ activeItem: _vm.activeRegion === item,
2582
- hoverItem: _vm.hoverRegion === item },attrs:{"label":item,"checked":true},on:{"change":function($event){return _vm.visibilityToggle(item, $event)}},nativeOn:{"click":function($event){return _vm.itemClicked(item, $event)},"mouseover":function($event){return _vm.checkboxHover(item)}}},[_c('el-color-picker',{class:{ 'show-picker' : _vm.showColourPicker },attrs:{"value":_vm.getColour(item),"size":"small","popper-class":_vm.myPopperClass},on:{"change":function($event){return _vm.setColour(item, $event)}}}),_vm._v(" "+_vm._s(item)+" ")],1)],1)])}),1)])],1),_c('div',{staticClass:"drawer-button",class:{ open: _vm.drawerOpen, close: !_vm.drawerOpen },on:{"click":_vm.toggleDrawer}},[_c('i',{staticClass:"el-icon-arrow-left"})])])}
2583
- var TraditionalControlsvue_type_template_id_335c5764_scoped_true_staticRenderFns = []
2628
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0dd1e61a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ScaffoldTooltip.vue?vue&type=template&id=2ff3bbca&scoped=true&
2629
+ var ScaffoldTooltipvue_type_template_id_2ff3bbca_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"tooltipContainer",style:(_vm.position)},[_c('el-popover',{ref:"tooltip",attrs:{"placement":"top","append-to-body":false,"trigger":"manual","popper-class":"tooltip-popper non-selectable"},model:{value:(_vm.display),callback:function ($$v) {_vm.display=$$v},expression:"display"}},[_c('div',[_vm._v(_vm._s(_vm.label))]),_c('i',{directives:[{name:"popover",rawName:"v-popover:tooltip",arg:"tooltip"}]})])],1)}
2630
+ var ScaffoldTooltipvue_type_template_id_2ff3bbca_scoped_true_staticRenderFns = []
2631
+
2632
+
2633
+ // CONCATENATED MODULE: ./src/components/ScaffoldTooltip.vue?vue&type=template&id=2ff3bbca&scoped=true&
2634
+
2635
+ // EXTERNAL MODULE: external "core-js/modules/es.number.constructor"
2636
+ var es_number_constructor_ = __webpack_require__("6faa");
2637
+
2638
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ScaffoldTooltip.vue?vue&type=script&lang=js&
2639
+
2640
+
2641
+
2642
+
2643
+ //
2644
+ //
2645
+ //
2646
+ //
2647
+ //
2648
+ //
2649
+ //
2650
+ //
2651
+ //
2652
+ //
2653
+ //
2654
+ //
2655
+ //
2656
+ //
2657
+ //
2658
+ //
2659
+
2660
+ /* eslint-disable no-alert, no-console */
2661
+
2662
+
2663
+
2664
+ locale_default.a.use(en_default.a);
2665
+ external_vue_default.a.use(popover_default.a);
2666
+ /**
2667
+ * A component to control the opacity of the target object.
2668
+ */
2669
+
2670
+ /* harmony default export */ var ScaffoldTooltipvue_type_script_lang_js_ = ({
2671
+ name: "ScaffoldTooltip",
2672
+ props: {
2673
+ label: {
2674
+ type: String,
2675
+ default: ""
2676
+ },
2677
+ visible: {
2678
+ type: Boolean,
2679
+ default: false
2680
+ },
2681
+ x: {
2682
+ type: Number,
2683
+ default: 200
2684
+ },
2685
+ y: {
2686
+ type: Number,
2687
+ default: 200
2688
+ }
2689
+ },
2690
+ data: function data() {
2691
+ return {
2692
+ display: false
2693
+ };
2694
+ },
2695
+ computed: {
2696
+ position: function position() {
2697
+ return {
2698
+ left: this.x + "px",
2699
+ top: this.y - 30 + "px"
2700
+ };
2701
+ }
2702
+ },
2703
+ watch: {
2704
+ label: {
2705
+ handler: function handler() {
2706
+ if (this.visible && this.label && this.label !== "") this.display = true;else this.display = false;
2707
+ },
2708
+ immediate: true
2709
+ },
2710
+ visible: {
2711
+ handler: function handler() {
2712
+ if (this.visible && this.label && this.label !== "") this.display = true;else this.display = false;
2713
+ },
2714
+ immediate: true
2715
+ }
2716
+ }
2717
+ });
2718
+ // CONCATENATED MODULE: ./src/components/ScaffoldTooltip.vue?vue&type=script&lang=js&
2719
+ /* harmony default export */ var components_ScaffoldTooltipvue_type_script_lang_js_ = (ScaffoldTooltipvue_type_script_lang_js_);
2720
+ // EXTERNAL MODULE: ./src/components/ScaffoldTooltip.vue?vue&type=style&index=0&id=2ff3bbca&scoped=true&lang=scss&
2721
+ var ScaffoldTooltipvue_type_style_index_0_id_2ff3bbca_scoped_true_lang_scss_ = __webpack_require__("6e86");
2722
+
2723
+ // CONCATENATED MODULE: ./src/components/ScaffoldTooltip.vue
2724
+
2725
+
2584
2726
 
2585
2727
 
2586
- // CONCATENATED MODULE: ./src/components/TraditionalControls.vue?vue&type=template&id=335c5764&scoped=true&
2587
2728
 
2588
- // EXTERNAL MODULE: external "core-js/modules/es.array.concat"
2589
- var es_array_concat_ = __webpack_require__("18d2");
2729
+
2730
+ /* normalize component */
2731
+
2732
+ var ScaffoldTooltip_component = normalizeComponent(
2733
+ components_ScaffoldTooltipvue_type_script_lang_js_,
2734
+ ScaffoldTooltipvue_type_template_id_2ff3bbca_scoped_true_render,
2735
+ ScaffoldTooltipvue_type_template_id_2ff3bbca_scoped_true_staticRenderFns,
2736
+ false,
2737
+ null,
2738
+ "2ff3bbca",
2739
+ null
2740
+
2741
+ )
2742
+
2743
+ /* harmony default export */ var ScaffoldTooltip = (ScaffoldTooltip_component.exports);
2744
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0dd1e61a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/TreeControls.vue?vue&type=template&id=4d20ec9a&scoped=true&
2745
+ var TreeControlsvue_type_template_id_4d20ec9a_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"tree-controls",class:{ open: _vm.drawerOpen, close: !_vm.drawerOpen }},[_c('div',{staticClass:"traditional-container"},[_c('el-row',[_c('el-col',{attrs:{"span":12}},[_c('div',{staticClass:"regions-display-text"},[_vm._v(" Regions ")])])],1),_c('div',{staticClass:"tree-container"},[_c('el-tree',{ref:"regionTree",attrs:{"default-expand-all":"","node-key":"id","show-checkbox":"","check-strictly":true,"data":_vm.treeData,"default-checked-keys":['__r/'],"expand-on-click-node":false},on:{"check":_vm.checkChanged},scopedSlots:_vm._u([{key:"default",fn:function(ref){
2746
+ var node = ref.node;
2747
+ var data = ref.data;
2748
+ return _c('span',{staticClass:"region-tree-node",class:{
2749
+ activeItem:
2750
+ (_vm.active.group === data.label &&
2751
+ ((_vm.active.regionPath === data.regionPath) ||
2752
+ _vm.active.regionPath === undefined)),
2753
+ hoverItem:
2754
+ (_vm.hover.group === data.label &&
2755
+ ((_vm.hover.regionPath === data.regionPath) ||
2756
+ _vm.hover.regionPath === undefined))
2757
+ },on:{"click":function($event){return _vm.changeActiveByNode(data, true)},"mouseover":function($event){return _vm.changeHoverByNode(data, true)}}},[(data.primitives)?_c('el-color-picker',{class:{ 'show-picker': _vm.showColourPicker },attrs:{"value":_vm.getColour(data),"size":"small","popper-class":_vm.myPopperClass},on:{"change":function($event){return _vm.setColour(data, $event)}}}):_vm._e(),_c('span',[_vm._v(_vm._s(node.label))])],1)}}])})],1)],1),_c('div',{staticClass:"drawer-button",class:{ open: _vm.drawerOpen, close: !_vm.drawerOpen },on:{"click":_vm.toggleDrawer}},[_c('i',{staticClass:"el-icon-arrow-left"})])])}
2758
+ var TreeControlsvue_type_template_id_4d20ec9a_scoped_true_staticRenderFns = []
2759
+
2760
+
2761
+ // CONCATENATED MODULE: ./src/components/TreeControls.vue?vue&type=template&id=4d20ec9a&scoped=true&
2762
+
2763
+ // EXTERNAL MODULE: external "core-js/modules/es.array.find"
2764
+ var es_array_find_ = __webpack_require__("fe0e");
2590
2765
 
2591
2766
  // EXTERNAL MODULE: external "core-js/modules/es.array.includes"
2592
2767
  var es_array_includes_ = __webpack_require__("ab7e");
2593
2768
 
2594
- // EXTERNAL MODULE: external "core-js/modules/es.array.index-of"
2595
- var es_array_index_of_ = __webpack_require__("6bb1");
2596
-
2597
- // EXTERNAL MODULE: external "core-js/modules/es.array.splice"
2598
- var es_array_splice_ = __webpack_require__("7c81");
2769
+ // EXTERNAL MODULE: external "core-js/modules/es.array.map"
2770
+ var es_array_map_ = __webpack_require__("f705");
2599
2771
 
2600
2772
  // EXTERNAL MODULE: external "core-js/modules/es.regexp.exec"
2601
2773
  var es_regexp_exec_ = __webpack_require__("51f7");
@@ -2682,6 +2854,13 @@ function _nonIterableSpread() {
2682
2854
  function _toConsumableArray(arr) {
2683
2855
  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
2684
2856
  }
2857
+ // EXTERNAL MODULE: external "element-ui/lib/theme-chalk/tree.css"
2858
+ var tree_css_ = __webpack_require__("49d0");
2859
+
2860
+ // EXTERNAL MODULE: external "element-ui/lib/tree"
2861
+ var tree_ = __webpack_require__("0fec");
2862
+ var tree_default = /*#__PURE__*/__webpack_require__.n(tree_);
2863
+
2685
2864
  // EXTERNAL MODULE: external "element-ui/lib/theme-chalk/color-picker.css"
2686
2865
  var color_picker_css_ = __webpack_require__("3666");
2687
2866
 
@@ -2703,7 +2882,11 @@ var checkbox_css_ = __webpack_require__("55ee");
2703
2882
  var checkbox_ = __webpack_require__("b777");
2704
2883
  var checkbox_default = /*#__PURE__*/__webpack_require__.n(checkbox_);
2705
2884
 
2706
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/TraditionalControls.vue?vue&type=script&lang=js&
2885
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/TreeControls.vue?vue&type=script&lang=js&
2886
+
2887
+
2888
+
2889
+
2707
2890
 
2708
2891
 
2709
2892
 
@@ -2724,12 +2907,6 @@ var checkbox_default = /*#__PURE__*/__webpack_require__.n(checkbox_);
2724
2907
 
2725
2908
 
2726
2909
 
2727
- //
2728
- //
2729
- //
2730
- //
2731
- //
2732
- //
2733
2910
  //
2734
2911
  //
2735
2912
  //
@@ -2809,12 +2986,36 @@ external_vue_default.a.use(checkbox_default.a);
2809
2986
  external_vue_default.a.use(checkbox_group_default.a);
2810
2987
  external_vue_default.a.use(color_picker_default.a);
2811
2988
  external_vue_default.a.use(row_default.a);
2989
+ external_vue_default.a.use(tree_default.a);
2990
+
2991
+ var nameSorting = function nameSorting(a, b) {
2992
+ var labelA = a.label.toUpperCase();
2993
+ var labelB = b.label.toUpperCase();
2994
+
2995
+ if (labelA < labelB) {
2996
+ return -1;
2997
+ }
2998
+
2999
+ if (labelA > labelB) {
3000
+ return 1;
3001
+ }
3002
+
3003
+ return 0;
3004
+ };
3005
+
3006
+ var extractAllIds = function extractAllIds(item, list) {
3007
+ list.push(item.id);
3008
+ if (item.children) item.children.forEach(function (child) {
3009
+ return extractAllIds(child, list);
3010
+ });
3011
+ };
2812
3012
  /**
2813
3013
  * A vue component for toggling visibility of various regions.
2814
3014
  */
2815
3015
 
2816
- /* harmony default export */ var TraditionalControlsvue_type_script_lang_js_ = ({
2817
- name: "TraditionalControls",
3016
+
3017
+ /* harmony default export */ var TreeControlsvue_type_script_lang_js_ = ({
3018
+ name: "TreeControls",
2818
3019
  props: {
2819
3020
  /**
2820
3021
  * @ignore
@@ -2831,12 +3032,19 @@ external_vue_default.a.use(row_default.a);
2831
3032
  },
2832
3033
  data: function data() {
2833
3034
  return {
2834
- checkAll: true,
2835
- isIndeterminate: false,
2836
- checkedItems: [],
2837
- sortedPrimitiveGroups: [],
2838
- activeRegion: "",
2839
- hoverRegion: "",
3035
+ treeData: [{
3036
+ label: "Root",
3037
+ id: "__r/",
3038
+ children: []
3039
+ }],
3040
+ active: {
3041
+ group: "",
3042
+ regionPath: undefined
3043
+ },
3044
+ hover: {
3045
+ group: "",
3046
+ regionPath: undefined
3047
+ },
2840
3048
  myPopperClass: "hide-scaffold-colour-popup",
2841
3049
  drawerOpen: true
2842
3050
  };
@@ -2850,68 +3058,179 @@ external_vue_default.a.use(row_default.a);
2850
3058
  }
2851
3059
  },
2852
3060
  created: function created() {
2853
- var tmpArray = this.module.sceneData.geometries.concat(this.module.sceneData.lines);
2854
- tmpArray = tmpArray.concat(this.module.sceneData.glyphsets);
2855
- tmpArray = uniq(tmpArray.concat(this.module.sceneData.pointset));
2856
- this.sortedPrimitiveGroups = orderBy(tmpArray);
3061
+ var _this = this;
3062
+
3063
+ this.module.sceneData.geometries.forEach(function (zincObject) {
3064
+ _this.organsAdded(zincObject);
3065
+ });
3066
+ this.module.sceneData.lines.forEach(function (zincObject) {
3067
+ _this.organsAdded(zincObject);
3068
+ });
3069
+ this.module.sceneData.glyphsets.forEach(function (zincObject) {
3070
+ _this.organsAdded(zincObject);
3071
+ });
3072
+ this.module.sceneData.pointsets.forEach(function (zincObject) {
3073
+ _this.organsAdded(zincObject);
3074
+ });
2857
3075
  this.module.addOrganPartAddedCallback(this.organsAdded);
3076
+ this.__nodeNumbers = 1;
2858
3077
  },
2859
3078
  destroyed: function destroyed() {
2860
3079
  this.sortedPrimitiveGroups = undefined;
2861
3080
  },
2862
3081
  methods: {
2863
- /**
2864
- * This is called when a new organ is read into the scene.
2865
- */
2866
- organsAdded: function organsAdded(name) {
2867
- if (name && name != "") {
2868
- var tmpArray = uniq(this.sortedPrimitiveGroups.concat([name]));
2869
- tmpArray = orderBy(tmpArray);
2870
- var index = tmpArray.indexOf(undefined);
2871
-
2872
- if (index > -1) {
2873
- tmpArray.splice(index, 1);
3082
+ addTreeItem: function addTreeItem(parentContainer, item) {
3083
+ var _this2 = this;
3084
+
3085
+ for (var i = 0; i < parentContainer.length; i++) {
3086
+ if (parentContainer[i].id === item.id) {
3087
+ if (item.primitives && parentContainer[i].primitives) {
3088
+ var _parentContainer$i$pr;
3089
+
3090
+ (_parentContainer$i$pr = parentContainer[i].primitives).push.apply(_parentContainer$i$pr, _toConsumableArray(item.primitives));
3091
+
3092
+ return;
3093
+ }
2874
3094
  }
3095
+ }
2875
3096
 
2876
- this.sortedPrimitiveGroups = tmpArray;
3097
+ parentContainer.push(item);
3098
+ parentContainer.sort(function (a, b) {
3099
+ return nameSorting(a, b);
3100
+ });
3101
+ this.__nodeNumbers++;
3102
+ this.$nextTick(function () {
3103
+ _this2.$refs.regionTree.setChecked(item.id, true);
3104
+ });
3105
+ },
3106
+ // find or create new region, region id is always prefixed with
3107
+ // '__r/'
3108
+ findOrCreateRegion: function findOrCreateRegion(data, paths, prefix) {
3109
+ //check if root region has been set
3110
+ if (!this.treeData[0].region && this.module && this.module.scene) {
3111
+ this.treeData[0].region = this.module.scene.getRootRegion();
3112
+ }
3113
+
3114
+ if (paths.length > 0) {
3115
+ var _paths = _toConsumableArray(paths);
3116
+
3117
+ var childRegion = data.children.find(function (child) {
3118
+ return child.label == _paths[0];
3119
+ });
3120
+ var path = prefix + "/" + paths[0];
3121
+ var id = "__r" + path;
3122
+
3123
+ if (!childRegion) {
3124
+ var region = this.treeData[0].region.findChildFromPath(path);
3125
+ childRegion = {
3126
+ label: _paths[0],
3127
+ id: id,
3128
+ children: [],
3129
+ region: region
3130
+ };
3131
+ this.addTreeItem(data.children, childRegion);
3132
+ }
3133
+
3134
+ _paths.shift();
3135
+
3136
+ return this.findOrCreateRegion(childRegion, _paths, path);
3137
+ } else {
3138
+ return data;
2877
3139
  }
2878
3140
  },
2879
3141
 
2880
3142
  /**
2881
- * Select a region by its name.
3143
+ * This is called when a new organ is read into the scene.
2882
3144
  */
2883
- changeActiveByName: function changeActiveByName(name, propagate) {
2884
- var targetObject = this.getFirstZincObjectWithGroupName(name);
3145
+ organsAdded: function organsAdded(zincObject) {
3146
+ var region = zincObject.region;
3147
+
3148
+ if (region) {
3149
+ var paths = region.getFullSeparatedPath();
3150
+ var regionData = this.findOrCreateRegion(this.treeData[0], paths, "");
3151
+
3152
+ if (zincObject.groupName) {
3153
+ if (regionData) {
3154
+ if (!regionData.children) {
3155
+ regionData.children = [];
3156
+ }
2885
3157
 
2886
- if (targetObject && targetObject.getVisibility()) {
2887
- this.activeRegion = name;
2888
- this.$emit("object-selected", targetObject, propagate);
3158
+ var id = regionData.id.replace("__r/", "") + "/" + zincObject.groupName;
3159
+ var child = {
3160
+ label: zincObject.groupName,
3161
+ id: id,
3162
+ primitives: [zincObject],
3163
+ regionPath: zincObject.region.getFullPath()
3164
+ };
3165
+ this.addTreeItem(regionData.children, child);
3166
+ }
3167
+ }
3168
+ }
3169
+ },
3170
+ checkChanged: function checkChanged(node, data) {
3171
+ var checked = data.checkedKeys.includes(node.id);
3172
+ if (node.region) node.region.setVisibility(checked);
3173
+
3174
+ if (node.primitives) {
3175
+ node.primitives.forEach(function (primitive) {
3176
+ primitive.setVisibility(checked);
3177
+ });
3178
+ }
3179
+ },
3180
+ changeActiveByPrimitive: function changeActiveByPrimitive(primitive, propagate) {
3181
+ if (primitive && primitive.getVisibility()) {
3182
+ this.active.group = primitive.groupName;
3183
+ this.active.regionPath = primitive.region.getFullPath();
3184
+ console.log(this.active);
3185
+ this.$emit("object-selected", primitive, propagate);
2889
3186
  } else {
2890
3187
  this.removeActive(propagate);
2891
3188
  }
2892
3189
 
2893
3190
  this.removeHover(propagate);
2894
3191
  },
3192
+ changeHoverByPrimitive: function changeHoverByPrimitive(primitive, propagate) {
3193
+ if (primitive) {
3194
+ this.hover.group = primitive.groupName;
3195
+ this.hover.regionPath = primitive.region.getFullPath();
3196
+ this.$emit("object-hovered", primitive, propagate);
3197
+ } else {
3198
+ this.removeHover(propagate);
3199
+ }
3200
+ },
2895
3201
 
2896
3202
  /**
2897
- * Hover a region by its name.
3203
+ * Select a region by its name.
2898
3204
  */
2899
- changeHoverByName: function changeHoverByName(name, propagate) {
2900
- var targetObject = this.getFirstZincObjectWithGroupName(name);
3205
+ changeActiveByName: function changeActiveByName(name, regionPath, propagate) {
3206
+ var rootRegion = this.module.scene.getRootRegion();
3207
+ var targetRegion = rootRegion.findChildFromPath(regionPath);
3208
+ var targetObject = this.getFirstZincObjectWithGroupName(targetRegion, name);
3209
+ this.changeActiveByPrimitive(targetObject, propagate);
3210
+ },
2901
3211
 
2902
- if (targetObject) {
2903
- this.hoverRegion = name;
2904
- this.$emit("object-hovered", targetObject, propagate);
2905
- } else {
2906
- this.removeHover(propagate);
2907
- }
3212
+ /**
3213
+ * Hover a region by its name.
3214
+ */
3215
+ changeHoverByName: function changeHoverByName(name, regionPath, propagate) {
3216
+ var rootRegion = this.module.scene.getRootRegion();
3217
+ var targetRegion = rootRegion.findChildFromPath(regionPath);
3218
+ var targetObject = this.getFirstZincObjectWithGroupName(targetRegion, name);
3219
+ this.changeHoverByPrimitive(targetObject, propagate);
3220
+ },
3221
+ changeActiveByNode: function changeActiveByNode(node, propagate) {
3222
+ if (node.primitives) this.changeActiveByPrimitive(node.primitives[0], propagate);
3223
+ },
3224
+ changeHoverByNode: function changeHoverByNode(node, propagate) {
3225
+ if (node.primitives) this.changeHoverByPrimitive(node.primitives[0], propagate);
2908
3226
  },
2909
3227
 
2910
3228
  /**
2911
3229
  * Unselect the current selected region.
2912
3230
  */
2913
3231
  removeActive: function removeActive(propagate) {
2914
- this.activeRegion = "";
3232
+ this.active.group = "";
3233
+ this.active.regionPath = undefined;
2915
3234
  this.$emit("object-selected", undefined, propagate);
2916
3235
  },
2917
3236
 
@@ -2919,7 +3238,8 @@ external_vue_default.a.use(row_default.a);
2919
3238
  * Unselect the current hover region.
2920
3239
  */
2921
3240
  removeHover: function removeHover(propagate) {
2922
- this.hoverRegion = "";
3241
+ this.hover.group = "";
3242
+ this.hover.regionPath = undefined;
2923
3243
  this.$emit("object-hovered", undefined, propagate);
2924
3244
  },
2925
3245
 
@@ -2927,68 +3247,47 @@ external_vue_default.a.use(row_default.a);
2927
3247
  * Reset the controls.
2928
3248
  */
2929
3249
  clear: function clear() {
2930
- this.sortedPrimitiveGroups = [];
2931
- this.checkedItems = [];
2932
- this.checkAll = true;
2933
- this.isIndeterminate = false;
2934
- this.activeRegion = "";
2935
- this.hoverRegion = "";
3250
+ this.active.group = "";
3251
+ this.active.regionPath = undefined;
3252
+ this.hover.group = "";
3253
+ this.hover.regionPath = undefined;
3254
+ this.$refs.regionTree.updateKeyChildren("__r/", []);
2936
3255
  this.$emit("object-selected", undefined);
2937
3256
  },
2938
- getFirstZincObjectWithGroupName: function getFirstZincObjectWithGroupName(name) {
2939
- if (this.module && this.module.scene) {
2940
- var array = this.module.scene.findGeometriesWithGroupName(name);
3257
+ getFirstZincObjectWithGroupName: function getFirstZincObjectWithGroupName(region, name) {
3258
+ if (region) {
3259
+ var array = region.findGeometriesWithGroupName(name);
2941
3260
  if (array.length > 0) return array[0];
2942
- array = this.module.scene.findGlyphsetsWithGroupName(name);
3261
+ array = region.findGlyphsetsWithGroupName(name);
2943
3262
  if (array.length > 0) return array[0];
2944
- array = this.module.scene.findLinesWithGroupName(name);
3263
+ array = region.findLinesWithGroupName(name);
2945
3264
  if (array.length > 0) return array[0];
2946
- array = this.module.scene.findPointsetsWithGroupName(name);
3265
+ array = region.findPointsetsWithGroupName(name);
2947
3266
  if (array.length > 0) return array[0];
2948
3267
  }
2949
3268
 
2950
3269
  return undefined;
2951
3270
  },
2952
- getColour: function getColour(name) {
2953
- var graphic = this.getFirstZincObjectWithGroupName(name);
3271
+ getColour: function getColour(nodeData) {
3272
+ if (nodeData) {
3273
+ var graphic = nodeData.primitives[0];
2954
3274
 
2955
- if (graphic) {
2956
- var hex = graphic.getColourHex();
2957
- if (hex) return "#" + hex;
3275
+ if (graphic) {
3276
+ var hex = graphic.getColourHex();
3277
+ if (hex) return "#" + hex;
3278
+ }
2958
3279
  }
2959
3280
 
2960
3281
  return "#FFFFFF";
2961
3282
  },
2962
- setColour: function setColour(name, value) {
2963
- var graphic = this.getFirstZincObjectWithGroupName(name);
3283
+ setColour: function setColour(nodeData, value) {
3284
+ if (nodeData) {
3285
+ var graphic = nodeData.primitives[0];
2964
3286
 
2965
- if (graphic) {
2966
- var hexString = value.replace("#", "0x");
2967
- graphic.setColourHex(hexString);
2968
- }
2969
- },
2970
- checkboxHover: function checkboxHover(name) {
2971
- this.changeHoverByName(name, true);
2972
- },
2973
- itemClicked: function itemClicked(name, event) {
2974
- if (!(event.target.classList.contains("el-checkbox__inner") || event.target.classList.contains("el-checkbox__original"))) {
2975
- this.changeActiveByName(name, true);
2976
- event.preventDefault();
2977
- }
2978
- },
2979
- handleCheckedItemsChange: function handleCheckedItemsChange() {
2980
- var unnamed = this.checkedItems.includes(undefined) ? true : false;
2981
- var checkedCount = this.checkedItems.length;
2982
- if (unnamed) checkedCount--;
2983
- this.checkAll = checkedCount === this.sortedPrimitiveGroups.length;
2984
- this.isIndeterminate = checkedCount > 0 && checkedCount < this.sortedPrimitiveGroups.length;
2985
- },
2986
- handleCheckAllChange: function handleCheckAllChange(val) {
2987
- this.checkedItems = val ? _toConsumableArray(this.sortedPrimitiveGroups) : [];
2988
- this.isIndeterminate = false;
2989
-
2990
- for (var i = 0; i < this.sortedPrimitiveGroups.length; i++) {
2991
- this.visibilityToggle(this.sortedPrimitiveGroups[i], this.checkAll);
3287
+ if (graphic) {
3288
+ var hexString = value.replace("#", "0x");
3289
+ graphic.setColourHex(hexString);
3290
+ }
2992
3291
  }
2993
3292
  },
2994
3293
  viewAll: function viewAll() {
@@ -3011,56 +3310,70 @@ external_vue_default.a.use(row_default.a);
3011
3310
  this.drawerOpen = !this.drawerOpen;
3012
3311
  this.$emit("drawer-toggled", this.drawerOpen);
3013
3312
  },
3014
- getState: function getState() {
3015
- if (this.checkAll) {
3016
- return {
3017
- checkAll: true
3018
- };
3019
- }
3020
-
3021
- var checkedItems = _toConsumableArray(this.checkedItems);
3022
-
3023
- var index = checkedItems.indexOf(undefined);
3024
-
3025
- if (index > -1) {
3026
- checkedItems.splice(index, 1);
3027
- }
3313
+ setTreeVisibility: function setTreeVisibility(node, list) {
3314
+ var _this3 = this;
3028
3315
 
3316
+ var flag = false;
3317
+ if (list.includes(node.id)) flag = true;
3318
+ if (node.region) node.region.setVisibility(flag);
3319
+ if (node.primitives) node.primitives.forEach(function (primitive) {
3320
+ return primitive.setVisibility(flag);
3321
+ });
3322
+ if (node.children) node.children.forEach(function (child) {
3323
+ return _this3.setTreeVisibility(child, list);
3324
+ });
3325
+ },
3326
+ checkAllKeys: function checkAllKeys() {
3327
+ var keysList = [];
3328
+ extractAllIds(this.treeData[0], keysList);
3329
+ this.setTreeVisibility(this.treeData[0], keysList);
3330
+ this.$refs.regionTree.setCheckedKeys(keysList);
3331
+ },
3332
+ getState: function getState() {
3333
+ var checkedItems = this.$refs.regionTree.getCheckedKeys();
3334
+ if (checkedItems.length === this.__nodeNumbers) return {
3335
+ checkAll: true,
3336
+ version: "2.0"
3337
+ };
3029
3338
  return {
3030
- checkedItems: checkedItems
3339
+ checkedItems: checkedItems,
3340
+ version: "2.0"
3031
3341
  };
3032
3342
  },
3033
3343
  setState: function setState(state) {
3034
3344
  if (state) {
3035
3345
  if (state.checkAll) {
3036
- this.checkedItems = _toConsumableArray(this.sortedPrimitiveGroups);
3037
-
3038
- for (var i = 0; i < this.sortedPrimitiveGroups.length; i++) {
3039
- this.module.changeOrganPartsVisibility(this.sortedPrimitiveGroups[i], true);
3040
- }
3346
+ this.checkAllKeys();
3041
3347
  } else if (state.checkedItems) {
3042
- this.checkedItems = _toConsumableArray(state.checkedItems);
3348
+ var list = [];
3043
3349
 
3044
- for (var _i = 0; _i < this.sortedPrimitiveGroups.length; _i++) {
3045
- var visible = this.checkedItems.includes(this.sortedPrimitiveGroups[_i]);
3046
- this.module.changeOrganPartsVisibility(this.sortedPrimitiveGroups[_i], visible);
3350
+ if (state.version !== "2.0") {
3351
+ list = state.checkedItems.map(function (item) {
3352
+ return "/" + item;
3353
+ });
3354
+ list.shift("__r/");
3355
+ } else {
3356
+ var _list;
3357
+
3358
+ (_list = list).push.apply(_list, _toConsumableArray(state.checkedItems));
3047
3359
  }
3360
+
3361
+ this.setTreeVisibility(this.treeData[0], list);
3362
+ this.$refs.regionTree.setCheckedKeys(list);
3048
3363
  }
3049
3364
  }
3050
-
3051
- this.handleCheckedItemsChange();
3052
3365
  }
3053
3366
  }
3054
3367
  });
3055
- // CONCATENATED MODULE: ./src/components/TraditionalControls.vue?vue&type=script&lang=js&
3056
- /* harmony default export */ var components_TraditionalControlsvue_type_script_lang_js_ = (TraditionalControlsvue_type_script_lang_js_);
3057
- // EXTERNAL MODULE: ./src/components/TraditionalControls.vue?vue&type=style&index=0&id=335c5764&scoped=true&lang=scss&
3058
- var TraditionalControlsvue_type_style_index_0_id_335c5764_scoped_true_lang_scss_ = __webpack_require__("3a59");
3368
+ // CONCATENATED MODULE: ./src/components/TreeControls.vue?vue&type=script&lang=js&
3369
+ /* harmony default export */ var components_TreeControlsvue_type_script_lang_js_ = (TreeControlsvue_type_script_lang_js_);
3370
+ // EXTERNAL MODULE: ./src/components/TreeControls.vue?vue&type=style&index=0&id=4d20ec9a&scoped=true&lang=scss&
3371
+ var TreeControlsvue_type_style_index_0_id_4d20ec9a_scoped_true_lang_scss_ = __webpack_require__("47d7");
3059
3372
 
3060
- // EXTERNAL MODULE: ./src/components/TraditionalControls.vue?vue&type=style&index=1&lang=css&
3061
- var TraditionalControlsvue_type_style_index_1_lang_css_ = __webpack_require__("add8");
3373
+ // EXTERNAL MODULE: ./src/components/TreeControls.vue?vue&type=style&index=1&lang=css&
3374
+ var TreeControlsvue_type_style_index_1_lang_css_ = __webpack_require__("8f55");
3062
3375
 
3063
- // CONCATENATED MODULE: ./src/components/TraditionalControls.vue
3376
+ // CONCATENATED MODULE: ./src/components/TreeControls.vue
3064
3377
 
3065
3378
 
3066
3379
 
@@ -3070,18 +3383,18 @@ var TraditionalControlsvue_type_style_index_1_lang_css_ = __webpack_require__("a
3070
3383
 
3071
3384
  /* normalize component */
3072
3385
 
3073
- var TraditionalControls_component = normalizeComponent(
3074
- components_TraditionalControlsvue_type_script_lang_js_,
3075
- TraditionalControlsvue_type_template_id_335c5764_scoped_true_render,
3076
- TraditionalControlsvue_type_template_id_335c5764_scoped_true_staticRenderFns,
3386
+ var TreeControls_component = normalizeComponent(
3387
+ components_TreeControlsvue_type_script_lang_js_,
3388
+ TreeControlsvue_type_template_id_4d20ec9a_scoped_true_render,
3389
+ TreeControlsvue_type_template_id_4d20ec9a_scoped_true_staticRenderFns,
3077
3390
  false,
3078
3391
  null,
3079
- "335c5764",
3392
+ "4d20ec9a",
3080
3393
  null
3081
3394
 
3082
3395
  )
3083
3396
 
3084
- /* harmony default export */ var TraditionalControls = (TraditionalControls_component.exports);
3397
+ /* harmony default export */ var TreeControls = (TreeControls_component.exports);
3085
3398
  // EXTERNAL MODULE: external "@abi-software/svg-sprite"
3086
3399
  var svg_sprite_ = __webpack_require__("429c");
3087
3400
 
@@ -3360,6 +3673,12 @@ var svg_sprite_ = __webpack_require__("429c");
3360
3673
  //
3361
3674
  //
3362
3675
  //
3676
+ //
3677
+ //
3678
+ //
3679
+ //
3680
+ //
3681
+ //
3363
3682
 
3364
3683
  /* eslint-disable no-alert, no-console */
3365
3684
 
@@ -3368,6 +3687,7 @@ var svg_sprite_ = __webpack_require__("429c");
3368
3687
 
3369
3688
 
3370
3689
 
3690
+
3371
3691
  locale_default.a.use(en_default.a);
3372
3692
  external_vue_default.a.use(col_default.a);
3373
3693
  external_vue_default.a.use(loading_default.a.directive);
@@ -3386,17 +3706,18 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
3386
3706
  * A vue component of the scaffold viewer.
3387
3707
  *
3388
3708
  * @requires ./OpacityControls.vue
3389
- * @requires ./TraditionalControls.vue
3709
+ * @requires ./TreeControls.vue
3390
3710
  */
3391
3711
 
3392
3712
 
3393
3713
  /* harmony default export */ var ScaffoldVuervue_type_script_lang_js_ = ({
3394
3714
  name: "ScaffoldVuer",
3395
3715
  components: {
3396
- OpacityControls: OpacityControls,
3397
3716
  MapSvgIcon: svg_sprite_["MapSvgIcon"],
3398
3717
  MapSvgSpriteColor: svg_sprite_["MapSvgSpriteColor"],
3399
- TraditionalControls: TraditionalControls
3718
+ OpacityControls: OpacityControls,
3719
+ ScaffoldTooltip: ScaffoldTooltip,
3720
+ TreeControls: TreeControls
3400
3721
  },
3401
3722
  props: {
3402
3723
  /**
@@ -3584,7 +3905,14 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
3584
3905
  label: "10x"
3585
3906
  }],
3586
3907
  currentSpeed: 1,
3587
- timeStamps: {}
3908
+ timeStamps: {},
3909
+ defaultCheckedKeys: [],
3910
+ tData: {
3911
+ label: "",
3912
+ visible: false,
3913
+ x: 200,
3914
+ y: 200
3915
+ }
3588
3916
  };
3589
3917
  },
3590
3918
  watch: {
@@ -3790,7 +4118,11 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
3790
4118
  var box = this.$module.scene.getBoundingBoxOfZincObjects(objects);
3791
4119
 
3792
4120
  if (box) {
3793
- this.$module.scene.viewAllWithBoundingBox(box);
4121
+ if (this.$module.isSyncControl()) {
4122
+ this.$module.setSyncControlZoomToBox(box);
4123
+ } else {
4124
+ this.$module.scene.viewAllWithBoundingBox(box);
4125
+ }
3794
4126
  }
3795
4127
  }
3796
4128
  },
@@ -3847,40 +4179,52 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
3847
4179
  */
3848
4180
  eventNotifierCallback: function eventNotifierCallback(event) {
3849
4181
  if (event.eventType == 1) {
3850
- if (this.$refs.traditionalControl) {
4182
+ if (this.$refs.treeControl) {
3851
4183
  if (event.identifiers[0]) {
3852
4184
  var id = event.identifiers[0].data.id ? event.identifiers[0].data.id : event.identifiers[0].data.group;
3853
- this.$refs.traditionalControl.changeActiveByName(id, true);
4185
+ var region = event.identifiers[0].data.region;
4186
+ this.$refs.treeControl.changeActiveByName(id, region, true);
3854
4187
  } else {
3855
- this.$refs.traditionalControl.removeActive(true);
4188
+ this.$refs.treeControl.removeActive(true);
3856
4189
  }
3857
- }
3858
- /**
3859
- * Triggers when an object has been selected
3860
- *
3861
- * @property {array} identifiers array of identifiers
3862
- * of selected object.
3863
- */
4190
+ } // Triggers when an object has been selected
3864
4191
 
3865
4192
 
3866
4193
  this.$emit("scaffold-selected", event.identifiers);
3867
4194
  } else if (event.eventType == 2) {
3868
- if (this.$refs.traditionalControl) {
3869
- if (event.identifiers[0]) {
3870
- var _id = event.identifiers[0].data.id ? event.identifiers[0].data.id : event.identifiers[0].data.group;
4195
+ this.tData.visible = false;
4196
+ var offsets = this.$refs.scaffoldContainer.getBoundingClientRect();
3871
4197
 
3872
- this.$refs.traditionalControl.changeHoverByName(_id, true);
3873
- } else this.$refs.traditionalControl.removeHover(true);
3874
- }
3875
- /**
3876
- * Triggers when an object has been highlighted
3877
- *
3878
- * @property {array} identifiers array of identifiers
3879
- * of highlighted object.
3880
- */
4198
+ if (event.identifiers[0]) {
4199
+ var _id = event.identifiers[0].data.id ? event.identifiers[0].data.id : event.identifiers[0].data.group;
4200
+
4201
+ if (event.identifiers[0].coords) {
4202
+ this.tData.visible = true;
4203
+ this.tData.label = _id;
4204
+ this.tData.x = event.identifiers[0].coords.x - offsets.left;
4205
+ this.tData.y = event.identifiers[0].coords.y - offsets.top;
4206
+ }
4207
+
4208
+ if (this.$refs.treeControl) {
4209
+ var _region = event.identifiers[0].data.region;
4210
+ this.$refs.treeControl.changeHoverByName(_id, _region, true);
4211
+ } else {
4212
+ this.$refs.treeControl.removeHover(true);
4213
+ }
4214
+ } // Triggers when an object has been highlighted
3881
4215
 
3882
4216
 
3883
4217
  this.$emit("scaffold-highlighted", event.identifiers);
4218
+ } else if (event.eventType == 3) {
4219
+ //MOVE
4220
+ if (event.identifiers[0]) {
4221
+ if (event.identifiers[0].coords) {
4222
+ var _offsets = this.$refs.scaffoldContainer.getBoundingClientRect();
4223
+
4224
+ this.tData.x = event.identifiers[0].coords.x - _offsets.left;
4225
+ this.tData.y = event.identifiers[0].coords.y - _offsets.top;
4226
+ }
4227
+ }
3884
4228
  }
3885
4229
  },
3886
4230
 
@@ -3925,7 +4269,7 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
3925
4269
  if (object !== this.selectedObject) {
3926
4270
  this.selectedObject = object;
3927
4271
  this.$refs.opacityControl.setObject(this.selectedObject);
3928
- if (object) this.$module.setSelectedByZincObject(object, propagate);else this.$module.setSelectedByObjects([], propagate);
4272
+ if (object) this.$module.setSelectedByZincObject(object, undefined, propagate);else this.$module.setSelectedByObjects([], undefined, propagate);
3929
4273
  }
3930
4274
  },
3931
4275
 
@@ -3937,26 +4281,26 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
3937
4281
  objectHovered: function objectHovered(object, propagate) {
3938
4282
  if (object !== this.hoveredObject) {
3939
4283
  this.hoveredObject = object;
3940
- if (object) this.$module.setHighlightedByZincObject(object, propagate);else this.$module.setHighlightedByObjects([], propagate);
4284
+ if (object) this.$module.setHighlightedByZincObject(object, undefined, propagate);else this.$module.setHighlightedByObjects([], undefined, propagate);
3941
4285
  }
3942
4286
  },
3943
4287
 
3944
4288
  /**
3945
4289
  * Set the selected by name.
3946
4290
  *
3947
- * @param {name} name Name of the region
4291
+ * @param {name} name Name of the group
3948
4292
  */
3949
- changeActiveByName: function changeActiveByName(name, propagate) {
3950
- if (name === undefined) this.$refs.traditionalControl.removeActive(propagate);else this.$refs.traditionalControl.changeActiveByName(name, propagate);
4293
+ changeActiveByName: function changeActiveByName(name, region, propagate) {
4294
+ if (name === undefined) this.$refs.treeControl.removeActive(propagate);else this.$refs.treeControl.changeActiveByName(name, region, propagate);
3951
4295
  },
3952
4296
 
3953
4297
  /**
3954
4298
  * Set the highlighted by name.
3955
4299
  *
3956
- * @param {name} name Name of the region
4300
+ * @param {name} name Name of the group
3957
4301
  */
3958
- changeHighlightedByName: function changeHighlightedByName(name, propagate) {
3959
- if (name === undefined) this.$refs.traditionalControl.removeHover(propagate);else this.$refs.traditionalControl.changeHoverByName(name, propagate);
4302
+ changeHighlightedByName: function changeHighlightedByName(name, region, propagate) {
4303
+ if (name === undefined) this.$refs.treeControl.removeHover(propagate);else this.$refs.treeControl.changeHoverByName(name, region, propagate);
3960
4304
  },
3961
4305
 
3962
4306
  /**
@@ -4054,7 +4398,7 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
4054
4398
  if (options.visibility) {
4055
4399
  // Some UIs may not be ready at this time.
4056
4400
  _this3.$nextTick(function () {
4057
- _this3.$refs.traditionalControl.setState(options.visibility);
4401
+ _this3.$refs.treeControl.setState(options.visibility);
4058
4402
  });
4059
4403
  }
4060
4404
  }
@@ -4067,6 +4411,8 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
4067
4411
 
4068
4412
  _this3.$module.unsetFinishDownloadCallback();
4069
4413
 
4414
+ _this3.$emit("on-ready");
4415
+
4070
4416
  _this3.isReady = true;
4071
4417
  };
4072
4418
  },
@@ -4083,7 +4429,7 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
4083
4429
  viewport: undefined,
4084
4430
  visibility: undefined
4085
4431
  };
4086
- if (this.$refs.traditionalControl) state.visibility = this.$refs.traditionalControl.getState();
4432
+ if (this.$refs.treeControl) state.visibility = this.$refs.treeControl.getState();
4087
4433
 
4088
4434
  if (this.$module.scene) {
4089
4435
  var zincCameraControls = this.$module.scene.getZincCameraControls();
@@ -4110,7 +4456,7 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
4110
4456
  if (state.viewport || state.visibility) {
4111
4457
  if (this.isReady && this.$module.scene) {
4112
4458
  if (state.viewport) this.$module.scene.getZincCameraControls().setCurrentCameraSettings(state.viewport);
4113
- if (state.visibility) this.$refs.traditionalControl.setState(state.visibility);
4459
+ if (state.visibility) this.$refs.treeControl.setState(state.visibility);
4114
4460
  } else {
4115
4461
  this.$module.setFinishDownloadCallback(this.setURLFinishCallback({
4116
4462
  viewport: state.viewport,
@@ -4137,7 +4483,7 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
4137
4483
  var viewport = state && state.viewport ? state.viewport : undefined;
4138
4484
  var visibility = state && state.visibility ? state.visibility : undefined;
4139
4485
  this._currentURL = newValue;
4140
- if (this.$refs.traditionalControl) this.$refs.traditionalControl.clear();
4486
+ if (this.$refs.treeControl) this.$refs.treeControl.clear();
4141
4487
  this.loading = true;
4142
4488
  this.isReady = false;
4143
4489
  this.$module.setFinishDownloadCallback(this.setURLFinishCallback({
@@ -4211,8 +4557,8 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
4211
4557
  });
4212
4558
  // CONCATENATED MODULE: ./src/components/ScaffoldVuer.vue?vue&type=script&lang=js&
4213
4559
  /* harmony default export */ var components_ScaffoldVuervue_type_script_lang_js_ = (ScaffoldVuervue_type_script_lang_js_);
4214
- // EXTERNAL MODULE: ./src/components/ScaffoldVuer.vue?vue&type=style&index=0&id=02b8949c&scoped=true&lang=scss&
4215
- var ScaffoldVuervue_type_style_index_0_id_02b8949c_scoped_true_lang_scss_ = __webpack_require__("c5b3");
4560
+ // EXTERNAL MODULE: ./src/components/ScaffoldVuer.vue?vue&type=style&index=0&id=8761aa48&scoped=true&lang=scss&
4561
+ var ScaffoldVuervue_type_style_index_0_id_8761aa48_scoped_true_lang_scss_ = __webpack_require__("3816");
4216
4562
 
4217
4563
  // EXTERNAL MODULE: ./src/components/ScaffoldVuer.vue?vue&type=style&index=1&lang=scss&
4218
4564
  var ScaffoldVuervue_type_style_index_1_lang_scss_ = __webpack_require__("642d");
@@ -4233,7 +4579,7 @@ var ScaffoldVuer_component = normalizeComponent(
4233
4579
  staticRenderFns,
4234
4580
  false,
4235
4581
  null,
4236
- "02b8949c",
4582
+ "8761aa48",
4237
4583
  null
4238
4584
 
4239
4585
  )
@@ -4263,6 +4609,13 @@ module.exports = require("core-js/modules/es.string.includes");
4263
4609
 
4264
4610
  module.exports = require("element-ui/lib/theme-chalk/row.css");
4265
4611
 
4612
+ /***/ }),
4613
+
4614
+ /***/ "fe0e":
4615
+ /***/ (function(module, exports) {
4616
+
4617
+ module.exports = require("core-js/modules/es.array.find");
4618
+
4266
4619
  /***/ })
4267
4620
 
4268
4621
  /******/ });