@abi-software/scaffoldvuer 0.4.0-vue3.5 → 0.4.0-vue3.7

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.
@@ -152,7 +152,7 @@
152
152
  :teleported="true"
153
153
  :model-value="currentSpeed"
154
154
  placeholder="Select"
155
- class="select-box"
155
+ class="scaffold-select-box speed"
156
156
  popper-class="scaffold_viewer_dropdown"
157
157
  @change="speedChanged($event)"
158
158
  >
@@ -268,7 +268,7 @@
268
268
  :teleported="false"
269
269
  v-model="viewingMode"
270
270
  placeholder="Select"
271
- class="select-box viewing-mode"
271
+ class="scaffold-select-box viewing-mode"
272
272
  popper-class="scaffold_viewer_dropdown"
273
273
  >
274
274
  <el-option v-for="item in viewingModes" :key="item" :label="item" :value="item">
@@ -509,13 +509,17 @@ export default {
509
509
  },
510
510
  },
511
511
  /**
512
- * Flag to determine rather open map UI should be
513
- * presented or not.
512
+ * Flag to determine rather the open map UI icon and popup
513
+ * should be shown or not.
514
514
  */
515
515
  enableOpenMapUI: {
516
516
  type: Boolean,
517
517
  default: false,
518
518
  },
519
+ /**
520
+ * This array populate the the openMapOptions popup.
521
+ * Each entry contains a pair of display and key.
522
+ */
519
523
  openMapOptions: {
520
524
  type: Array,
521
525
  default: function () {
@@ -709,6 +713,8 @@ export default {
709
713
  },
710
714
  currentTime: {
711
715
  handler: function () {
716
+ //Emit when time in the current scene has changed
717
+ //@arg Current time in scene
712
718
  this.$emit("timeChanged", this.currentTime);
713
719
  },
714
720
  },
@@ -762,12 +768,17 @@ export default {
762
768
  this.currentTime = this.$module.getCurrentTime();
763
769
  })
764
770
  },
765
- beforeDestroy: function () {
771
+ beforeUnmount: function () {
766
772
  if (this.ro) this.ro.disconnect();
767
773
  this.$module.destroy();
768
774
  this.$module = undefined;
769
775
  },
770
776
  methods: {
777
+ /**
778
+ * @vuese
779
+ * Call this to manually add a zinc object into the current scene
780
+ * @arg Zinc object to be added
781
+ */
771
782
  addZincObject: function (zincObject) {
772
783
  if (this.$module.scene) {
773
784
  this.$module.scene.addZincObject(zincObject);
@@ -776,15 +787,19 @@ export default {
776
787
  }
777
788
  },
778
789
  /**
790
+ * Internal only.
779
791
  * This is called when a new zinc object is read into the scene.
780
792
  */
781
793
  zincObjectAdded: function (zincObject) {
782
794
  this.loading = false;
783
795
  this.$_searchIndex.addZincObject(zincObject, zincObject.uuid);
796
+ //Emit when a new object is added to the scene
797
+ //@arg The object added to the sceene
784
798
  this.$emit("zinc-object-added", zincObject);
785
799
  },
786
800
  /**
787
- *
801
+ * Internal only.
802
+ * Add regions to search index.
788
803
  */
789
804
  addRegionsToSearchIndex: function () {
790
805
  const rootRegion = this.$module.scene.getRootRegion();
@@ -794,6 +809,7 @@ export default {
794
809
  });
795
810
  },
796
811
  /**
812
+ * Internal only.
797
813
  * This is called when Change backgspeedround colour button
798
814
  * is pressed an causes the backgrouColornd colour to be changed
799
815
  * to one of the three preset colour: white, black and
@@ -806,6 +822,7 @@ export default {
806
822
  .setClearColor(this.currentBackground, 1);
807
823
  },
808
824
  /**
825
+ * Internal only.
809
826
  * This is called by captueeScreenshot and after the last render
810
827
  * loop, it download a screenshot of the current scene with no UI.
811
828
  */
@@ -826,11 +843,10 @@ export default {
826
843
  hrefElement.remove();
827
844
  },
828
845
  /**
846
+ * @vuese
829
847
  * Function for capturing a screenshot of the current rendering.
830
848
  *
831
- * @param {String} filename filename given to the screenshot.
832
- *
833
- * @public
849
+ * @arg filename given to the screenshot.
834
850
  */
835
851
  captureScreenshot: function (filename) {
836
852
  this.captureFilename = filename;
@@ -839,9 +855,8 @@ export default {
839
855
  );
840
856
  },
841
857
  /**
858
+ * @vuese
842
859
  * Function to clear current scene, the tree controls and the search index.
843
- *
844
- * @public
845
860
  */
846
861
  clearScene: function () {
847
862
  if (this.$refs.treeControls) this.$refs.treeControls.clear();
@@ -859,10 +874,9 @@ export default {
859
874
  return val ? val.toFixed(2) + " ms" : "0 ms";
860
875
  },
861
876
  /**
877
+ * @vuese
862
878
  * Function to reset the view to default.
863
879
  * Also called when the associated button is pressed.
864
- *
865
- * @public
866
880
  */
867
881
  fitWindow: function () {
868
882
  if (this.$module.scene) {
@@ -870,10 +884,9 @@ export default {
870
884
  }
871
885
  },
872
886
  /**
887
+ * @vuese
873
888
  * Function to zoom in.
874
889
  * Also called when the associated button is pressed.
875
- *
876
- * @public
877
890
  */
878
891
  zoomIn: function () {
879
892
  if (this.$module.scene) {
@@ -884,7 +897,7 @@ export default {
884
897
  * Function to zoom out.
885
898
  * Also called when the associated button is pressed.
886
899
  *
887
- * @public
900
+ * @vuese
888
901
  */
889
902
  zoomOut: function () {
890
903
  if (this.$module.scene) {
@@ -894,7 +907,7 @@ export default {
894
907
  /**
895
908
  * Function to change the current play speed.
896
909
  *
897
- * @public
910
+ * @vuese
898
911
  */
899
912
  speedChanged: function (speed) {
900
913
  this.currentSpeed = speed;
@@ -903,13 +916,19 @@ export default {
903
916
  /**
904
917
  * Function used to stop the free spin
905
918
  *
906
- * @public
919
+ * @vuese
907
920
  */
908
921
  stopFreeSpin: function () {
909
922
  let cameracontrol = this.$module.scene.getZincCameraControls();
910
923
  cameracontrol.stopAutoTumble();
911
924
  this.isTransitioning = false;
912
925
  },
926
+ /**
927
+ * Return a list of obejcts with the provided name.
928
+ * @arg Group name to search.
929
+ *
930
+ * @vuese
931
+ */
913
932
  findObjectsWithGroupName: function (name) {
914
933
  let objects = [];
915
934
  if (name && name != "" && this.$module.scene) {
@@ -918,7 +937,10 @@ export default {
918
937
  return objects;
919
938
  },
920
939
  /**
921
- * Focus on named region
940
+ * Find and and zoom into objects with the provided list of names.
941
+ * @arg List of names
942
+ *
943
+ * @vuese
922
944
  */
923
945
  viewRegion: function (names) {
924
946
  const rootRegion = this.$module.scene.getRootRegion();
@@ -962,6 +984,11 @@ export default {
962
984
  }
963
985
  }
964
986
  },
987
+ /**
988
+ * Return renderer information
989
+ *
990
+ * @vuese
991
+ */
965
992
  getRendererInfo: function () {
966
993
  if (this.$module.zincRenderer) {
967
994
  return this.$module.zincRenderer.getThreeJSRenderer().info;
@@ -972,7 +999,7 @@ export default {
972
999
  * Function used to rotate the scene.
973
1000
  * Also called when the associated button is pressed.
974
1001
  *
975
- * @public
1002
+ * @vuese
976
1003
  */
977
1004
  freeSpin: function () {
978
1005
  if (this.$module.scene) {
@@ -1023,6 +1050,8 @@ export default {
1023
1050
  //Make sure the tooltip is displayed with annotation mode
1024
1051
  this.showRegionTooltipWithAnnotations(event.identifiers, true, true);
1025
1052
  }
1053
+ //Emit when an object is selected
1054
+ //@arg Identifier of selected objects
1026
1055
  this.$emit("scaffold-selected", event.identifiers);
1027
1056
  } else if (event.eventType == 2) {
1028
1057
  if (this.selectedObjects.length === 0) {
@@ -1051,7 +1080,8 @@ export default {
1051
1080
  this.tData.y = event.identifiers[0].coords.y;
1052
1081
  }
1053
1082
  }
1054
- // Triggers when an object has been highlighted
1083
+ //Emit when an object is highlighted
1084
+ //@arg Identifier of selected objects
1055
1085
  this.$emit("scaffold-highlighted", event.identifiers);
1056
1086
  }
1057
1087
  } else if (event.eventType == 3) {
@@ -1069,7 +1099,7 @@ export default {
1069
1099
  /**
1070
1100
  * Get the coordinates of the current selected region.
1071
1101
  *
1072
- * @public
1102
+ * @vuese
1073
1103
  */
1074
1104
  getCoordinatesOfSelected: function () {
1075
1105
  if (this.selectedObjects && this.selectedObjects.length > 0) {
@@ -1082,7 +1112,7 @@ export default {
1082
1112
  * current selected region which will be updated after each render
1083
1113
  * loop.
1084
1114
  *
1085
- * @public
1115
+ * @vuese
1086
1116
  */
1087
1117
  getDynamicSelectedCoordinates: function () {
1088
1118
  return this.$module.selectedScreenCoordinates;
@@ -1094,13 +1124,14 @@ export default {
1094
1124
  let normalizedTime = (event / this.timeMax) * 100;
1095
1125
  if (normalizedTime != this.currentTime) {
1096
1126
  this.$module.updateTime(normalizedTime);
1097
- console.log(this.currentTime)
1098
1127
  }
1099
1128
  },
1100
1129
  /**
1101
1130
  * A callback used by children components. Set the selected zinc object
1102
1131
  *
1103
- * @param {object} object Zinc object
1132
+ * @arg Selected zinc objects
1133
+ * @arg Flag to determine if callback should be triggered when new selection
1134
+ * is made
1104
1135
  */
1105
1136
  objectSelected: function (objects, propagate) {
1106
1137
  this.selectedObjects = objects;
@@ -1112,7 +1143,9 @@ export default {
1112
1143
  /**
1113
1144
  * A callback used by children components. Set the highlighted zinc object
1114
1145
  *
1115
- * @param {object} object Zinc object
1146
+ * @arg Hovered zinc objects
1147
+ * @arg Flag to determine if callback should be triggered when new selection
1148
+ * is made
1116
1149
  */
1117
1150
  objectHovered: function (objects, propagate) {
1118
1151
  this.hoveredObjects = objects;
@@ -1149,9 +1182,10 @@ export default {
1149
1182
  }
1150
1183
  },
1151
1184
  /**
1185
+ * @vuese
1152
1186
  * Start the animation.
1153
1187
  *
1154
- * @param {object} object Zinc object
1188
+ * @arg flag to turn the animation on/off
1155
1189
  */
1156
1190
  play: function (flag) {
1157
1191
  this.$module.playAnimation(flag);
@@ -1160,6 +1194,7 @@ export default {
1160
1194
  //this.hideRegionTooltip();
1161
1195
  },
1162
1196
  /**
1197
+ * @vuese
1163
1198
  * Function to toggle on/off overlay help.
1164
1199
  */
1165
1200
  setHelpMode: function (helpMode) {
@@ -1329,6 +1364,10 @@ export default {
1329
1364
  this.hideRegionTooltip();
1330
1365
  return false;
1331
1366
  },
1367
+ /**
1368
+ * @vuese
1369
+ * Hide the tooltip
1370
+ */
1332
1371
  hideRegionTooltip: function () {
1333
1372
  if (this.$_liveCoordinatesUpdated) {
1334
1373
  this.$module.zincRenderer.removePostRenderCallbackFunction(
@@ -1354,6 +1393,7 @@ export default {
1354
1393
  }
1355
1394
  },
1356
1395
  /**
1396
+ * @vuese
1357
1397
  * Set the marker modes for objects specified by the list of annotations
1358
1398
  */
1359
1399
  setMarkerModeWithAnnotations: function (annotations, mode) {
@@ -1384,6 +1424,13 @@ export default {
1384
1424
  clearTimeout(this.helpTextWait);
1385
1425
  }
1386
1426
  },
1427
+ /**
1428
+ * @vuese
1429
+ *
1430
+ * Search a object and display the tooltip
1431
+ * @arg text to search across
1432
+ * @arg toggle the tooltip if this is set
1433
+ */
1387
1434
  search: function (text, displayLabel) {
1388
1435
  if (this.$_searchIndex) {
1389
1436
  if (text === undefined || text === "" ||
@@ -1418,7 +1465,10 @@ export default {
1418
1465
  return false;
1419
1466
  },
1420
1467
  /**
1421
- * Get the list of suggested terms
1468
+ * @vuese
1469
+ *
1470
+ * Get the list of suggested terms based on the provided term.
1471
+ * This can be used for autocomplete.
1422
1472
  */
1423
1473
  fetchSuggestions: function (term) {
1424
1474
  if (this.$_searchIndex === undefined) return [];
@@ -1472,6 +1522,7 @@ export default {
1472
1522
  this.$module.updateTime(0);
1473
1523
  this.$module.unsetFinishDownloadCallback();
1474
1524
  this.addRegionsToSearchIndex();
1525
+ //Emit when all objects have been loaded
1475
1526
  this.$emit("on-ready");
1476
1527
  this.setMarkers();
1477
1528
  this.isReady = true;
@@ -1481,7 +1532,7 @@ export default {
1481
1532
  * Function used for getting the current states of the scene. This exported states
1482
1533
  * can be imported using the importStates method.
1483
1534
  *
1484
- * @public
1535
+ * @vuese
1485
1536
  */
1486
1537
  getState: function () {
1487
1538
  let state = {
@@ -1502,7 +1553,7 @@ export default {
1502
1553
  * Function used for importing the states of the scene. This exported states
1503
1554
  * can be imported using the read states method.
1504
1555
  *
1505
- * @public
1556
+ * @vuese
1506
1557
  */
1507
1558
  setState: function (state) {
1508
1559
  if (state) {
@@ -1533,6 +1584,12 @@ export default {
1533
1584
  }
1534
1585
  }
1535
1586
  },
1587
+ /**
1588
+ * export current scene in GLTF.
1589
+ * @arg Return in binary form when set to true
1590
+ *
1591
+ * @vuese
1592
+ */
1536
1593
  exportGLTF: function (binary) {
1537
1594
  return this.$module.scene.exportGLTF(binary);
1538
1595
  },
@@ -1541,7 +1598,7 @@ export default {
1541
1598
  * viewport. This function will ignore the state prop and
1542
1599
  * read in the new url.
1543
1600
  *
1544
- * @public
1601
+ * @vuese
1545
1602
  */
1546
1603
  setURLAndState: function (newValue, state) {
1547
1604
  if (newValue != this._currentURL) {
@@ -1587,7 +1644,7 @@ export default {
1587
1644
  * Function used for reading in new scaffold metadata. This function will ignore
1588
1645
  * the state prop and read in the new url.
1589
1646
  *
1590
- * @public
1647
+ * @vuese
1591
1648
  */
1592
1649
  setURL: function (newValue) {
1593
1650
  this.setURLAndState(newValue, undefined);
@@ -1620,6 +1677,11 @@ export default {
1620
1677
  }
1621
1678
  }
1622
1679
  },
1680
+ /**
1681
+ * @vuese
1682
+ *
1683
+ * Force the renderer to resize
1684
+ */
1623
1685
  forceResize: function () {
1624
1686
  if (this.$module.zincRenderer) {
1625
1687
  this.$module.zincRenderer.onWindowResize();
@@ -1630,6 +1692,9 @@ export default {
1630
1692
  if (this.tData.visible) {
1631
1693
  this.showRegionTooltip(this.tData.label, true, true);
1632
1694
  }
1695
+ //Emit when the scene has been transformed due to navigation,
1696
+ //only triggered during syncControl mode
1697
+ //@arg Information on the navigation
1633
1698
  this.$emit("scaffold-navigated", payload);
1634
1699
  },
1635
1700
  /**
@@ -2011,41 +2076,25 @@ export default {
2011
2076
  left: 53px !important;
2012
2077
  }
2013
2078
  }
2014
-
2015
- .select-box {
2079
+ .scaffold-select-box {
2016
2080
  border-radius: 4px;
2017
2081
  border: 1px solid rgb(144, 147, 153);
2018
2082
  background-color: var(--white);
2019
2083
  font-weight: 500;
2020
2084
  color: rgb(48, 49, 51);
2021
- width:60px;
2022
- :deep(.el-select__wrapper) {
2023
- padding: 0px;
2024
- min-height: 26px;
2025
- color: rgb(48, 49, 51);
2026
- }
2027
2085
  &.viewing-mode {
2028
- :deep(.el-select__wrapper) {
2029
- line-height:30px
2030
- }
2086
+ width: 150px!important;
2031
2087
  }
2032
2088
 
2033
- :deep()
2034
- .el-select__selected-item {
2035
- color: $app-primary-color;
2036
- height: 22px;
2037
- border: none;
2038
- font-family: "Asap", sans-serif;
2039
- line-height: 22px;
2040
- &is-focus, &:focus {
2041
- border: 1px solid $app-primary-color;
2089
+ &.speed {
2090
+ margin-left: 8px;
2091
+ width:50px!important;
2092
+ height: 24px;
2093
+ :deep(.el-select__wrapper) {
2094
+ padding: 0;
2095
+ min-height: 24px
2042
2096
  }
2043
2097
  }
2044
-
2045
- :deep(.el-input),
2046
- :deep(.el-input__icon) {
2047
- line-height: 22px;
2048
- }
2049
2098
  }
2050
2099
 
2051
2100
  :deep(.scaffold_viewer_dropdown) {
@@ -2064,7 +2113,6 @@ export default {
2064
2113
  </style>
2065
2114
 
2066
2115
  <style lang="scss">
2067
-
2068
2116
  .scaffold-container {
2069
2117
  --el-color-primary: #8300BF;
2070
2118
  --el-color-primary-light-7: #dab3ec;
@@ -3,12 +3,12 @@
3
3
  <el-header height="30px" class="header">
4
4
  <div>Texture Slides Settings</div>
5
5
  </el-header>
6
- <el-main class="block">
7
- <el-row v-for="(slide, index) in settings" :key="slide.id">
8
- <el-col :offset="0" :span="2">
6
+ <el-main class="slides-block">
7
+ <el-row v-for="(slide, index) in settings" :key="slide.id" class="slide-row">
8
+ <el-col :offset="0" :span="6">
9
9
  <el-select
10
10
  :teleported="false"
11
- :value="slide.direction"
11
+ :model-value="slide.direction"
12
12
  placeholder="Select"
13
13
  class="input-box"
14
14
  popper-class="viewer_dropdown"
@@ -22,7 +22,7 @@
22
22
  />
23
23
  </el-select>
24
24
  </el-col>
25
- <el-col :offset="0" :span="14">
25
+ <el-col :offset="0" :span="10">
26
26
  <el-slider
27
27
  v-model="slide.value"
28
28
  class="my-slider"
@@ -33,7 +33,7 @@
33
33
  @input="modifySlide(slide)"
34
34
  />
35
35
  </el-col>
36
- <el-col :offset="0" :span="3">
36
+ <el-col :offset="0" :span="6">
37
37
  <el-input-number
38
38
  v-model="slide.value"
39
39
  :step="0.01"
@@ -43,20 +43,22 @@
43
43
  class="input-box number-input"
44
44
  />
45
45
  </el-col>
46
- <el-col :offset="2" :span="2">
47
- <i
48
- class="el-icon-close close-icon"
46
+ <el-col :offset="0" :span="2">
47
+ <el-icon
48
+ class="delete-icon"
49
49
  @click="removeSlide(index, slide)"
50
- />
50
+ >
51
+ <el-icon-delete />
52
+ </el-icon>
51
53
  </el-col>
52
54
  </el-row>
53
55
  </el-main>
54
56
  <el-footer height="30px" class="add-slides-text" @click="addNewSlide">
55
57
  <el-row>
56
58
  <el-col :span="2">
57
- <i class="el-icon-plus" />
59
+ <el-icon><el-icon-plus /></el-icon>
58
60
  </el-col>
59
- <el-col :span="10"> Add a new slide </el-col>
61
+ <el-col :span="20"> Add a new slide </el-col>
60
62
  </el-row>
61
63
  </el-footer>
62
64
  </el-container>
@@ -64,6 +66,10 @@
64
66
 
65
67
  <script>
66
68
  /* eslint-disable no-alert, no-console */
69
+ import {
70
+ Delete as ElIconDelete,
71
+ Plus as ElIconPlus,
72
+ } from '@element-plus/icons-vue'
67
73
  import {
68
74
  ElCol as Col,
69
75
  ElContainer as Container,
@@ -91,6 +97,8 @@ export default {
91
97
  Main,
92
98
  Row,
93
99
  Slider,
100
+ ElIconDelete,
101
+ ElIconPlus,
94
102
  },
95
103
  data: function () {
96
104
  return {
@@ -111,13 +119,6 @@ export default {
111
119
  ],
112
120
  };
113
121
  },
114
- watch: {
115
- settings: function () {
116
- if (this.material && this._zincObject) {
117
- this._zincObject.setAlpha(this.material.opacity);
118
- }
119
- },
120
- },
121
122
  mounted: function () {
122
123
  this._zincObject = undefined;
123
124
  },
@@ -143,6 +144,7 @@ export default {
143
144
  }
144
145
  },
145
146
  modifySlide: function (slide) {
147
+ console.log(slide.value)
146
148
  if (slide) {
147
149
  this._zincObject.modifySlideSettings(slide);
148
150
  }
@@ -173,13 +175,11 @@ export default {
173
175
  font-size: 12px;
174
176
  cursor: pointer;
175
177
  pointer-events: auto;
178
+ direction:ltr;
176
179
  }
177
180
 
178
- .display {
179
- width: 44px;
180
- }
181
-
182
- .block {
181
+ .slides-block {
182
+ direction:rtl;
183
183
  pointer-events: auto;
184
184
  &.el-main {
185
185
  padding: 5px;
@@ -194,15 +194,17 @@ export default {
194
194
  }
195
195
  }
196
196
 
197
+ #scroll div{
198
+ direction:ltr;
199
+ }
200
+
197
201
  .my-slider {
198
- width: 109px;
199
202
  top: -6px;
200
- left: 50px;
201
203
  position: relative;
202
204
  }
203
205
 
204
206
  .t-slides-container {
205
- width: 300px;
207
+ width: 250px;
206
208
  height: 250px;
207
209
  border-radius: 4px;
208
210
  border: solid 1px #d8dce6;
@@ -210,54 +212,54 @@ export default {
210
212
  overflow-y: none;
211
213
  }
212
214
 
213
- :deep(.el-slider__bar) {
214
- background-color: $app-primary-color;
215
- }
216
-
217
215
  .input-box {
218
- width: 42px;
216
+ width: 38px;
219
217
  border-radius: 4px;
220
218
  border: 1px solid rgb(144, 147, 153);
221
219
  background-color: var(--white);
222
220
  font-weight: 500;
223
221
  color: rgb(48, 49, 51);
224
222
  margin-left: 8px;
223
+ height: 24px;
225
224
 
226
225
  &.number-input {
227
226
  width: 42px;
228
- :deep(.el-input__inner) {
227
+ :deep(.el-input__wrapper) {
229
228
  padding-left: 0px;
230
229
  padding-right: 0px;
231
230
  }
232
231
  }
233
232
 
234
- :deep(.el-input__inner) {
233
+ :deep(.el-select__wrapper) {
234
+ height: 24px;
235
+ padding: 0;
236
+ min-height: unset;
237
+ }
238
+
239
+ :deep(.el-select__selection) {
235
240
  color: $app-primary-color;
236
241
  height: 22px;
237
- padding-left: 8px;
242
+ padding-left: 4px;
238
243
  padding-right: 8px;
239
244
  border: none;
240
245
  font-family: "Asap", sans-serif;
241
246
  line-height: 22px;
242
247
  }
243
248
 
244
- :deep(.el-input),
245
- :deep(.el-input__icon) {
249
+ :deep(.el-select__suffix),
250
+ :deep(.el-icon) {
246
251
  line-height: 22px;
247
252
  }
248
-
249
- .viewer_dropdown .el-select-dropdown__item {
250
- white-space: nowrap;
251
- color: $app-primary-color;
252
- text-align: left;
253
- font-family: "Asap", sans-serif;
254
- }
255
253
  }
256
254
 
257
- .close-icon {
255
+ .delete-icon {
258
256
  color: $app-primary-color;
259
257
  top: 2px;
260
258
  position: relative;
261
259
  cursor: pointer;
262
260
  }
261
+
262
+ .slide-row {
263
+ direction:ltr;
264
+ }
263
265
  </style>
@@ -132,7 +132,7 @@ export default {
132
132
  },
133
133
  },
134
134
  },
135
- destroyed: function () {
135
+ unmounted: function () {
136
136
  this.sortedPrimitiveGroups = undefined;
137
137
  },
138
138
  methods: {
@@ -16,6 +16,8 @@ declare module 'vue' {
16
16
  ElIcon: typeof import('element-plus/es')['ElIcon']
17
17
  ElIconArrowLeft: typeof import('@element-plus/icons-vue')['ArrowLeft']
18
18
  ElIconArrowRight: typeof import('@element-plus/icons-vue')['ArrowRight']
19
+ ElIconDelete: typeof import('@element-plus/icons-vue')['Delete']
20
+ ElIconPlus: typeof import('@element-plus/icons-vue')['Plus']
19
21
  ElIconWarningFilled: typeof import('@element-plus/icons-vue')['WarningFilled']
20
22
  ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
21
23
  ElMain: typeof import('element-plus/es')['ElMain']