@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.
@@ -133,6 +133,13 @@ module.exports = require("element-ui/lib/theme-chalk/select.css");
133
133
 
134
134
  /***/ }),
135
135
 
136
+ /***/ "0fec":
137
+ /***/ (function(module, exports) {
138
+
139
+ module.exports = require("element-ui/lib/tree");
140
+
141
+ /***/ }),
142
+
136
143
  /***/ "11b0":
137
144
  /***/ (function(module, exports, __webpack_require__) {
138
145
 
@@ -167,17 +174,17 @@ module.exports = require("core-js/modules/es.array.for-each");
167
174
 
168
175
  /***/ }),
169
176
 
170
- /***/ "18d2":
177
+ /***/ "1ac9":
171
178
  /***/ (function(module, exports) {
172
179
 
173
- module.exports = require("core-js/modules/es.array.concat");
180
+ module.exports = require("element-ui/lib/container");
174
181
 
175
182
  /***/ }),
176
183
 
177
- /***/ "1ac9":
178
- /***/ (function(module, exports) {
184
+ /***/ "1b02":
185
+ /***/ (function(module, exports, __webpack_require__) {
179
186
 
180
- module.exports = require("element-ui/lib/container");
187
+ // extracted by mini-css-extract-plugin
181
188
 
182
189
  /***/ }),
183
190
 
@@ -282,22 +289,15 @@ module.exports = require("element-ui/lib/drawer");
282
289
 
283
290
  /***/ }),
284
291
 
285
- /***/ "3a59":
292
+ /***/ "3816":
286
293
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
287
294
 
288
295
  "use strict";
289
- /* 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");
290
- /* 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__);
296
+ /* 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");
297
+ /* 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__);
291
298
  /* unused harmony reexport * */
292
299
 
293
300
 
294
- /***/ }),
295
-
296
- /***/ "3bde":
297
- /***/ (function(module, exports, __webpack_require__) {
298
-
299
- // extracted by mini-css-extract-plugin
300
-
301
301
  /***/ }),
302
302
 
303
303
  /***/ "429c":
@@ -326,10 +326,14 @@ module.exports = _toConsumableArray;
326
326
 
327
327
  /***/ }),
328
328
 
329
- /***/ "4646":
330
- /***/ (function(module, exports, __webpack_require__) {
329
+ /***/ "47d7":
330
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
331
+
332
+ "use strict";
333
+ /* 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");
334
+ /* 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__);
335
+ /* unused harmony reexport * */
331
336
 
332
- // extracted by mini-css-extract-plugin
333
337
 
334
338
  /***/ }),
335
339
 
@@ -340,6 +344,13 @@ module.exports = require("element-ui/lib/color-picker");
340
344
 
341
345
  /***/ }),
342
346
 
347
+ /***/ "49d0":
348
+ /***/ (function(module, exports) {
349
+
350
+ module.exports = require("element-ui/lib/theme-chalk/tree.css");
351
+
352
+ /***/ }),
353
+
343
354
  /***/ "4c89":
344
355
  /***/ (function(module, exports) {
345
356
 
@@ -378,16 +389,12 @@ module.exports = require("core-js/modules/es.regexp.exec");
378
389
  /***/ "53d7":
379
390
  /***/ (function(module, exports, __webpack_require__) {
380
391
 
381
- __webpack_require__("ab7e");
382
-
383
392
  __webpack_require__("7c81");
384
393
 
385
394
  __webpack_require__("bcd8");
386
395
 
387
396
  __webpack_require__("2175");
388
397
 
389
- __webpack_require__("fd48");
390
-
391
398
  var _typeof = __webpack_require__("7037");
392
399
 
393
400
  var THREE = __webpack_require__("9206").THREE; // Current model's associate data, data fields, external link, nerve map
@@ -489,7 +496,18 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
489
496
  cameraControl.resetView();
490
497
  _this2.NDCCameraControl = cameraControl.enableSyncControl();
491
498
  } else {
492
- _this2.NDCCameraControl = cameraControl.disableSyncControl();
499
+ cameraControl.disableSyncControl();
500
+ _this2.NDCCameraControl = undefined;
501
+ }
502
+ };
503
+
504
+ this.isSyncControl = function () {
505
+ return _this2.NDCCameraControl !== undefined;
506
+ };
507
+
508
+ this.setSyncControlZoomToBox = function (box) {
509
+ if (_this2.NDCCameraControl) {
510
+ _this2.NDCCameraControl.zoomToBox(box, 2);
493
511
  }
494
512
  };
495
513
 
@@ -613,17 +631,21 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
613
631
  var intersected = _this.getIntersectedObject(intersects);
614
632
 
615
633
  var idObject = getIdObjectFromIntersect(intersected);
634
+ var coords = {
635
+ x: window_x,
636
+ y: window_y
637
+ };
616
638
 
617
639
  if (idObject.id) {
618
640
  if (idObject.object.userData.isGlyph) {
619
- if (idObject.object.name) _this.setSelectedByObjects([idObject.object], true);else _this.setSelectedByZincObject(idObject.object.userData.getGlyphset(), true);
641
+ if (idObject.object.name) _this.setSelectedByObjects([idObject.object], coords, true);else _this.setSelectedByZincObject(idObject.object.userData.getGlyphset(), coords, true);
620
642
  } else {
621
- _this.setSelectedByObjects([idObject.object], true);
643
+ _this.setSelectedByObjects([idObject.object], coords, true);
622
644
  }
623
645
 
624
646
  return;
625
647
  } else {
626
- _this.setSelectedByObjects([], true);
648
+ _this.setSelectedByObjects([], coords, true);
627
649
  }
628
650
  };
629
651
  };
@@ -639,17 +661,21 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
639
661
  var intersected = _this.getIntersectedObject(intersects);
640
662
 
641
663
  var idObject = getIdObjectFromIntersect(intersected);
664
+ var coords = {
665
+ x: window_x,
666
+ y: window_y
667
+ };
642
668
 
643
669
  if (idObject.id) {
644
670
  _this.displayArea.style.cursor = "pointer";
645
671
 
646
- _this.setHighlightedByObjects([idObject.object], true);
672
+ _this.setHighlightedByObjects([idObject.object], coords, true);
647
673
 
648
674
  return;
649
675
  } else {
650
676
  _this.displayArea.style.cursor = "auto";
651
677
 
652
- _this.setHighlightedByObjects([], true);
678
+ _this.setHighlightedByObjects([], coords, true);
653
679
  }
654
680
  };
655
681
  };
@@ -752,42 +778,34 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
752
778
  };
753
779
 
754
780
  var addOrganPartToSceneData = function addOrganPartToSceneData(zincObject) {
755
- if (zincObject.groupName) {
756
- if (zincObject.isGeometry) {
757
- if (!_this.sceneData.geometries.includes(zincObject.groupName)) {
758
- _this.sceneData.geometries.push(zincObject.groupName);
759
- }
760
- } else if (zincObject.isGlyphset) {
761
- if (!_this.sceneData.glyphsets.includes(zincObject.groupName)) {
762
- _this.sceneData.glyphsets.push(zincObject.groupName);
763
- }
764
- } else if (zincObject.isLines) {
765
- if (!_this.sceneData.lines.includes(zincObject.groupName)) {
766
- _this.sceneData.lines.push(zincObject.groupName);
767
- }
768
- } else if (zincObject.isPointset) {
769
- if (!_this.sceneData.pointsets.includes(zincObject.groupName)) {
770
- _this.sceneData.pointsets.push(zincObject.groupName);
771
- }
772
- }
781
+ if (zincObject.isGeometry) {
782
+ _this.sceneData.geometries.push(zincObject);
783
+ } else if (zincObject.isGlyphset) {
784
+ _this.sceneData.glyphsets.push(zincObject);
785
+ } else if (zincObject.isLines) {
786
+ _this.sceneData.lines.push(zincObject);
787
+ } else if (zincObject.isPointset) {
788
+ _this.sceneData.pointsets.push(zincObject);
773
789
  }
774
790
  };
775
791
 
776
792
  var addOrganPart = function addOrganPart(systemName, partName, useDefautColour, zincObject) {
777
793
  for (var i = 0; i < organPartAddedCallbacks.length; i++) {
778
- organPartAddedCallbacks[i](zincObject.groupName, _this.scene.isTimeVarying(), zincObject);
794
+ organPartAddedCallbacks[i](zincObject, _this.scene.isTimeVarying());
779
795
  }
780
796
 
781
797
  if (useDefautColour) modelsLoader.setGeometryColour(zincObject, systemName, partName);
782
798
  addOrganPartToSceneData(zincObject);
783
799
  var annotation = new (__webpack_require__("984d").annotation)();
800
+ var region = zincObject.region.getFullPath();
784
801
  annotation.data = {
785
802
  species: _this.sceneData.currentSpecies,
786
803
  system: systemName,
787
804
  part: partName,
788
- group: zincObject.groupName
805
+ group: zincObject.groupName,
806
+ region: region
789
807
  };
790
- zincObject.userData = [annotation];
808
+ zincObject.userData["annotation"] = annotation;
791
809
  };
792
810
  /**
793
811
  * New organs geometry has been added to the scene, add UIs and make
@@ -1210,6 +1228,13 @@ module.exports = require("core-js/modules/es.symbol");
1210
1228
 
1211
1229
  /***/ }),
1212
1230
 
1231
+ /***/ "641f":
1232
+ /***/ (function(module, exports, __webpack_require__) {
1233
+
1234
+ // extracted by mini-css-extract-plugin
1235
+
1236
+ /***/ }),
1237
+
1213
1238
  /***/ "642d":
1214
1239
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1215
1240
 
@@ -1385,6 +1410,17 @@ module.exports = require("core-js/modules/es.array.index-of");
1385
1410
 
1386
1411
  module.exports = require("element-ui/lib/locale/lang/en");
1387
1412
 
1413
+ /***/ }),
1414
+
1415
+ /***/ "6e86":
1416
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1417
+
1418
+ "use strict";
1419
+ /* 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");
1420
+ /* 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__);
1421
+ /* unused harmony reexport * */
1422
+
1423
+
1388
1424
  /***/ }),
1389
1425
 
1390
1426
  /***/ "6ea3":
@@ -1394,6 +1430,13 @@ module.exports = require("element-ui/lib/row");
1394
1430
 
1395
1431
  /***/ }),
1396
1432
 
1433
+ /***/ "6faa":
1434
+ /***/ (function(module, exports) {
1435
+
1436
+ module.exports = require("core-js/modules/es.number.constructor");
1437
+
1438
+ /***/ }),
1439
+
1397
1440
  /***/ "7037":
1398
1441
  /***/ (function(module, exports, __webpack_require__) {
1399
1442
 
@@ -1546,7 +1589,6 @@ RendererModule.prototype.getIntersectedObject = function (intersects) {
1546
1589
 
1547
1590
  RendererModule.prototype.getAnnotationsFromObjects = function (objects) {
1548
1591
  var annotations = [];
1549
- var count = 0;
1550
1592
 
1551
1593
  for (var i = 0; i < objects.length; i++) {
1552
1594
  var zincObject = objects[i].userData;
@@ -1556,13 +1598,13 @@ RendererModule.prototype.getAnnotationsFromObjects = function (objects) {
1556
1598
  if (zincObject.isGlyph || zincObject.isGlyphset) {
1557
1599
  var glyphset = zincObject;
1558
1600
  if (zincObject.isGlyph) glyphset = (_readOnlyError("glyphset"), zincObject.getGlyphset());
1559
- annotation = glyphset.userData ? glyphset.userData[0] : undefined;
1601
+ annotation = glyphset.userData ? glyphset.userData.annotation : undefined;
1560
1602
 
1561
1603
  if (annotation && annotation.data) {
1562
1604
  if (objects[i].name && objects[i].name != "") annotation.data.id = objects[i].name;else annotation.data.id = glyphset.groupName;
1563
1605
  }
1564
1606
  } else {
1565
- annotation = zincObject.userData ? zincObject.userData[0] : undefined;
1607
+ annotation = zincObject.userData ? zincObject.userData.annotation : undefined;
1566
1608
 
1567
1609
  if (annotation && annotation.data) {
1568
1610
  annotation.data.id = objects[i].name;
@@ -1570,27 +1612,28 @@ RendererModule.prototype.getAnnotationsFromObjects = function (objects) {
1570
1612
  }
1571
1613
  }
1572
1614
 
1573
- if (annotation) annotations[count++] = annotation;
1615
+ if (annotation) annotations.push(annotation);
1574
1616
  }
1575
1617
 
1576
1618
  return annotations;
1577
1619
  };
1578
1620
 
1579
- RendererModule.prototype.setHighlightedByObjects = function (objects, propagateChanges) {
1621
+ RendererModule.prototype.setHighlightedByObjects = function (objects, coords, propagateChanges) {
1580
1622
  var changed = this.graphicsHighlight.setHighlighted(objects);
1581
1623
 
1582
- if (changed && propagateChanges) {
1583
- var eventType = __webpack_require__("9b21").EVENT_TYPE.HIGHLIGHTED;
1584
-
1624
+ if (propagateChanges) {
1625
+ eventType = __webpack_require__("9b21").EVENT_TYPE.MOVE;
1626
+ if (changed) eventType = __webpack_require__("9b21").EVENT_TYPE.HIGHLIGHTED;
1585
1627
  var annotations = this.getAnnotationsFromObjects(objects);
1628
+ if (annotations.length > 0) annotations[0].coords = coords;
1586
1629
  this.publishChanges(annotations, eventType);
1587
1630
  }
1588
1631
 
1589
1632
  return changed;
1590
1633
  };
1591
1634
 
1592
- RendererModule.prototype.setHighlightedByZincObject = function (zincObject, propagateChanges) {
1593
- return this.setHighlightedByObjects([zincObject ? zincObject.morph : undefined], propagateChanges);
1635
+ RendererModule.prototype.setHighlightedByZincObject = function (zincObject, coords, propagateChanges) {
1636
+ return this.setHighlightedByObjects([zincObject ? zincObject.morph : undefined], coords, propagateChanges);
1594
1637
  };
1595
1638
 
1596
1639
  RendererModule.prototype.setupLiveCoordinates = function (zincObjects) {
@@ -1627,7 +1670,7 @@ RendererModule.prototype.objectsToZincObjects = function (objects) {
1627
1670
  return zincObjects;
1628
1671
  };
1629
1672
 
1630
- RendererModule.prototype.setSelectedByObjects = function (objects, propagateChanges) {
1673
+ RendererModule.prototype.setSelectedByObjects = function (objects, coords, propagateChanges) {
1631
1674
  var changed = this.graphicsHighlight.setSelected(objects);
1632
1675
 
1633
1676
  if (changed) {
@@ -1635,18 +1678,19 @@ RendererModule.prototype.setSelectedByObjects = function (objects, propagateChan
1635
1678
  this.setupLiveCoordinates(zincObjects);
1636
1679
 
1637
1680
  if (propagateChanges) {
1638
- var eventType = __webpack_require__("9b21").EVENT_TYPE.SELECTED;
1681
+ var _eventType = __webpack_require__("9b21").EVENT_TYPE.SELECTED;
1639
1682
 
1640
1683
  var annotations = this.getAnnotationsFromObjects(objects);
1641
- this.publishChanges(annotations, eventType);
1684
+ if (annotations.length > 0) annotations[0].coords = coords;
1685
+ this.publishChanges(annotations, _eventType);
1642
1686
  }
1643
1687
  }
1644
1688
 
1645
1689
  return changed;
1646
1690
  };
1647
1691
 
1648
- RendererModule.prototype.setSelectedByZincObject = function (zincObject, propagateChanges) {
1649
- return this.setSelectedByObjects([zincObject ? zincObject.morph : undefined], propagateChanges);
1692
+ RendererModule.prototype.setSelectedByZincObject = function (zincObject, coords, propagateChanges) {
1693
+ return this.setSelectedByObjects([zincObject ? zincObject.morph : undefined], coords, propagateChanges);
1650
1694
  };
1651
1695
 
1652
1696
  var addGlyphToArray = function addGlyphToArray(objects) {
@@ -1674,12 +1718,12 @@ RendererModule.prototype.findObjectsByGroupName = function (groupName) {
1674
1718
 
1675
1719
  RendererModule.prototype.setHighlightedByGroupName = function (groupName, propagateChanges) {
1676
1720
  var objects = this.findObjectsByGroupName(groupName);
1677
- return this.setHighlightedByObjects(objects, propagateChanges);
1721
+ return this.setHighlightedByObjects(objects, undefined, propagateChanges);
1678
1722
  };
1679
1723
 
1680
1724
  RendererModule.prototype.setSelectedByGroupName = function (groupName, propagateChanges) {
1681
1725
  var objects = this.findObjectsByGroupName(groupName);
1682
- return this.setSelectedByObjects(objects, propagateChanges);
1726
+ return this.setSelectedByObjects(objects, undefined, propagateChanges);
1683
1727
  };
1684
1728
 
1685
1729
  RendererModule.prototype.changeBackgroundColour = function (backgroundColourString) {
@@ -1790,6 +1834,17 @@ module.exports = require("core-js/modules/es.array.iterator");
1790
1834
 
1791
1835
  module.exports = require("element-ui/lib/theme-chalk/icon.css");
1792
1836
 
1837
+ /***/ }),
1838
+
1839
+ /***/ "8f55":
1840
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1841
+
1842
+ "use strict";
1843
+ /* 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");
1844
+ /* 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__);
1845
+ /* unused harmony reexport * */
1846
+
1847
+
1793
1848
  /***/ }),
1794
1849
 
1795
1850
  /***/ "907b":
@@ -1806,6 +1861,13 @@ module.exports = require("zincjs");
1806
1861
 
1807
1862
  /***/ }),
1808
1863
 
1864
+ /***/ "9372":
1865
+ /***/ (function(module, exports, __webpack_require__) {
1866
+
1867
+ // extracted by mini-css-extract-plugin
1868
+
1869
+ /***/ }),
1870
+
1809
1871
  /***/ "93e6":
1810
1872
  /***/ (function(module, exports) {
1811
1873
 
@@ -1853,7 +1915,8 @@ __webpack_require__("7c81");
1853
1915
  var EVENT_TYPE = {
1854
1916
  ALL: 0,
1855
1917
  SELECTED: 1,
1856
- HIGHLIGHTED: 2
1918
+ HIGHLIGHTED: 2,
1919
+ MOVE: 3
1857
1920
  };
1858
1921
 
1859
1922
  var SelectionEvent = function SelectionEvent(eventTypeIn, identifiersIn) {
@@ -1961,17 +2024,6 @@ module.exports = require("core-js/modules/es.array.includes");
1961
2024
 
1962
2025
  module.exports = require("element-ui/lib/loading");
1963
2026
 
1964
- /***/ }),
1965
-
1966
- /***/ "add8":
1967
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
1968
-
1969
- "use strict";
1970
- /* 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");
1971
- /* 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__);
1972
- /* unused harmony reexport * */
1973
-
1974
-
1975
2027
  /***/ }),
1976
2028
 
1977
2029
  /***/ "b0e3":
@@ -2021,17 +2073,6 @@ module.exports = require("core-js/modules/es.string.replace");
2021
2073
 
2022
2074
  module.exports = require("element-ui/lib/option");
2023
2075
 
2024
- /***/ }),
2025
-
2026
- /***/ "c5b3":
2027
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
2028
-
2029
- "use strict";
2030
- /* 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");
2031
- /* 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__);
2032
- /* unused harmony reexport * */
2033
-
2034
-
2035
2076
  /***/ }),
2036
2077
 
2037
2078
  /***/ "cf41":
@@ -2104,6 +2145,13 @@ exports.WEBGL = {
2104
2145
 
2105
2146
  /***/ }),
2106
2147
 
2148
+ /***/ "d0b9":
2149
+ /***/ (function(module, exports, __webpack_require__) {
2150
+
2151
+ // extracted by mini-css-extract-plugin
2152
+
2153
+ /***/ }),
2154
+
2107
2155
  /***/ "da60":
2108
2156
  /***/ (function(module, exports) {
2109
2157
 
@@ -2122,10 +2170,10 @@ module.exports = require("core-js/modules/es.array.from");
2122
2170
 
2123
2171
  /***/ }),
2124
2172
 
2125
- /***/ "e8d1":
2126
- /***/ (function(module, exports, __webpack_require__) {
2173
+ /***/ "f705":
2174
+ /***/ (function(module, exports) {
2127
2175
 
2128
- // extracted by mini-css-extract-plugin
2176
+ module.exports = require("core-js/modules/es.array.map");
2129
2177
 
2130
2178
  /***/ }),
2131
2179
 
@@ -2163,12 +2211,12 @@ if (typeof window !== 'undefined') {
2163
2211
  // Indicate to webpack that this file can be concatenated
2164
2212
  /* harmony default export */ var setPublicPath = (null);
2165
2213
 
2166
- // 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&
2167
- 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)}
2214
+ // 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&
2215
+ 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)}
2168
2216
  var staticRenderFns = []
2169
2217
 
2170
2218
 
2171
- // CONCATENATED MODULE: ./src/components/ScaffoldVuer.vue?vue&type=template&id=02b8949c&scoped=true&
2219
+ // CONCATENATED MODULE: ./src/components/ScaffoldVuer.vue?vue&type=template&id=8761aa48&scoped=true&
2172
2220
 
2173
2221
  // EXTERNAL MODULE: external "core-js/modules/es.array.for-each"
2174
2222
  var es_array_for_each_ = __webpack_require__("139f");
@@ -2267,7 +2315,7 @@ var col_default = /*#__PURE__*/__webpack_require__.n(col_);
2267
2315
  var external_vue_ = __webpack_require__("8bbf");
2268
2316
  var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);
2269
2317
 
2270
- // 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&
2318
+ // 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&
2271
2319
  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()}
2272
2320
  var OpacityControlsvue_type_template_id_4c00a30f_scoped_true_staticRenderFns = []
2273
2321
 
@@ -2568,25 +2616,149 @@ var component = normalizeComponent(
2568
2616
  )
2569
2617
 
2570
2618
  /* harmony default export */ var OpacityControls = (component.exports);
2571
- // 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&
2572
- 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,
2573
- 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"})])])}
2574
- var TraditionalControlsvue_type_template_id_335c5764_scoped_true_staticRenderFns = []
2619
+ // 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&
2620
+ 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)}
2621
+ var ScaffoldTooltipvue_type_template_id_2ff3bbca_scoped_true_staticRenderFns = []
2622
+
2623
+
2624
+ // CONCATENATED MODULE: ./src/components/ScaffoldTooltip.vue?vue&type=template&id=2ff3bbca&scoped=true&
2625
+
2626
+ // EXTERNAL MODULE: external "core-js/modules/es.number.constructor"
2627
+ var es_number_constructor_ = __webpack_require__("6faa");
2628
+
2629
+ // 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&
2630
+
2631
+
2632
+
2633
+
2634
+ //
2635
+ //
2636
+ //
2637
+ //
2638
+ //
2639
+ //
2640
+ //
2641
+ //
2642
+ //
2643
+ //
2644
+ //
2645
+ //
2646
+ //
2647
+ //
2648
+ //
2649
+ //
2650
+
2651
+ /* eslint-disable no-alert, no-console */
2652
+
2653
+
2654
+
2655
+ locale_default.a.use(en_default.a);
2656
+ external_vue_default.a.use(popover_default.a);
2657
+ /**
2658
+ * A component to control the opacity of the target object.
2659
+ */
2660
+
2661
+ /* harmony default export */ var ScaffoldTooltipvue_type_script_lang_js_ = ({
2662
+ name: "ScaffoldTooltip",
2663
+ props: {
2664
+ label: {
2665
+ type: String,
2666
+ default: ""
2667
+ },
2668
+ visible: {
2669
+ type: Boolean,
2670
+ default: false
2671
+ },
2672
+ x: {
2673
+ type: Number,
2674
+ default: 200
2675
+ },
2676
+ y: {
2677
+ type: Number,
2678
+ default: 200
2679
+ }
2680
+ },
2681
+ data: function data() {
2682
+ return {
2683
+ display: false
2684
+ };
2685
+ },
2686
+ computed: {
2687
+ position: function position() {
2688
+ return {
2689
+ left: this.x + "px",
2690
+ top: this.y - 30 + "px"
2691
+ };
2692
+ }
2693
+ },
2694
+ watch: {
2695
+ label: {
2696
+ handler: function handler() {
2697
+ if (this.visible && this.label && this.label !== "") this.display = true;else this.display = false;
2698
+ },
2699
+ immediate: true
2700
+ },
2701
+ visible: {
2702
+ handler: function handler() {
2703
+ if (this.visible && this.label && this.label !== "") this.display = true;else this.display = false;
2704
+ },
2705
+ immediate: true
2706
+ }
2707
+ }
2708
+ });
2709
+ // CONCATENATED MODULE: ./src/components/ScaffoldTooltip.vue?vue&type=script&lang=js&
2710
+ /* harmony default export */ var components_ScaffoldTooltipvue_type_script_lang_js_ = (ScaffoldTooltipvue_type_script_lang_js_);
2711
+ // EXTERNAL MODULE: ./src/components/ScaffoldTooltip.vue?vue&type=style&index=0&id=2ff3bbca&scoped=true&lang=scss&
2712
+ var ScaffoldTooltipvue_type_style_index_0_id_2ff3bbca_scoped_true_lang_scss_ = __webpack_require__("6e86");
2713
+
2714
+ // CONCATENATED MODULE: ./src/components/ScaffoldTooltip.vue
2715
+
2716
+
2575
2717
 
2576
2718
 
2577
- // CONCATENATED MODULE: ./src/components/TraditionalControls.vue?vue&type=template&id=335c5764&scoped=true&
2578
2719
 
2579
- // EXTERNAL MODULE: external "core-js/modules/es.array.concat"
2580
- var es_array_concat_ = __webpack_require__("18d2");
2720
+
2721
+ /* normalize component */
2722
+
2723
+ var ScaffoldTooltip_component = normalizeComponent(
2724
+ components_ScaffoldTooltipvue_type_script_lang_js_,
2725
+ ScaffoldTooltipvue_type_template_id_2ff3bbca_scoped_true_render,
2726
+ ScaffoldTooltipvue_type_template_id_2ff3bbca_scoped_true_staticRenderFns,
2727
+ false,
2728
+ null,
2729
+ "2ff3bbca",
2730
+ null
2731
+
2732
+ )
2733
+
2734
+ /* harmony default export */ var ScaffoldTooltip = (ScaffoldTooltip_component.exports);
2735
+ // 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&
2736
+ 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){
2737
+ var node = ref.node;
2738
+ var data = ref.data;
2739
+ return _c('span',{staticClass:"region-tree-node",class:{
2740
+ activeItem:
2741
+ (_vm.active.group === data.label &&
2742
+ ((_vm.active.regionPath === data.regionPath) ||
2743
+ _vm.active.regionPath === undefined)),
2744
+ hoverItem:
2745
+ (_vm.hover.group === data.label &&
2746
+ ((_vm.hover.regionPath === data.regionPath) ||
2747
+ _vm.hover.regionPath === undefined))
2748
+ },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"})])])}
2749
+ var TreeControlsvue_type_template_id_4d20ec9a_scoped_true_staticRenderFns = []
2750
+
2751
+
2752
+ // CONCATENATED MODULE: ./src/components/TreeControls.vue?vue&type=template&id=4d20ec9a&scoped=true&
2753
+
2754
+ // EXTERNAL MODULE: external "core-js/modules/es.array.find"
2755
+ var es_array_find_ = __webpack_require__("fe0e");
2581
2756
 
2582
2757
  // EXTERNAL MODULE: external "core-js/modules/es.array.includes"
2583
2758
  var es_array_includes_ = __webpack_require__("ab7e");
2584
2759
 
2585
- // EXTERNAL MODULE: external "core-js/modules/es.array.index-of"
2586
- var es_array_index_of_ = __webpack_require__("6bb1");
2587
-
2588
- // EXTERNAL MODULE: external "core-js/modules/es.array.splice"
2589
- var es_array_splice_ = __webpack_require__("7c81");
2760
+ // EXTERNAL MODULE: external "core-js/modules/es.array.map"
2761
+ var es_array_map_ = __webpack_require__("f705");
2590
2762
 
2591
2763
  // EXTERNAL MODULE: external "core-js/modules/es.regexp.exec"
2592
2764
  var es_regexp_exec_ = __webpack_require__("51f7");
@@ -2673,6 +2845,13 @@ function _nonIterableSpread() {
2673
2845
  function _toConsumableArray(arr) {
2674
2846
  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
2675
2847
  }
2848
+ // EXTERNAL MODULE: external "element-ui/lib/theme-chalk/tree.css"
2849
+ var tree_css_ = __webpack_require__("49d0");
2850
+
2851
+ // EXTERNAL MODULE: external "element-ui/lib/tree"
2852
+ var tree_ = __webpack_require__("0fec");
2853
+ var tree_default = /*#__PURE__*/__webpack_require__.n(tree_);
2854
+
2676
2855
  // EXTERNAL MODULE: external "element-ui/lib/theme-chalk/color-picker.css"
2677
2856
  var color_picker_css_ = __webpack_require__("3666");
2678
2857
 
@@ -2694,7 +2873,11 @@ var checkbox_css_ = __webpack_require__("55ee");
2694
2873
  var checkbox_ = __webpack_require__("b777");
2695
2874
  var checkbox_default = /*#__PURE__*/__webpack_require__.n(checkbox_);
2696
2875
 
2697
- // 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&
2876
+ // 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&
2877
+
2878
+
2879
+
2880
+
2698
2881
 
2699
2882
 
2700
2883
 
@@ -2715,12 +2898,6 @@ var checkbox_default = /*#__PURE__*/__webpack_require__.n(checkbox_);
2715
2898
 
2716
2899
 
2717
2900
 
2718
- //
2719
- //
2720
- //
2721
- //
2722
- //
2723
- //
2724
2901
  //
2725
2902
  //
2726
2903
  //
@@ -2800,12 +2977,36 @@ external_vue_default.a.use(checkbox_default.a);
2800
2977
  external_vue_default.a.use(checkbox_group_default.a);
2801
2978
  external_vue_default.a.use(color_picker_default.a);
2802
2979
  external_vue_default.a.use(row_default.a);
2980
+ external_vue_default.a.use(tree_default.a);
2981
+
2982
+ var nameSorting = function nameSorting(a, b) {
2983
+ var labelA = a.label.toUpperCase();
2984
+ var labelB = b.label.toUpperCase();
2985
+
2986
+ if (labelA < labelB) {
2987
+ return -1;
2988
+ }
2989
+
2990
+ if (labelA > labelB) {
2991
+ return 1;
2992
+ }
2993
+
2994
+ return 0;
2995
+ };
2996
+
2997
+ var extractAllIds = function extractAllIds(item, list) {
2998
+ list.push(item.id);
2999
+ if (item.children) item.children.forEach(function (child) {
3000
+ return extractAllIds(child, list);
3001
+ });
3002
+ };
2803
3003
  /**
2804
3004
  * A vue component for toggling visibility of various regions.
2805
3005
  */
2806
3006
 
2807
- /* harmony default export */ var TraditionalControlsvue_type_script_lang_js_ = ({
2808
- name: "TraditionalControls",
3007
+
3008
+ /* harmony default export */ var TreeControlsvue_type_script_lang_js_ = ({
3009
+ name: "TreeControls",
2809
3010
  props: {
2810
3011
  /**
2811
3012
  * @ignore
@@ -2822,12 +3023,19 @@ external_vue_default.a.use(row_default.a);
2822
3023
  },
2823
3024
  data: function data() {
2824
3025
  return {
2825
- checkAll: true,
2826
- isIndeterminate: false,
2827
- checkedItems: [],
2828
- sortedPrimitiveGroups: [],
2829
- activeRegion: "",
2830
- hoverRegion: "",
3026
+ treeData: [{
3027
+ label: "Root",
3028
+ id: "__r/",
3029
+ children: []
3030
+ }],
3031
+ active: {
3032
+ group: "",
3033
+ regionPath: undefined
3034
+ },
3035
+ hover: {
3036
+ group: "",
3037
+ regionPath: undefined
3038
+ },
2831
3039
  myPopperClass: "hide-scaffold-colour-popup",
2832
3040
  drawerOpen: true
2833
3041
  };
@@ -2841,68 +3049,179 @@ external_vue_default.a.use(row_default.a);
2841
3049
  }
2842
3050
  },
2843
3051
  created: function created() {
2844
- var tmpArray = this.module.sceneData.geometries.concat(this.module.sceneData.lines);
2845
- tmpArray = tmpArray.concat(this.module.sceneData.glyphsets);
2846
- tmpArray = uniq(tmpArray.concat(this.module.sceneData.pointset));
2847
- this.sortedPrimitiveGroups = orderBy(tmpArray);
3052
+ var _this = this;
3053
+
3054
+ this.module.sceneData.geometries.forEach(function (zincObject) {
3055
+ _this.organsAdded(zincObject);
3056
+ });
3057
+ this.module.sceneData.lines.forEach(function (zincObject) {
3058
+ _this.organsAdded(zincObject);
3059
+ });
3060
+ this.module.sceneData.glyphsets.forEach(function (zincObject) {
3061
+ _this.organsAdded(zincObject);
3062
+ });
3063
+ this.module.sceneData.pointsets.forEach(function (zincObject) {
3064
+ _this.organsAdded(zincObject);
3065
+ });
2848
3066
  this.module.addOrganPartAddedCallback(this.organsAdded);
3067
+ this.__nodeNumbers = 1;
2849
3068
  },
2850
3069
  destroyed: function destroyed() {
2851
3070
  this.sortedPrimitiveGroups = undefined;
2852
3071
  },
2853
3072
  methods: {
2854
- /**
2855
- * This is called when a new organ is read into the scene.
2856
- */
2857
- organsAdded: function organsAdded(name) {
2858
- if (name && name != "") {
2859
- var tmpArray = uniq(this.sortedPrimitiveGroups.concat([name]));
2860
- tmpArray = orderBy(tmpArray);
2861
- var index = tmpArray.indexOf(undefined);
2862
-
2863
- if (index > -1) {
2864
- tmpArray.splice(index, 1);
3073
+ addTreeItem: function addTreeItem(parentContainer, item) {
3074
+ var _this2 = this;
3075
+
3076
+ for (var i = 0; i < parentContainer.length; i++) {
3077
+ if (parentContainer[i].id === item.id) {
3078
+ if (item.primitives && parentContainer[i].primitives) {
3079
+ var _parentContainer$i$pr;
3080
+
3081
+ (_parentContainer$i$pr = parentContainer[i].primitives).push.apply(_parentContainer$i$pr, _toConsumableArray(item.primitives));
3082
+
3083
+ return;
3084
+ }
2865
3085
  }
3086
+ }
2866
3087
 
2867
- this.sortedPrimitiveGroups = tmpArray;
3088
+ parentContainer.push(item);
3089
+ parentContainer.sort(function (a, b) {
3090
+ return nameSorting(a, b);
3091
+ });
3092
+ this.__nodeNumbers++;
3093
+ this.$nextTick(function () {
3094
+ _this2.$refs.regionTree.setChecked(item.id, true);
3095
+ });
3096
+ },
3097
+ // find or create new region, region id is always prefixed with
3098
+ // '__r/'
3099
+ findOrCreateRegion: function findOrCreateRegion(data, paths, prefix) {
3100
+ //check if root region has been set
3101
+ if (!this.treeData[0].region && this.module && this.module.scene) {
3102
+ this.treeData[0].region = this.module.scene.getRootRegion();
3103
+ }
3104
+
3105
+ if (paths.length > 0) {
3106
+ var _paths = _toConsumableArray(paths);
3107
+
3108
+ var childRegion = data.children.find(function (child) {
3109
+ return child.label == _paths[0];
3110
+ });
3111
+ var path = prefix + "/" + paths[0];
3112
+ var id = "__r" + path;
3113
+
3114
+ if (!childRegion) {
3115
+ var region = this.treeData[0].region.findChildFromPath(path);
3116
+ childRegion = {
3117
+ label: _paths[0],
3118
+ id: id,
3119
+ children: [],
3120
+ region: region
3121
+ };
3122
+ this.addTreeItem(data.children, childRegion);
3123
+ }
3124
+
3125
+ _paths.shift();
3126
+
3127
+ return this.findOrCreateRegion(childRegion, _paths, path);
3128
+ } else {
3129
+ return data;
2868
3130
  }
2869
3131
  },
2870
3132
 
2871
3133
  /**
2872
- * Select a region by its name.
3134
+ * This is called when a new organ is read into the scene.
2873
3135
  */
2874
- changeActiveByName: function changeActiveByName(name, propagate) {
2875
- var targetObject = this.getFirstZincObjectWithGroupName(name);
3136
+ organsAdded: function organsAdded(zincObject) {
3137
+ var region = zincObject.region;
3138
+
3139
+ if (region) {
3140
+ var paths = region.getFullSeparatedPath();
3141
+ var regionData = this.findOrCreateRegion(this.treeData[0], paths, "");
3142
+
3143
+ if (zincObject.groupName) {
3144
+ if (regionData) {
3145
+ if (!regionData.children) {
3146
+ regionData.children = [];
3147
+ }
2876
3148
 
2877
- if (targetObject && targetObject.getVisibility()) {
2878
- this.activeRegion = name;
2879
- this.$emit("object-selected", targetObject, propagate);
3149
+ var id = regionData.id.replace("__r/", "") + "/" + zincObject.groupName;
3150
+ var child = {
3151
+ label: zincObject.groupName,
3152
+ id: id,
3153
+ primitives: [zincObject],
3154
+ regionPath: zincObject.region.getFullPath()
3155
+ };
3156
+ this.addTreeItem(regionData.children, child);
3157
+ }
3158
+ }
3159
+ }
3160
+ },
3161
+ checkChanged: function checkChanged(node, data) {
3162
+ var checked = data.checkedKeys.includes(node.id);
3163
+ if (node.region) node.region.setVisibility(checked);
3164
+
3165
+ if (node.primitives) {
3166
+ node.primitives.forEach(function (primitive) {
3167
+ primitive.setVisibility(checked);
3168
+ });
3169
+ }
3170
+ },
3171
+ changeActiveByPrimitive: function changeActiveByPrimitive(primitive, propagate) {
3172
+ if (primitive && primitive.getVisibility()) {
3173
+ this.active.group = primitive.groupName;
3174
+ this.active.regionPath = primitive.region.getFullPath();
3175
+ console.log(this.active);
3176
+ this.$emit("object-selected", primitive, propagate);
2880
3177
  } else {
2881
3178
  this.removeActive(propagate);
2882
3179
  }
2883
3180
 
2884
3181
  this.removeHover(propagate);
2885
3182
  },
3183
+ changeHoverByPrimitive: function changeHoverByPrimitive(primitive, propagate) {
3184
+ if (primitive) {
3185
+ this.hover.group = primitive.groupName;
3186
+ this.hover.regionPath = primitive.region.getFullPath();
3187
+ this.$emit("object-hovered", primitive, propagate);
3188
+ } else {
3189
+ this.removeHover(propagate);
3190
+ }
3191
+ },
2886
3192
 
2887
3193
  /**
2888
- * Hover a region by its name.
3194
+ * Select a region by its name.
2889
3195
  */
2890
- changeHoverByName: function changeHoverByName(name, propagate) {
2891
- var targetObject = this.getFirstZincObjectWithGroupName(name);
3196
+ changeActiveByName: function changeActiveByName(name, regionPath, propagate) {
3197
+ var rootRegion = this.module.scene.getRootRegion();
3198
+ var targetRegion = rootRegion.findChildFromPath(regionPath);
3199
+ var targetObject = this.getFirstZincObjectWithGroupName(targetRegion, name);
3200
+ this.changeActiveByPrimitive(targetObject, propagate);
3201
+ },
2892
3202
 
2893
- if (targetObject) {
2894
- this.hoverRegion = name;
2895
- this.$emit("object-hovered", targetObject, propagate);
2896
- } else {
2897
- this.removeHover(propagate);
2898
- }
3203
+ /**
3204
+ * Hover a region by its name.
3205
+ */
3206
+ changeHoverByName: function changeHoverByName(name, regionPath, propagate) {
3207
+ var rootRegion = this.module.scene.getRootRegion();
3208
+ var targetRegion = rootRegion.findChildFromPath(regionPath);
3209
+ var targetObject = this.getFirstZincObjectWithGroupName(targetRegion, name);
3210
+ this.changeHoverByPrimitive(targetObject, propagate);
3211
+ },
3212
+ changeActiveByNode: function changeActiveByNode(node, propagate) {
3213
+ if (node.primitives) this.changeActiveByPrimitive(node.primitives[0], propagate);
3214
+ },
3215
+ changeHoverByNode: function changeHoverByNode(node, propagate) {
3216
+ if (node.primitives) this.changeHoverByPrimitive(node.primitives[0], propagate);
2899
3217
  },
2900
3218
 
2901
3219
  /**
2902
3220
  * Unselect the current selected region.
2903
3221
  */
2904
3222
  removeActive: function removeActive(propagate) {
2905
- this.activeRegion = "";
3223
+ this.active.group = "";
3224
+ this.active.regionPath = undefined;
2906
3225
  this.$emit("object-selected", undefined, propagate);
2907
3226
  },
2908
3227
 
@@ -2910,7 +3229,8 @@ external_vue_default.a.use(row_default.a);
2910
3229
  * Unselect the current hover region.
2911
3230
  */
2912
3231
  removeHover: function removeHover(propagate) {
2913
- this.hoverRegion = "";
3232
+ this.hover.group = "";
3233
+ this.hover.regionPath = undefined;
2914
3234
  this.$emit("object-hovered", undefined, propagate);
2915
3235
  },
2916
3236
 
@@ -2918,68 +3238,47 @@ external_vue_default.a.use(row_default.a);
2918
3238
  * Reset the controls.
2919
3239
  */
2920
3240
  clear: function clear() {
2921
- this.sortedPrimitiveGroups = [];
2922
- this.checkedItems = [];
2923
- this.checkAll = true;
2924
- this.isIndeterminate = false;
2925
- this.activeRegion = "";
2926
- this.hoverRegion = "";
3241
+ this.active.group = "";
3242
+ this.active.regionPath = undefined;
3243
+ this.hover.group = "";
3244
+ this.hover.regionPath = undefined;
3245
+ this.$refs.regionTree.updateKeyChildren("__r/", []);
2927
3246
  this.$emit("object-selected", undefined);
2928
3247
  },
2929
- getFirstZincObjectWithGroupName: function getFirstZincObjectWithGroupName(name) {
2930
- if (this.module && this.module.scene) {
2931
- var array = this.module.scene.findGeometriesWithGroupName(name);
3248
+ getFirstZincObjectWithGroupName: function getFirstZincObjectWithGroupName(region, name) {
3249
+ if (region) {
3250
+ var array = region.findGeometriesWithGroupName(name);
2932
3251
  if (array.length > 0) return array[0];
2933
- array = this.module.scene.findGlyphsetsWithGroupName(name);
3252
+ array = region.findGlyphsetsWithGroupName(name);
2934
3253
  if (array.length > 0) return array[0];
2935
- array = this.module.scene.findLinesWithGroupName(name);
3254
+ array = region.findLinesWithGroupName(name);
2936
3255
  if (array.length > 0) return array[0];
2937
- array = this.module.scene.findPointsetsWithGroupName(name);
3256
+ array = region.findPointsetsWithGroupName(name);
2938
3257
  if (array.length > 0) return array[0];
2939
3258
  }
2940
3259
 
2941
3260
  return undefined;
2942
3261
  },
2943
- getColour: function getColour(name) {
2944
- var graphic = this.getFirstZincObjectWithGroupName(name);
3262
+ getColour: function getColour(nodeData) {
3263
+ if (nodeData) {
3264
+ var graphic = nodeData.primitives[0];
2945
3265
 
2946
- if (graphic) {
2947
- var hex = graphic.getColourHex();
2948
- if (hex) return "#" + hex;
3266
+ if (graphic) {
3267
+ var hex = graphic.getColourHex();
3268
+ if (hex) return "#" + hex;
3269
+ }
2949
3270
  }
2950
3271
 
2951
3272
  return "#FFFFFF";
2952
3273
  },
2953
- setColour: function setColour(name, value) {
2954
- var graphic = this.getFirstZincObjectWithGroupName(name);
3274
+ setColour: function setColour(nodeData, value) {
3275
+ if (nodeData) {
3276
+ var graphic = nodeData.primitives[0];
2955
3277
 
2956
- if (graphic) {
2957
- var hexString = value.replace("#", "0x");
2958
- graphic.setColourHex(hexString);
2959
- }
2960
- },
2961
- checkboxHover: function checkboxHover(name) {
2962
- this.changeHoverByName(name, true);
2963
- },
2964
- itemClicked: function itemClicked(name, event) {
2965
- if (!(event.target.classList.contains("el-checkbox__inner") || event.target.classList.contains("el-checkbox__original"))) {
2966
- this.changeActiveByName(name, true);
2967
- event.preventDefault();
2968
- }
2969
- },
2970
- handleCheckedItemsChange: function handleCheckedItemsChange() {
2971
- var unnamed = this.checkedItems.includes(undefined) ? true : false;
2972
- var checkedCount = this.checkedItems.length;
2973
- if (unnamed) checkedCount--;
2974
- this.checkAll = checkedCount === this.sortedPrimitiveGroups.length;
2975
- this.isIndeterminate = checkedCount > 0 && checkedCount < this.sortedPrimitiveGroups.length;
2976
- },
2977
- handleCheckAllChange: function handleCheckAllChange(val) {
2978
- this.checkedItems = val ? _toConsumableArray(this.sortedPrimitiveGroups) : [];
2979
- this.isIndeterminate = false;
2980
-
2981
- for (var i = 0; i < this.sortedPrimitiveGroups.length; i++) {
2982
- this.visibilityToggle(this.sortedPrimitiveGroups[i], this.checkAll);
3278
+ if (graphic) {
3279
+ var hexString = value.replace("#", "0x");
3280
+ graphic.setColourHex(hexString);
3281
+ }
2983
3282
  }
2984
3283
  },
2985
3284
  viewAll: function viewAll() {
@@ -3002,56 +3301,70 @@ external_vue_default.a.use(row_default.a);
3002
3301
  this.drawerOpen = !this.drawerOpen;
3003
3302
  this.$emit("drawer-toggled", this.drawerOpen);
3004
3303
  },
3005
- getState: function getState() {
3006
- if (this.checkAll) {
3007
- return {
3008
- checkAll: true
3009
- };
3010
- }
3011
-
3012
- var checkedItems = _toConsumableArray(this.checkedItems);
3013
-
3014
- var index = checkedItems.indexOf(undefined);
3015
-
3016
- if (index > -1) {
3017
- checkedItems.splice(index, 1);
3018
- }
3304
+ setTreeVisibility: function setTreeVisibility(node, list) {
3305
+ var _this3 = this;
3019
3306
 
3307
+ var flag = false;
3308
+ if (list.includes(node.id)) flag = true;
3309
+ if (node.region) node.region.setVisibility(flag);
3310
+ if (node.primitives) node.primitives.forEach(function (primitive) {
3311
+ return primitive.setVisibility(flag);
3312
+ });
3313
+ if (node.children) node.children.forEach(function (child) {
3314
+ return _this3.setTreeVisibility(child, list);
3315
+ });
3316
+ },
3317
+ checkAllKeys: function checkAllKeys() {
3318
+ var keysList = [];
3319
+ extractAllIds(this.treeData[0], keysList);
3320
+ this.setTreeVisibility(this.treeData[0], keysList);
3321
+ this.$refs.regionTree.setCheckedKeys(keysList);
3322
+ },
3323
+ getState: function getState() {
3324
+ var checkedItems = this.$refs.regionTree.getCheckedKeys();
3325
+ if (checkedItems.length === this.__nodeNumbers) return {
3326
+ checkAll: true,
3327
+ version: "2.0"
3328
+ };
3020
3329
  return {
3021
- checkedItems: checkedItems
3330
+ checkedItems: checkedItems,
3331
+ version: "2.0"
3022
3332
  };
3023
3333
  },
3024
3334
  setState: function setState(state) {
3025
3335
  if (state) {
3026
3336
  if (state.checkAll) {
3027
- this.checkedItems = _toConsumableArray(this.sortedPrimitiveGroups);
3028
-
3029
- for (var i = 0; i < this.sortedPrimitiveGroups.length; i++) {
3030
- this.module.changeOrganPartsVisibility(this.sortedPrimitiveGroups[i], true);
3031
- }
3337
+ this.checkAllKeys();
3032
3338
  } else if (state.checkedItems) {
3033
- this.checkedItems = _toConsumableArray(state.checkedItems);
3339
+ var list = [];
3034
3340
 
3035
- for (var _i = 0; _i < this.sortedPrimitiveGroups.length; _i++) {
3036
- var visible = this.checkedItems.includes(this.sortedPrimitiveGroups[_i]);
3037
- this.module.changeOrganPartsVisibility(this.sortedPrimitiveGroups[_i], visible);
3341
+ if (state.version !== "2.0") {
3342
+ list = state.checkedItems.map(function (item) {
3343
+ return "/" + item;
3344
+ });
3345
+ list.shift("__r/");
3346
+ } else {
3347
+ var _list;
3348
+
3349
+ (_list = list).push.apply(_list, _toConsumableArray(state.checkedItems));
3038
3350
  }
3351
+
3352
+ this.setTreeVisibility(this.treeData[0], list);
3353
+ this.$refs.regionTree.setCheckedKeys(list);
3039
3354
  }
3040
3355
  }
3041
-
3042
- this.handleCheckedItemsChange();
3043
3356
  }
3044
3357
  }
3045
3358
  });
3046
- // CONCATENATED MODULE: ./src/components/TraditionalControls.vue?vue&type=script&lang=js&
3047
- /* harmony default export */ var components_TraditionalControlsvue_type_script_lang_js_ = (TraditionalControlsvue_type_script_lang_js_);
3048
- // EXTERNAL MODULE: ./src/components/TraditionalControls.vue?vue&type=style&index=0&id=335c5764&scoped=true&lang=scss&
3049
- var TraditionalControlsvue_type_style_index_0_id_335c5764_scoped_true_lang_scss_ = __webpack_require__("3a59");
3359
+ // CONCATENATED MODULE: ./src/components/TreeControls.vue?vue&type=script&lang=js&
3360
+ /* harmony default export */ var components_TreeControlsvue_type_script_lang_js_ = (TreeControlsvue_type_script_lang_js_);
3361
+ // EXTERNAL MODULE: ./src/components/TreeControls.vue?vue&type=style&index=0&id=4d20ec9a&scoped=true&lang=scss&
3362
+ var TreeControlsvue_type_style_index_0_id_4d20ec9a_scoped_true_lang_scss_ = __webpack_require__("47d7");
3050
3363
 
3051
- // EXTERNAL MODULE: ./src/components/TraditionalControls.vue?vue&type=style&index=1&lang=css&
3052
- var TraditionalControlsvue_type_style_index_1_lang_css_ = __webpack_require__("add8");
3364
+ // EXTERNAL MODULE: ./src/components/TreeControls.vue?vue&type=style&index=1&lang=css&
3365
+ var TreeControlsvue_type_style_index_1_lang_css_ = __webpack_require__("8f55");
3053
3366
 
3054
- // CONCATENATED MODULE: ./src/components/TraditionalControls.vue
3367
+ // CONCATENATED MODULE: ./src/components/TreeControls.vue
3055
3368
 
3056
3369
 
3057
3370
 
@@ -3061,18 +3374,18 @@ var TraditionalControlsvue_type_style_index_1_lang_css_ = __webpack_require__("a
3061
3374
 
3062
3375
  /* normalize component */
3063
3376
 
3064
- var TraditionalControls_component = normalizeComponent(
3065
- components_TraditionalControlsvue_type_script_lang_js_,
3066
- TraditionalControlsvue_type_template_id_335c5764_scoped_true_render,
3067
- TraditionalControlsvue_type_template_id_335c5764_scoped_true_staticRenderFns,
3377
+ var TreeControls_component = normalizeComponent(
3378
+ components_TreeControlsvue_type_script_lang_js_,
3379
+ TreeControlsvue_type_template_id_4d20ec9a_scoped_true_render,
3380
+ TreeControlsvue_type_template_id_4d20ec9a_scoped_true_staticRenderFns,
3068
3381
  false,
3069
3382
  null,
3070
- "335c5764",
3383
+ "4d20ec9a",
3071
3384
  null
3072
3385
 
3073
3386
  )
3074
3387
 
3075
- /* harmony default export */ var TraditionalControls = (TraditionalControls_component.exports);
3388
+ /* harmony default export */ var TreeControls = (TreeControls_component.exports);
3076
3389
  // EXTERNAL MODULE: external "@abi-software/svg-sprite"
3077
3390
  var svg_sprite_ = __webpack_require__("429c");
3078
3391
 
@@ -3351,6 +3664,12 @@ var svg_sprite_ = __webpack_require__("429c");
3351
3664
  //
3352
3665
  //
3353
3666
  //
3667
+ //
3668
+ //
3669
+ //
3670
+ //
3671
+ //
3672
+ //
3354
3673
 
3355
3674
  /* eslint-disable no-alert, no-console */
3356
3675
 
@@ -3359,6 +3678,7 @@ var svg_sprite_ = __webpack_require__("429c");
3359
3678
 
3360
3679
 
3361
3680
 
3681
+
3362
3682
  locale_default.a.use(en_default.a);
3363
3683
  external_vue_default.a.use(col_default.a);
3364
3684
  external_vue_default.a.use(loading_default.a.directive);
@@ -3377,17 +3697,18 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
3377
3697
  * A vue component of the scaffold viewer.
3378
3698
  *
3379
3699
  * @requires ./OpacityControls.vue
3380
- * @requires ./TraditionalControls.vue
3700
+ * @requires ./TreeControls.vue
3381
3701
  */
3382
3702
 
3383
3703
 
3384
3704
  /* harmony default export */ var ScaffoldVuervue_type_script_lang_js_ = ({
3385
3705
  name: "ScaffoldVuer",
3386
3706
  components: {
3387
- OpacityControls: OpacityControls,
3388
3707
  MapSvgIcon: svg_sprite_["MapSvgIcon"],
3389
3708
  MapSvgSpriteColor: svg_sprite_["MapSvgSpriteColor"],
3390
- TraditionalControls: TraditionalControls
3709
+ OpacityControls: OpacityControls,
3710
+ ScaffoldTooltip: ScaffoldTooltip,
3711
+ TreeControls: TreeControls
3391
3712
  },
3392
3713
  props: {
3393
3714
  /**
@@ -3575,7 +3896,14 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
3575
3896
  label: "10x"
3576
3897
  }],
3577
3898
  currentSpeed: 1,
3578
- timeStamps: {}
3899
+ timeStamps: {},
3900
+ defaultCheckedKeys: [],
3901
+ tData: {
3902
+ label: "",
3903
+ visible: false,
3904
+ x: 200,
3905
+ y: 200
3906
+ }
3579
3907
  };
3580
3908
  },
3581
3909
  watch: {
@@ -3781,7 +4109,11 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
3781
4109
  var box = this.$module.scene.getBoundingBoxOfZincObjects(objects);
3782
4110
 
3783
4111
  if (box) {
3784
- this.$module.scene.viewAllWithBoundingBox(box);
4112
+ if (this.$module.isSyncControl()) {
4113
+ this.$module.setSyncControlZoomToBox(box);
4114
+ } else {
4115
+ this.$module.scene.viewAllWithBoundingBox(box);
4116
+ }
3785
4117
  }
3786
4118
  }
3787
4119
  },
@@ -3838,40 +4170,52 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
3838
4170
  */
3839
4171
  eventNotifierCallback: function eventNotifierCallback(event) {
3840
4172
  if (event.eventType == 1) {
3841
- if (this.$refs.traditionalControl) {
4173
+ if (this.$refs.treeControl) {
3842
4174
  if (event.identifiers[0]) {
3843
4175
  var id = event.identifiers[0].data.id ? event.identifiers[0].data.id : event.identifiers[0].data.group;
3844
- this.$refs.traditionalControl.changeActiveByName(id, true);
4176
+ var region = event.identifiers[0].data.region;
4177
+ this.$refs.treeControl.changeActiveByName(id, region, true);
3845
4178
  } else {
3846
- this.$refs.traditionalControl.removeActive(true);
4179
+ this.$refs.treeControl.removeActive(true);
3847
4180
  }
3848
- }
3849
- /**
3850
- * Triggers when an object has been selected
3851
- *
3852
- * @property {array} identifiers array of identifiers
3853
- * of selected object.
3854
- */
4181
+ } // Triggers when an object has been selected
3855
4182
 
3856
4183
 
3857
4184
  this.$emit("scaffold-selected", event.identifiers);
3858
4185
  } else if (event.eventType == 2) {
3859
- if (this.$refs.traditionalControl) {
3860
- if (event.identifiers[0]) {
3861
- var _id = event.identifiers[0].data.id ? event.identifiers[0].data.id : event.identifiers[0].data.group;
4186
+ this.tData.visible = false;
4187
+ var offsets = this.$refs.scaffoldContainer.getBoundingClientRect();
3862
4188
 
3863
- this.$refs.traditionalControl.changeHoverByName(_id, true);
3864
- } else this.$refs.traditionalControl.removeHover(true);
3865
- }
3866
- /**
3867
- * Triggers when an object has been highlighted
3868
- *
3869
- * @property {array} identifiers array of identifiers
3870
- * of highlighted object.
3871
- */
4189
+ if (event.identifiers[0]) {
4190
+ var _id = event.identifiers[0].data.id ? event.identifiers[0].data.id : event.identifiers[0].data.group;
4191
+
4192
+ if (event.identifiers[0].coords) {
4193
+ this.tData.visible = true;
4194
+ this.tData.label = _id;
4195
+ this.tData.x = event.identifiers[0].coords.x - offsets.left;
4196
+ this.tData.y = event.identifiers[0].coords.y - offsets.top;
4197
+ }
4198
+
4199
+ if (this.$refs.treeControl) {
4200
+ var _region = event.identifiers[0].data.region;
4201
+ this.$refs.treeControl.changeHoverByName(_id, _region, true);
4202
+ } else {
4203
+ this.$refs.treeControl.removeHover(true);
4204
+ }
4205
+ } // Triggers when an object has been highlighted
3872
4206
 
3873
4207
 
3874
4208
  this.$emit("scaffold-highlighted", event.identifiers);
4209
+ } else if (event.eventType == 3) {
4210
+ //MOVE
4211
+ if (event.identifiers[0]) {
4212
+ if (event.identifiers[0].coords) {
4213
+ var _offsets = this.$refs.scaffoldContainer.getBoundingClientRect();
4214
+
4215
+ this.tData.x = event.identifiers[0].coords.x - _offsets.left;
4216
+ this.tData.y = event.identifiers[0].coords.y - _offsets.top;
4217
+ }
4218
+ }
3875
4219
  }
3876
4220
  },
3877
4221
 
@@ -3916,7 +4260,7 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
3916
4260
  if (object !== this.selectedObject) {
3917
4261
  this.selectedObject = object;
3918
4262
  this.$refs.opacityControl.setObject(this.selectedObject);
3919
- if (object) this.$module.setSelectedByZincObject(object, propagate);else this.$module.setSelectedByObjects([], propagate);
4263
+ if (object) this.$module.setSelectedByZincObject(object, undefined, propagate);else this.$module.setSelectedByObjects([], undefined, propagate);
3920
4264
  }
3921
4265
  },
3922
4266
 
@@ -3928,26 +4272,26 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
3928
4272
  objectHovered: function objectHovered(object, propagate) {
3929
4273
  if (object !== this.hoveredObject) {
3930
4274
  this.hoveredObject = object;
3931
- if (object) this.$module.setHighlightedByZincObject(object, propagate);else this.$module.setHighlightedByObjects([], propagate);
4275
+ if (object) this.$module.setHighlightedByZincObject(object, undefined, propagate);else this.$module.setHighlightedByObjects([], undefined, propagate);
3932
4276
  }
3933
4277
  },
3934
4278
 
3935
4279
  /**
3936
4280
  * Set the selected by name.
3937
4281
  *
3938
- * @param {name} name Name of the region
4282
+ * @param {name} name Name of the group
3939
4283
  */
3940
- changeActiveByName: function changeActiveByName(name, propagate) {
3941
- if (name === undefined) this.$refs.traditionalControl.removeActive(propagate);else this.$refs.traditionalControl.changeActiveByName(name, propagate);
4284
+ changeActiveByName: function changeActiveByName(name, region, propagate) {
4285
+ if (name === undefined) this.$refs.treeControl.removeActive(propagate);else this.$refs.treeControl.changeActiveByName(name, region, propagate);
3942
4286
  },
3943
4287
 
3944
4288
  /**
3945
4289
  * Set the highlighted by name.
3946
4290
  *
3947
- * @param {name} name Name of the region
4291
+ * @param {name} name Name of the group
3948
4292
  */
3949
- changeHighlightedByName: function changeHighlightedByName(name, propagate) {
3950
- if (name === undefined) this.$refs.traditionalControl.removeHover(propagate);else this.$refs.traditionalControl.changeHoverByName(name, propagate);
4293
+ changeHighlightedByName: function changeHighlightedByName(name, region, propagate) {
4294
+ if (name === undefined) this.$refs.treeControl.removeHover(propagate);else this.$refs.treeControl.changeHoverByName(name, region, propagate);
3951
4295
  },
3952
4296
 
3953
4297
  /**
@@ -4045,7 +4389,7 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
4045
4389
  if (options.visibility) {
4046
4390
  // Some UIs may not be ready at this time.
4047
4391
  _this3.$nextTick(function () {
4048
- _this3.$refs.traditionalControl.setState(options.visibility);
4392
+ _this3.$refs.treeControl.setState(options.visibility);
4049
4393
  });
4050
4394
  }
4051
4395
  }
@@ -4058,6 +4402,8 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
4058
4402
 
4059
4403
  _this3.$module.unsetFinishDownloadCallback();
4060
4404
 
4405
+ _this3.$emit("on-ready");
4406
+
4061
4407
  _this3.isReady = true;
4062
4408
  };
4063
4409
  },
@@ -4074,7 +4420,7 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
4074
4420
  viewport: undefined,
4075
4421
  visibility: undefined
4076
4422
  };
4077
- if (this.$refs.traditionalControl) state.visibility = this.$refs.traditionalControl.getState();
4423
+ if (this.$refs.treeControl) state.visibility = this.$refs.treeControl.getState();
4078
4424
 
4079
4425
  if (this.$module.scene) {
4080
4426
  var zincCameraControls = this.$module.scene.getZincCameraControls();
@@ -4101,7 +4447,7 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
4101
4447
  if (state.viewport || state.visibility) {
4102
4448
  if (this.isReady && this.$module.scene) {
4103
4449
  if (state.viewport) this.$module.scene.getZincCameraControls().setCurrentCameraSettings(state.viewport);
4104
- if (state.visibility) this.$refs.traditionalControl.setState(state.visibility);
4450
+ if (state.visibility) this.$refs.treeControl.setState(state.visibility);
4105
4451
  } else {
4106
4452
  this.$module.setFinishDownloadCallback(this.setURLFinishCallback({
4107
4453
  viewport: state.viewport,
@@ -4128,7 +4474,7 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
4128
4474
  var viewport = state && state.viewport ? state.viewport : undefined;
4129
4475
  var visibility = state && state.visibility ? state.visibility : undefined;
4130
4476
  this._currentURL = newValue;
4131
- if (this.$refs.traditionalControl) this.$refs.traditionalControl.clear();
4477
+ if (this.$refs.treeControl) this.$refs.treeControl.clear();
4132
4478
  this.loading = true;
4133
4479
  this.isReady = false;
4134
4480
  this.$module.setFinishDownloadCallback(this.setURLFinishCallback({
@@ -4202,8 +4548,8 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
4202
4548
  });
4203
4549
  // CONCATENATED MODULE: ./src/components/ScaffoldVuer.vue?vue&type=script&lang=js&
4204
4550
  /* harmony default export */ var components_ScaffoldVuervue_type_script_lang_js_ = (ScaffoldVuervue_type_script_lang_js_);
4205
- // EXTERNAL MODULE: ./src/components/ScaffoldVuer.vue?vue&type=style&index=0&id=02b8949c&scoped=true&lang=scss&
4206
- var ScaffoldVuervue_type_style_index_0_id_02b8949c_scoped_true_lang_scss_ = __webpack_require__("c5b3");
4551
+ // EXTERNAL MODULE: ./src/components/ScaffoldVuer.vue?vue&type=style&index=0&id=8761aa48&scoped=true&lang=scss&
4552
+ var ScaffoldVuervue_type_style_index_0_id_8761aa48_scoped_true_lang_scss_ = __webpack_require__("3816");
4207
4553
 
4208
4554
  // EXTERNAL MODULE: ./src/components/ScaffoldVuer.vue?vue&type=style&index=1&lang=scss&
4209
4555
  var ScaffoldVuervue_type_style_index_1_lang_scss_ = __webpack_require__("642d");
@@ -4224,7 +4570,7 @@ var ScaffoldVuer_component = normalizeComponent(
4224
4570
  staticRenderFns,
4225
4571
  false,
4226
4572
  null,
4227
- "02b8949c",
4573
+ "8761aa48",
4228
4574
  null
4229
4575
 
4230
4576
  )
@@ -4254,6 +4600,13 @@ module.exports = require("core-js/modules/es.string.includes");
4254
4600
 
4255
4601
  module.exports = require("element-ui/lib/theme-chalk/row.css");
4256
4602
 
4603
+ /***/ }),
4604
+
4605
+ /***/ "fe0e":
4606
+ /***/ (function(module, exports) {
4607
+
4608
+ module.exports = require("core-js/modules/es.array.find");
4609
+
4257
4610
  /***/ })
4258
4611
 
4259
4612
  /******/ });