@fleet-frontend/mower-maps 0.2.0-beta.5 → 0.2.0-beta.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.
Files changed (460) hide show
  1. package/dist/config/constants.d.ts.map +1 -0
  2. package/dist/config/edit.d.ts.map +1 -0
  3. package/dist/config/index.d.ts.map +1 -0
  4. package/dist/config/styles.d.ts.map +1 -0
  5. package/dist/context/common.d.ts.map +1 -0
  6. package/dist/context/index.d.ts.map +1 -0
  7. package/dist/{src/context → context}/mapEdit.d.ts +1 -0
  8. package/dist/context/mapEdit.d.ts.map +1 -0
  9. package/dist/{src/context → context}/mapRequest.d.ts.map +1 -1
  10. package/dist/context/svgEdit.d.ts.map +1 -0
  11. package/dist/{src/index.d.ts → index.d.ts} +7 -2
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.esm.js +291 -1952
  14. package/dist/index.js +458 -2097
  15. package/dist/processor/MapDataProcessor.d.ts.map +1 -0
  16. package/dist/processor/PathDataProcessor.d.ts.map +1 -0
  17. package/dist/processor/builder/AntennaDataBuilder.d.ts.map +1 -0
  18. package/dist/processor/builder/BoundaryDataBuilder.d.ts.map +1 -0
  19. package/dist/processor/builder/ChannelDataBuilder.d.ts.map +1 -0
  20. package/dist/processor/builder/ChargingPileDataBuilder.d.ts.map +1 -0
  21. package/dist/processor/builder/ObstacleDataBuilder.d.ts.map +1 -0
  22. package/dist/processor/builder/PathDataBuilder.d.ts.map +1 -0
  23. package/dist/processor/builder/PointDataBuilder.d.ts.map +1 -0
  24. package/dist/processor/builder/SvgElementDataBuilder.d.ts.map +1 -0
  25. package/dist/processor/builder/VisionOffDataBuilder.d.ts.map +1 -0
  26. package/dist/processor/builder/index.d.ts.map +1 -0
  27. package/dist/{src/processor → processor}/index.d.ts +1 -0
  28. package/dist/processor/index.d.ts.map +1 -0
  29. package/dist/processor/unified/BaseData.d.ts.map +1 -0
  30. package/dist/processor/unified/UnifiedMapDataProcessor.d.ts.map +1 -0
  31. package/dist/processor/unified/index.d.ts.map +1 -0
  32. package/dist/processor/unified/initData.d.ts.map +1 -0
  33. package/dist/render/AntennaManager.d.ts.map +1 -0
  34. package/dist/render/BoundaryLabelsManager.d.ts.map +1 -0
  35. package/dist/render/BoundarySvgRender.d.ts.map +1 -0
  36. package/dist/render/ChargingPileManager.d.ts.map +1 -0
  37. package/dist/render/MowerMapOverlay.d.ts.map +1 -0
  38. package/dist/render/MowerMapRenderer.d.ts.map +1 -0
  39. package/dist/render/MowerPositionManager.d.ts.map +1 -0
  40. package/dist/render/Overlay/domHelper.d.ts.map +1 -0
  41. package/dist/render/Overlay/overlay.d.ts.map +1 -0
  42. package/dist/render/Overlay/overlayView.d.ts.map +1 -0
  43. package/dist/render/SvgMapView.d.ts.map +1 -0
  44. package/dist/render/antennas/index.d.ts.map +1 -0
  45. package/dist/render/antennas/useAntennaInfo.d.ts.map +1 -0
  46. package/dist/render/boundaryLabels/index.d.ts.map +1 -0
  47. package/dist/render/boundaryLabels/useBoundaryLabels.d.ts.map +1 -0
  48. package/dist/render/charginPile/index.d.ts.map +1 -0
  49. package/dist/render/charginPile/useChargingPile.d.ts.map +1 -0
  50. package/dist/render/components/CustomModal/index.d.ts.map +1 -0
  51. package/dist/render/components/CutHeightSlider/index.d.ts.map +1 -0
  52. package/dist/render/drag/drag.d.ts.map +1 -0
  53. package/dist/render/drag/index.d.ts.map +1 -0
  54. package/dist/render/drag/rotate.d.ts.map +1 -0
  55. package/dist/render/drag/useDrag.d.ts.map +1 -0
  56. package/dist/render/layers/AntennaLayer.d.ts.map +1 -0
  57. package/dist/render/layers/BaseLayer.d.ts.map +1 -0
  58. package/dist/render/layers/BoundaryBorderLayer.d.ts.map +1 -0
  59. package/dist/render/layers/BoundaryLayer.d.ts.map +1 -0
  60. package/dist/render/layers/ChannelLayer.d.ts.map +1 -0
  61. package/dist/render/layers/ChargingPileLayer.d.ts.map +1 -0
  62. package/dist/render/layers/DrawLayer.d.ts.map +1 -0
  63. package/dist/render/layers/ObstacleLayer.d.ts.map +1 -0
  64. package/dist/render/layers/PathLayer.d.ts.map +1 -0
  65. package/dist/render/layers/PointLayer.d.ts.map +1 -0
  66. package/dist/render/layers/SvgElementLayer.d.ts.map +1 -0
  67. package/dist/render/layers/VisionOffLayer.d.ts.map +1 -0
  68. package/dist/render/layers/index.d.ts.map +1 -0
  69. package/dist/render/layers/types.d.ts.map +1 -0
  70. package/dist/render/mowerPosition/index.d.ts.map +1 -0
  71. package/dist/render/mowerPosition/usePosition.d.ts.map +1 -0
  72. package/dist/render/svgEditMap/components/AddEntry/components/DoodleModal/index.d.ts.map +1 -0
  73. package/dist/render/svgEditMap/components/AddEntry/index.d.ts.map +1 -0
  74. package/dist/render/svgEditMap/components/Crosshair/index.d.ts.map +1 -0
  75. package/dist/render/svgEditMap/components/HandleElementInfo/boundary.d.ts.map +1 -0
  76. package/dist/render/svgEditMap/components/HandleElementInfo/components/DirectionModal/component/MowDirection/DirectLine.d.ts.map +1 -0
  77. package/dist/render/svgEditMap/components/HandleElementInfo/components/DirectionModal/component/MowDirection/index.d.ts.map +1 -0
  78. package/dist/render/svgEditMap/components/HandleElementInfo/components/DirectionModal/component/MowDirection/util.d.ts.map +1 -0
  79. package/dist/render/svgEditMap/components/HandleElementInfo/components/DirectionModal/index.d.ts.map +1 -0
  80. package/dist/render/svgEditMap/components/HandleElementInfo/components/Header/index.d.ts.map +1 -0
  81. package/dist/render/svgEditMap/components/HandleElementInfo/components/HeightModal/index.d.ts.map +1 -0
  82. package/dist/render/svgEditMap/components/HandleElementInfo/components/Item/index.d.ts.map +1 -0
  83. package/dist/render/svgEditMap/components/HandleElementInfo/components/MowingEdgeModal/index.d.ts.map +1 -0
  84. package/dist/render/svgEditMap/components/HandleElementInfo/components/NameEdit/index.d.ts.map +1 -0
  85. package/dist/render/svgEditMap/components/HandleElementInfo/components/NameEdit/nameModal.d.ts.map +1 -0
  86. package/dist/render/svgEditMap/components/HandleElementInfo/components/OtherInfo/index.d.ts.map +1 -0
  87. package/dist/render/svgEditMap/components/HandleElementInfo/components/TimePeriod/index.d.ts.map +1 -0
  88. package/dist/render/svgEditMap/components/HandleElementInfo/doodle.d.ts.map +1 -0
  89. package/dist/render/svgEditMap/components/HandleElementInfo/index.d.ts.map +1 -0
  90. package/dist/render/svgEditMap/components/HandleElementInfo/obstacle.d.ts.map +1 -0
  91. package/dist/render/svgEditMap/components/HandleElementInfo/visionOff.d.ts.map +1 -0
  92. package/dist/render/svgEditMap/components/contants.d.ts.map +1 -0
  93. package/dist/render/svgEditMap/hooks/useCheckElement.d.ts.map +1 -0
  94. package/dist/render/svgEditMap/hooks/useCreateVisionOffElement.d.ts.map +1 -0
  95. package/dist/render/svgEditMap/hooks/useHistoryHandle.d.ts.map +1 -0
  96. package/dist/render/svgEditMap/hooks/usePolygonDrawing.d.ts.map +1 -0
  97. package/dist/{src/render → render}/svgEditMap/index.d.ts +3 -0
  98. package/dist/render/svgEditMap/index.d.ts.map +1 -0
  99. package/dist/render/svgElement/BoundaryElement/index.d.ts.map +1 -0
  100. package/dist/render/svgElement/ChannelClipPath/index.d.ts.map +1 -0
  101. package/dist/render/svgElement/ChannelElement/index.d.ts.map +1 -0
  102. package/dist/render/svgElement/DoodleElement/index.d.ts.map +1 -0
  103. package/dist/render/svgElement/DoodleTransform/index.d.ts.map +1 -0
  104. package/dist/render/svgElement/Gelement/index.d.ts.map +1 -0
  105. package/dist/render/svgElement/Mobile/CreateObstacleElement/coordinateUtils.d.ts.map +1 -0
  106. package/dist/render/svgElement/Mobile/CreateObstacleElement/index.d.ts.map +1 -0
  107. package/dist/render/svgElement/ObstacleElement/index.d.ts.map +1 -0
  108. package/dist/render/svgElement/PolygonELement/components/DistanceLabels.d.ts.map +1 -0
  109. package/dist/render/svgElement/PolygonELement/components/DragDistanceIndicator.d.ts.map +1 -0
  110. package/dist/render/svgElement/PolygonELement/dashPath/index.d.ts.map +1 -0
  111. package/dist/render/svgElement/PolygonELement/index.d.ts.map +1 -0
  112. package/dist/render/svgElement/PolygonELement/vertex/index.d.ts.map +1 -0
  113. package/dist/render/svgElement/TextElement/index.d.ts.map +1 -0
  114. package/dist/render/svgElement/TransformWrapper/DoodleTransformWrapper/DoodleTransformWrapper.d.ts.map +1 -0
  115. package/dist/render/svgElement/TransformWrapper/DoodleTransformWrapper/useDoodleTransform.d.ts.map +1 -0
  116. package/dist/render/svgElement/TransformWrapper/HandleIcon/index.d.ts.map +1 -0
  117. package/dist/render/svgElement/TransformWrapper/VisionOffTransformWrapper/VisionOffTransformWrapper.d.ts.map +1 -0
  118. package/dist/render/svgElement/TransformWrapper/VisionOffTransformWrapper/useVisionOffTransform.d.ts.map +1 -0
  119. package/dist/render/svgElement/VisionOffElement/index.d.ts.map +1 -0
  120. package/dist/render/svgElement/index.d.ts.map +1 -0
  121. package/dist/render/svgMap/index.d.ts.map +1 -0
  122. package/dist/render/svgMap/useSvgMapView.d.ts.map +1 -0
  123. package/dist/store/useCurrentMowingDataStore.d.ts.map +1 -0
  124. package/dist/store/usePartitionDataStore.d.ts.map +1 -0
  125. package/dist/types/antenna.d.ts.map +1 -0
  126. package/dist/types/common.d.ts.map +1 -0
  127. package/dist/types/constants.d.ts.map +1 -0
  128. package/dist/types/edit.d.ts.map +1 -0
  129. package/dist/types/elements.d.ts.map +1 -0
  130. package/dist/types/index.d.ts.map +1 -0
  131. package/dist/types/layers.d.ts.map +1 -0
  132. package/dist/types/map.d.ts.map +1 -0
  133. package/dist/types/path.d.ts.map +1 -0
  134. package/dist/types/processor.d.ts.map +1 -0
  135. package/dist/types/realTime.d.ts.map +1 -0
  136. package/dist/{src/types → types}/renderer.d.ts +1 -0
  137. package/dist/types/renderer.d.ts.map +1 -0
  138. package/dist/types/store.d.ts.map +1 -0
  139. package/dist/types/ui.d.ts.map +1 -0
  140. package/dist/types/utils.d.ts.map +1 -0
  141. package/dist/utils/boundaryUtils.d.ts.map +1 -0
  142. package/dist/utils/common.d.ts.map +1 -0
  143. package/dist/utils/coordinates.d.ts.map +1 -0
  144. package/dist/utils/dateTimeUtils.d.ts.map +1 -0
  145. package/dist/utils/display.d.ts.map +1 -0
  146. package/dist/utils/formatUtils.d.ts.map +1 -0
  147. package/dist/utils/geometryUtils.d.ts.map +1 -0
  148. package/dist/utils/handleRealTime.d.ts.map +1 -0
  149. package/dist/utils/index.d.ts.map +1 -0
  150. package/dist/utils/mapBounds.d.ts.map +1 -0
  151. package/dist/utils/math.d.ts.map +1 -0
  152. package/dist/utils/mower.d.ts.map +1 -0
  153. package/dist/utils/pathSegments.d.ts.map +1 -0
  154. package/dist/utils/pointInBoundary.d.ts.map +1 -0
  155. package/dist/utils/sleep.d.ts.map +1 -0
  156. package/dist/utils/svgParserNative.d.ts.map +1 -0
  157. package/dist/utils/svgTransform.d.ts.map +1 -0
  158. package/dist/utils/touchEvents.d.ts.map +1 -0
  159. package/dist/utils/unionFind.d.ts.map +1 -0
  160. package/package.json +1 -1
  161. package/dist/dev/components/AddPonit/index.d.ts +0 -35
  162. package/dist/dev/components/AddPonit/index.d.ts.map +0 -1
  163. package/dist/src/config/constants.d.ts.map +0 -1
  164. package/dist/src/config/edit.d.ts.map +0 -1
  165. package/dist/src/config/index.d.ts.map +0 -1
  166. package/dist/src/config/styles.d.ts.map +0 -1
  167. package/dist/src/context/common.d.ts.map +0 -1
  168. package/dist/src/context/index.d.ts.map +0 -1
  169. package/dist/src/context/mapEdit.d.ts.map +0 -1
  170. package/dist/src/context/svgEdit.d.ts.map +0 -1
  171. package/dist/src/index.d.ts.map +0 -1
  172. package/dist/src/processor/MapDataProcessor.d.ts.map +0 -1
  173. package/dist/src/processor/PathDataProcessor.d.ts.map +0 -1
  174. package/dist/src/processor/builder/AntennaDataBuilder.d.ts.map +0 -1
  175. package/dist/src/processor/builder/BoundaryDataBuilder.d.ts.map +0 -1
  176. package/dist/src/processor/builder/ChannelDataBuilder.d.ts.map +0 -1
  177. package/dist/src/processor/builder/ChargingPileDataBuilder.d.ts.map +0 -1
  178. package/dist/src/processor/builder/ObstacleDataBuilder.d.ts.map +0 -1
  179. package/dist/src/processor/builder/PathDataBuilder.d.ts.map +0 -1
  180. package/dist/src/processor/builder/PointDataBuilder.d.ts.map +0 -1
  181. package/dist/src/processor/builder/SvgElementDataBuilder.d.ts.map +0 -1
  182. package/dist/src/processor/builder/VisionOffDataBuilder.d.ts.map +0 -1
  183. package/dist/src/processor/builder/index.d.ts.map +0 -1
  184. package/dist/src/processor/index.d.ts.map +0 -1
  185. package/dist/src/processor/unified/BaseData.d.ts.map +0 -1
  186. package/dist/src/processor/unified/UnifiedMapDataProcessor.d.ts.map +0 -1
  187. package/dist/src/processor/unified/index.d.ts.map +0 -1
  188. package/dist/src/processor/unified/initData.d.ts.map +0 -1
  189. package/dist/src/render/AntennaManager.d.ts.map +0 -1
  190. package/dist/src/render/BoundaryLabelsManager.d.ts.map +0 -1
  191. package/dist/src/render/BoundarySvgRender.d.ts.map +0 -1
  192. package/dist/src/render/ChargingPileManager.d.ts.map +0 -1
  193. package/dist/src/render/MowerMapOverlay.d.ts.map +0 -1
  194. package/dist/src/render/MowerMapRenderer.d.ts.map +0 -1
  195. package/dist/src/render/MowerPositionManager.d.ts.map +0 -1
  196. package/dist/src/render/Overlay/domHelper.d.ts.map +0 -1
  197. package/dist/src/render/Overlay/overlay.d.ts.map +0 -1
  198. package/dist/src/render/Overlay/overlayView.d.ts.map +0 -1
  199. package/dist/src/render/SvgMapView.d.ts.map +0 -1
  200. package/dist/src/render/antennas/index.d.ts.map +0 -1
  201. package/dist/src/render/antennas/useAntennaInfo.d.ts.map +0 -1
  202. package/dist/src/render/boundaryLabels/index.d.ts.map +0 -1
  203. package/dist/src/render/boundaryLabels/useBoundaryLabels.d.ts.map +0 -1
  204. package/dist/src/render/charginPile/index.d.ts.map +0 -1
  205. package/dist/src/render/charginPile/useChargingPile.d.ts.map +0 -1
  206. package/dist/src/render/components/CustomModal/index.d.ts.map +0 -1
  207. package/dist/src/render/components/CutHeightSlider/index.d.ts.map +0 -1
  208. package/dist/src/render/drag/drag.d.ts.map +0 -1
  209. package/dist/src/render/drag/index.d.ts.map +0 -1
  210. package/dist/src/render/drag/rotate.d.ts.map +0 -1
  211. package/dist/src/render/drag/useDrag.d.ts.map +0 -1
  212. package/dist/src/render/layers/AntennaLayer.d.ts.map +0 -1
  213. package/dist/src/render/layers/BaseLayer.d.ts.map +0 -1
  214. package/dist/src/render/layers/BoundaryBorderLayer.d.ts.map +0 -1
  215. package/dist/src/render/layers/BoundaryLayer.d.ts.map +0 -1
  216. package/dist/src/render/layers/ChannelLayer.d.ts.map +0 -1
  217. package/dist/src/render/layers/ChargingPileLayer.d.ts.map +0 -1
  218. package/dist/src/render/layers/DrawLayer.d.ts.map +0 -1
  219. package/dist/src/render/layers/ObstacleLayer.d.ts.map +0 -1
  220. package/dist/src/render/layers/PathLayer.d.ts.map +0 -1
  221. package/dist/src/render/layers/PointLayer.d.ts.map +0 -1
  222. package/dist/src/render/layers/SvgElementLayer.d.ts.map +0 -1
  223. package/dist/src/render/layers/VisionOffLayer.d.ts.map +0 -1
  224. package/dist/src/render/layers/index.d.ts.map +0 -1
  225. package/dist/src/render/layers/types.d.ts.map +0 -1
  226. package/dist/src/render/mowerPosition/index.d.ts.map +0 -1
  227. package/dist/src/render/mowerPosition/usePosition.d.ts.map +0 -1
  228. package/dist/src/render/svgEditMap/components/AddEntry/components/DoodleModal/index.d.ts.map +0 -1
  229. package/dist/src/render/svgEditMap/components/AddEntry/index.d.ts.map +0 -1
  230. package/dist/src/render/svgEditMap/components/Crosshair/index.d.ts.map +0 -1
  231. package/dist/src/render/svgEditMap/components/HandleElementInfo/boundary.d.ts.map +0 -1
  232. package/dist/src/render/svgEditMap/components/HandleElementInfo/components/DirectionModal/component/MowDirection/DirectLine.d.ts.map +0 -1
  233. package/dist/src/render/svgEditMap/components/HandleElementInfo/components/DirectionModal/component/MowDirection/index.d.ts.map +0 -1
  234. package/dist/src/render/svgEditMap/components/HandleElementInfo/components/DirectionModal/component/MowDirection/util.d.ts.map +0 -1
  235. package/dist/src/render/svgEditMap/components/HandleElementInfo/components/DirectionModal/index.d.ts.map +0 -1
  236. package/dist/src/render/svgEditMap/components/HandleElementInfo/components/Header/index.d.ts.map +0 -1
  237. package/dist/src/render/svgEditMap/components/HandleElementInfo/components/HeightModal/index.d.ts.map +0 -1
  238. package/dist/src/render/svgEditMap/components/HandleElementInfo/components/Item/index.d.ts.map +0 -1
  239. package/dist/src/render/svgEditMap/components/HandleElementInfo/components/MowingEdgeModal/index.d.ts.map +0 -1
  240. package/dist/src/render/svgEditMap/components/HandleElementInfo/components/NameEdit/index.d.ts.map +0 -1
  241. package/dist/src/render/svgEditMap/components/HandleElementInfo/components/NameEdit/nameModal.d.ts.map +0 -1
  242. package/dist/src/render/svgEditMap/components/HandleElementInfo/components/OtherInfo/index.d.ts.map +0 -1
  243. package/dist/src/render/svgEditMap/components/HandleElementInfo/components/TimePeriod/index.d.ts.map +0 -1
  244. package/dist/src/render/svgEditMap/components/HandleElementInfo/doodle.d.ts.map +0 -1
  245. package/dist/src/render/svgEditMap/components/HandleElementInfo/index.d.ts.map +0 -1
  246. package/dist/src/render/svgEditMap/components/HandleElementInfo/obstacle.d.ts.map +0 -1
  247. package/dist/src/render/svgEditMap/components/HandleElementInfo/visionOff.d.ts.map +0 -1
  248. package/dist/src/render/svgEditMap/components/contants.d.ts.map +0 -1
  249. package/dist/src/render/svgEditMap/hooks/useCheckElement.d.ts.map +0 -1
  250. package/dist/src/render/svgEditMap/hooks/useCreateVisionOffElement.d.ts.map +0 -1
  251. package/dist/src/render/svgEditMap/hooks/useHistoryHandle.d.ts.map +0 -1
  252. package/dist/src/render/svgEditMap/hooks/usePolygonDrawing.d.ts.map +0 -1
  253. package/dist/src/render/svgEditMap/index.d.ts.map +0 -1
  254. package/dist/src/render/svgElement/BoundaryElement/index.d.ts.map +0 -1
  255. package/dist/src/render/svgElement/ChannelClipPath/index.d.ts.map +0 -1
  256. package/dist/src/render/svgElement/ChannelElement/index.d.ts.map +0 -1
  257. package/dist/src/render/svgElement/DoodleElement/index.d.ts.map +0 -1
  258. package/dist/src/render/svgElement/DoodleTransform/index.d.ts.map +0 -1
  259. package/dist/src/render/svgElement/Gelement/index.d.ts.map +0 -1
  260. package/dist/src/render/svgElement/Mobile/CreateObstacleElement/coordinateUtils.d.ts.map +0 -1
  261. package/dist/src/render/svgElement/Mobile/CreateObstacleElement/index.d.ts.map +0 -1
  262. package/dist/src/render/svgElement/ObstacleElement/index.d.ts.map +0 -1
  263. package/dist/src/render/svgElement/PolygonELement/components/DistanceLabels.d.ts.map +0 -1
  264. package/dist/src/render/svgElement/PolygonELement/components/DragDistanceIndicator.d.ts.map +0 -1
  265. package/dist/src/render/svgElement/PolygonELement/dashPath/index.d.ts.map +0 -1
  266. package/dist/src/render/svgElement/PolygonELement/index.d.ts.map +0 -1
  267. package/dist/src/render/svgElement/PolygonELement/vertex/index.d.ts.map +0 -1
  268. package/dist/src/render/svgElement/TextElement/index.d.ts.map +0 -1
  269. package/dist/src/render/svgElement/TransformWrapper/DoodleTransformWrapper/DoodleTransformWrapper.d.ts.map +0 -1
  270. package/dist/src/render/svgElement/TransformWrapper/DoodleTransformWrapper/useDoodleTransform.d.ts.map +0 -1
  271. package/dist/src/render/svgElement/TransformWrapper/HandleIcon/index.d.ts.map +0 -1
  272. package/dist/src/render/svgElement/TransformWrapper/VisionOffTransformWrapper/VisionOffTransformWrapper.d.ts.map +0 -1
  273. package/dist/src/render/svgElement/TransformWrapper/VisionOffTransformWrapper/useVisionOffTransform.d.ts.map +0 -1
  274. package/dist/src/render/svgElement/VisionOffElement/index.d.ts.map +0 -1
  275. package/dist/src/render/svgElement/index.d.ts.map +0 -1
  276. package/dist/src/render/svgMap/index.d.ts.map +0 -1
  277. package/dist/src/render/svgMap/useSvgMapView.d.ts.map +0 -1
  278. package/dist/src/store/useCurrentMowingDataStore.d.ts.map +0 -1
  279. package/dist/src/store/usePartitionDataStore.d.ts.map +0 -1
  280. package/dist/src/types/antenna.d.ts.map +0 -1
  281. package/dist/src/types/common.d.ts.map +0 -1
  282. package/dist/src/types/constants.d.ts.map +0 -1
  283. package/dist/src/types/edit.d.ts.map +0 -1
  284. package/dist/src/types/elements.d.ts.map +0 -1
  285. package/dist/src/types/index.d.ts.map +0 -1
  286. package/dist/src/types/layers.d.ts.map +0 -1
  287. package/dist/src/types/map.d.ts.map +0 -1
  288. package/dist/src/types/path.d.ts.map +0 -1
  289. package/dist/src/types/processor.d.ts.map +0 -1
  290. package/dist/src/types/realTime.d.ts.map +0 -1
  291. package/dist/src/types/renderer.d.ts.map +0 -1
  292. package/dist/src/types/store.d.ts.map +0 -1
  293. package/dist/src/types/ui.d.ts.map +0 -1
  294. package/dist/src/types/utils.d.ts.map +0 -1
  295. package/dist/src/utils/boundaryUtils.d.ts.map +0 -1
  296. package/dist/src/utils/common.d.ts.map +0 -1
  297. package/dist/src/utils/coordinates.d.ts.map +0 -1
  298. package/dist/src/utils/dateTimeUtils.d.ts.map +0 -1
  299. package/dist/src/utils/display.d.ts.map +0 -1
  300. package/dist/src/utils/formatUtils.d.ts.map +0 -1
  301. package/dist/src/utils/geometryUtils.d.ts.map +0 -1
  302. package/dist/src/utils/handleRealTime.d.ts.map +0 -1
  303. package/dist/src/utils/index.d.ts.map +0 -1
  304. package/dist/src/utils/mapBounds.d.ts.map +0 -1
  305. package/dist/src/utils/math.d.ts.map +0 -1
  306. package/dist/src/utils/mower.d.ts.map +0 -1
  307. package/dist/src/utils/pathSegments.d.ts.map +0 -1
  308. package/dist/src/utils/pointInBoundary.d.ts.map +0 -1
  309. package/dist/src/utils/sleep.d.ts.map +0 -1
  310. package/dist/src/utils/svgParserNative.d.ts.map +0 -1
  311. package/dist/src/utils/svgTransform.d.ts.map +0 -1
  312. package/dist/src/utils/touchEvents.d.ts.map +0 -1
  313. package/dist/src/utils/unionFind.d.ts.map +0 -1
  314. /package/dist/{src/config → config}/constants.d.ts +0 -0
  315. /package/dist/{src/config → config}/edit.d.ts +0 -0
  316. /package/dist/{src/config → config}/index.d.ts +0 -0
  317. /package/dist/{src/config → config}/styles.d.ts +0 -0
  318. /package/dist/{src/context → context}/common.d.ts +0 -0
  319. /package/dist/{src/context → context}/index.d.ts +0 -0
  320. /package/dist/{src/context → context}/mapRequest.d.ts +0 -0
  321. /package/dist/{src/context → context}/svgEdit.d.ts +0 -0
  322. /package/dist/{src/processor → processor}/MapDataProcessor.d.ts +0 -0
  323. /package/dist/{src/processor → processor}/PathDataProcessor.d.ts +0 -0
  324. /package/dist/{src/processor → processor}/builder/AntennaDataBuilder.d.ts +0 -0
  325. /package/dist/{src/processor → processor}/builder/BoundaryDataBuilder.d.ts +0 -0
  326. /package/dist/{src/processor → processor}/builder/ChannelDataBuilder.d.ts +0 -0
  327. /package/dist/{src/processor → processor}/builder/ChargingPileDataBuilder.d.ts +0 -0
  328. /package/dist/{src/processor → processor}/builder/ObstacleDataBuilder.d.ts +0 -0
  329. /package/dist/{src/processor → processor}/builder/PathDataBuilder.d.ts +0 -0
  330. /package/dist/{src/processor → processor}/builder/PointDataBuilder.d.ts +0 -0
  331. /package/dist/{src/processor → processor}/builder/SvgElementDataBuilder.d.ts +0 -0
  332. /package/dist/{src/processor → processor}/builder/VisionOffDataBuilder.d.ts +0 -0
  333. /package/dist/{src/processor → processor}/builder/index.d.ts +0 -0
  334. /package/dist/{src/processor → processor}/unified/BaseData.d.ts +0 -0
  335. /package/dist/{src/processor → processor}/unified/UnifiedMapDataProcessor.d.ts +0 -0
  336. /package/dist/{src/processor → processor}/unified/index.d.ts +0 -0
  337. /package/dist/{src/processor → processor}/unified/initData.d.ts +0 -0
  338. /package/dist/{src/render → render}/AntennaManager.d.ts +0 -0
  339. /package/dist/{src/render → render}/BoundaryLabelsManager.d.ts +0 -0
  340. /package/dist/{src/render → render}/BoundarySvgRender.d.ts +0 -0
  341. /package/dist/{src/render → render}/ChargingPileManager.d.ts +0 -0
  342. /package/dist/{src/render → render}/MowerMapOverlay.d.ts +0 -0
  343. /package/dist/{src/render → render}/MowerMapRenderer.d.ts +0 -0
  344. /package/dist/{src/render → render}/MowerPositionManager.d.ts +0 -0
  345. /package/dist/{src/render → render}/Overlay/domHelper.d.ts +0 -0
  346. /package/dist/{src/render → render}/Overlay/overlay.d.ts +0 -0
  347. /package/dist/{src/render → render}/Overlay/overlayView.d.ts +0 -0
  348. /package/dist/{src/render → render}/SvgMapView.d.ts +0 -0
  349. /package/dist/{src/render → render}/antennas/index.d.ts +0 -0
  350. /package/dist/{src/render → render}/antennas/useAntennaInfo.d.ts +0 -0
  351. /package/dist/{src/render → render}/boundaryLabels/index.d.ts +0 -0
  352. /package/dist/{src/render → render}/boundaryLabels/useBoundaryLabels.d.ts +0 -0
  353. /package/dist/{src/render → render}/charginPile/index.d.ts +0 -0
  354. /package/dist/{src/render → render}/charginPile/useChargingPile.d.ts +0 -0
  355. /package/dist/{src/render → render}/components/CustomModal/index.d.ts +0 -0
  356. /package/dist/{src/render → render}/components/CutHeightSlider/index.d.ts +0 -0
  357. /package/dist/{src/render → render}/drag/drag.d.ts +0 -0
  358. /package/dist/{src/render → render}/drag/index.d.ts +0 -0
  359. /package/dist/{src/render → render}/drag/rotate.d.ts +0 -0
  360. /package/dist/{src/render → render}/drag/useDrag.d.ts +0 -0
  361. /package/dist/{src/render → render}/layers/AntennaLayer.d.ts +0 -0
  362. /package/dist/{src/render → render}/layers/BaseLayer.d.ts +0 -0
  363. /package/dist/{src/render → render}/layers/BoundaryBorderLayer.d.ts +0 -0
  364. /package/dist/{src/render → render}/layers/BoundaryLayer.d.ts +0 -0
  365. /package/dist/{src/render → render}/layers/ChannelLayer.d.ts +0 -0
  366. /package/dist/{src/render → render}/layers/ChargingPileLayer.d.ts +0 -0
  367. /package/dist/{src/render → render}/layers/DrawLayer.d.ts +0 -0
  368. /package/dist/{src/render → render}/layers/ObstacleLayer.d.ts +0 -0
  369. /package/dist/{src/render → render}/layers/PathLayer.d.ts +0 -0
  370. /package/dist/{src/render → render}/layers/PointLayer.d.ts +0 -0
  371. /package/dist/{src/render → render}/layers/SvgElementLayer.d.ts +0 -0
  372. /package/dist/{src/render → render}/layers/VisionOffLayer.d.ts +0 -0
  373. /package/dist/{src/render → render}/layers/index.d.ts +0 -0
  374. /package/dist/{src/render → render}/layers/types.d.ts +0 -0
  375. /package/dist/{src/render → render}/mowerPosition/index.d.ts +0 -0
  376. /package/dist/{src/render → render}/mowerPosition/usePosition.d.ts +0 -0
  377. /package/dist/{src/render → render}/svgEditMap/components/AddEntry/components/DoodleModal/index.d.ts +0 -0
  378. /package/dist/{src/render → render}/svgEditMap/components/AddEntry/index.d.ts +0 -0
  379. /package/dist/{src/render → render}/svgEditMap/components/Crosshair/index.d.ts +0 -0
  380. /package/dist/{src/render → render}/svgEditMap/components/HandleElementInfo/boundary.d.ts +0 -0
  381. /package/dist/{src/render → render}/svgEditMap/components/HandleElementInfo/components/DirectionModal/component/MowDirection/DirectLine.d.ts +0 -0
  382. /package/dist/{src/render → render}/svgEditMap/components/HandleElementInfo/components/DirectionModal/component/MowDirection/index.d.ts +0 -0
  383. /package/dist/{src/render → render}/svgEditMap/components/HandleElementInfo/components/DirectionModal/component/MowDirection/util.d.ts +0 -0
  384. /package/dist/{src/render → render}/svgEditMap/components/HandleElementInfo/components/DirectionModal/index.d.ts +0 -0
  385. /package/dist/{src/render → render}/svgEditMap/components/HandleElementInfo/components/Header/index.d.ts +0 -0
  386. /package/dist/{src/render → render}/svgEditMap/components/HandleElementInfo/components/HeightModal/index.d.ts +0 -0
  387. /package/dist/{src/render → render}/svgEditMap/components/HandleElementInfo/components/Item/index.d.ts +0 -0
  388. /package/dist/{src/render → render}/svgEditMap/components/HandleElementInfo/components/MowingEdgeModal/index.d.ts +0 -0
  389. /package/dist/{src/render → render}/svgEditMap/components/HandleElementInfo/components/NameEdit/index.d.ts +0 -0
  390. /package/dist/{src/render → render}/svgEditMap/components/HandleElementInfo/components/NameEdit/nameModal.d.ts +0 -0
  391. /package/dist/{src/render → render}/svgEditMap/components/HandleElementInfo/components/OtherInfo/index.d.ts +0 -0
  392. /package/dist/{src/render → render}/svgEditMap/components/HandleElementInfo/components/TimePeriod/index.d.ts +0 -0
  393. /package/dist/{src/render → render}/svgEditMap/components/HandleElementInfo/doodle.d.ts +0 -0
  394. /package/dist/{src/render → render}/svgEditMap/components/HandleElementInfo/index.d.ts +0 -0
  395. /package/dist/{src/render → render}/svgEditMap/components/HandleElementInfo/obstacle.d.ts +0 -0
  396. /package/dist/{src/render → render}/svgEditMap/components/HandleElementInfo/visionOff.d.ts +0 -0
  397. /package/dist/{src/render → render}/svgEditMap/components/contants.d.ts +0 -0
  398. /package/dist/{src/render → render}/svgEditMap/hooks/useCheckElement.d.ts +0 -0
  399. /package/dist/{src/render → render}/svgEditMap/hooks/useCreateVisionOffElement.d.ts +0 -0
  400. /package/dist/{src/render → render}/svgEditMap/hooks/useHistoryHandle.d.ts +0 -0
  401. /package/dist/{src/render → render}/svgEditMap/hooks/usePolygonDrawing.d.ts +0 -0
  402. /package/dist/{src/render → render}/svgElement/BoundaryElement/index.d.ts +0 -0
  403. /package/dist/{src/render → render}/svgElement/ChannelClipPath/index.d.ts +0 -0
  404. /package/dist/{src/render → render}/svgElement/ChannelElement/index.d.ts +0 -0
  405. /package/dist/{src/render → render}/svgElement/DoodleElement/index.d.ts +0 -0
  406. /package/dist/{src/render → render}/svgElement/DoodleTransform/index.d.ts +0 -0
  407. /package/dist/{src/render → render}/svgElement/Gelement/index.d.ts +0 -0
  408. /package/dist/{src/render → render}/svgElement/Mobile/CreateObstacleElement/coordinateUtils.d.ts +0 -0
  409. /package/dist/{src/render → render}/svgElement/Mobile/CreateObstacleElement/index.d.ts +0 -0
  410. /package/dist/{src/render → render}/svgElement/ObstacleElement/index.d.ts +0 -0
  411. /package/dist/{src/render → render}/svgElement/PolygonELement/components/DistanceLabels.d.ts +0 -0
  412. /package/dist/{src/render → render}/svgElement/PolygonELement/components/DragDistanceIndicator.d.ts +0 -0
  413. /package/dist/{src/render → render}/svgElement/PolygonELement/dashPath/index.d.ts +0 -0
  414. /package/dist/{src/render → render}/svgElement/PolygonELement/index.d.ts +0 -0
  415. /package/dist/{src/render → render}/svgElement/PolygonELement/vertex/index.d.ts +0 -0
  416. /package/dist/{src/render → render}/svgElement/TextElement/index.d.ts +0 -0
  417. /package/dist/{src/render → render}/svgElement/TransformWrapper/DoodleTransformWrapper/DoodleTransformWrapper.d.ts +0 -0
  418. /package/dist/{src/render → render}/svgElement/TransformWrapper/DoodleTransformWrapper/useDoodleTransform.d.ts +0 -0
  419. /package/dist/{src/render → render}/svgElement/TransformWrapper/HandleIcon/index.d.ts +0 -0
  420. /package/dist/{src/render → render}/svgElement/TransformWrapper/VisionOffTransformWrapper/VisionOffTransformWrapper.d.ts +0 -0
  421. /package/dist/{src/render → render}/svgElement/TransformWrapper/VisionOffTransformWrapper/useVisionOffTransform.d.ts +0 -0
  422. /package/dist/{src/render → render}/svgElement/VisionOffElement/index.d.ts +0 -0
  423. /package/dist/{src/render → render}/svgElement/index.d.ts +0 -0
  424. /package/dist/{src/render → render}/svgMap/index.d.ts +0 -0
  425. /package/dist/{src/render → render}/svgMap/useSvgMapView.d.ts +0 -0
  426. /package/dist/{src/store → store}/useCurrentMowingDataStore.d.ts +0 -0
  427. /package/dist/{src/store → store}/usePartitionDataStore.d.ts +0 -0
  428. /package/dist/{src/types → types}/antenna.d.ts +0 -0
  429. /package/dist/{src/types → types}/common.d.ts +0 -0
  430. /package/dist/{src/types → types}/constants.d.ts +0 -0
  431. /package/dist/{src/types → types}/edit.d.ts +0 -0
  432. /package/dist/{src/types → types}/elements.d.ts +0 -0
  433. /package/dist/{src/types → types}/index.d.ts +0 -0
  434. /package/dist/{src/types → types}/layers.d.ts +0 -0
  435. /package/dist/{src/types → types}/map.d.ts +0 -0
  436. /package/dist/{src/types → types}/path.d.ts +0 -0
  437. /package/dist/{src/types → types}/processor.d.ts +0 -0
  438. /package/dist/{src/types → types}/realTime.d.ts +0 -0
  439. /package/dist/{src/types → types}/store.d.ts +0 -0
  440. /package/dist/{src/types → types}/ui.d.ts +0 -0
  441. /package/dist/{src/types → types}/utils.d.ts +0 -0
  442. /package/dist/{src/utils → utils}/boundaryUtils.d.ts +0 -0
  443. /package/dist/{src/utils → utils}/common.d.ts +0 -0
  444. /package/dist/{src/utils → utils}/coordinates.d.ts +0 -0
  445. /package/dist/{src/utils → utils}/dateTimeUtils.d.ts +0 -0
  446. /package/dist/{src/utils → utils}/display.d.ts +0 -0
  447. /package/dist/{src/utils → utils}/formatUtils.d.ts +0 -0
  448. /package/dist/{src/utils → utils}/geometryUtils.d.ts +0 -0
  449. /package/dist/{src/utils → utils}/handleRealTime.d.ts +0 -0
  450. /package/dist/{src/utils → utils}/index.d.ts +0 -0
  451. /package/dist/{src/utils → utils}/mapBounds.d.ts +0 -0
  452. /package/dist/{src/utils → utils}/math.d.ts +0 -0
  453. /package/dist/{src/utils → utils}/mower.d.ts +0 -0
  454. /package/dist/{src/utils → utils}/pathSegments.d.ts +0 -0
  455. /package/dist/{src/utils → utils}/pointInBoundary.d.ts +0 -0
  456. /package/dist/{src/utils → utils}/sleep.d.ts +0 -0
  457. /package/dist/{src/utils → utils}/svgParserNative.d.ts +0 -0
  458. /package/dist/{src/utils → utils}/svgTransform.d.ts +0 -0
  459. /package/dist/{src/utils → utils}/touchEvents.d.ts +0 -0
  460. /package/dist/{src/utils → utils}/unionFind.d.ts +0 -0
package/dist/index.js CHANGED
@@ -3,7 +3,6 @@
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var React = require('react');
5
5
  var ReactDOM = require('react-dom');
6
- var antd = require('antd');
7
6
 
8
7
  function _interopNamespaceDefault(e) {
9
8
  var n = Object.create(null);
@@ -137,7 +136,7 @@ const MAX_DIRECTION_ANGLE = 15;
137
136
  /**
138
137
  * 数据类型枚举
139
138
  */
140
- var DataType;
139
+ exports.DataType = void 0;
141
140
  (function (DataType) {
142
141
  DataType["BOUNDARY"] = "boundary";
143
142
  DataType["CHANNEL"] = "channel";
@@ -147,17 +146,17 @@ var DataType;
147
146
  DataType["VISION_OFF"] = "visionOff";
148
147
  DataType["ANTENNA"] = "antenna";
149
148
  DataType["CHARGING_PILE"] = "chargingPile";
150
- })(DataType || (DataType = {}));
149
+ })(exports.DataType || (exports.DataType = {}));
151
150
  /**
152
151
  * 渲染类型枚举
153
152
  */
154
- var RenderType;
153
+ exports.RenderType = void 0;
155
154
  (function (RenderType) {
156
155
  RenderType["POINT"] = "point";
157
156
  RenderType["POLYGON"] = "polygon";
158
157
  RenderType["LINE"] = "line";
159
158
  RenderType["SVG"] = "svg";
160
- })(RenderType || (RenderType = {}));
159
+ })(exports.RenderType || (exports.RenderType = {}));
161
160
  /**
162
161
  * 基础数据类
163
162
  */
@@ -178,7 +177,7 @@ class BoundaryData extends BaseData {
178
177
  constructor(originalData, level, channels, style) {
179
178
  console.log('originBoundary', originalData);
180
179
  const convertedPoints = convertPointsFormat(originalData?.points) || [];
181
- super(originalData?.id, DataType.BOUNDARY, level, RenderType.POLYGON, convertedPoints, originalData);
180
+ super(originalData?.id, exports.DataType.BOUNDARY, level, exports.RenderType.POLYGON, convertedPoints, originalData);
182
181
  const { isFlowGlobal, cuttingHeight } = convertHeightsetToParams(originalData?.height_set || 0);
183
182
  this.area = originalData?.area;
184
183
  this.name = originalData?.name;
@@ -200,7 +199,7 @@ class BoundaryData extends BaseData {
200
199
  class ChannelData extends BaseData {
201
200
  constructor(originalData, level, connectedBoundaries, isChargingPileTunnel, style) {
202
201
  const convertedPoints = convertPointsFormat(originalData?.points) || [];
203
- super(originalData?.id, DataType.CHANNEL, level, RenderType.LINE, convertedPoints, originalData);
202
+ super(originalData?.id, exports.DataType.CHANNEL, level, exports.RenderType.LINE, convertedPoints, originalData);
204
203
  this.connectedBoundaries = connectedBoundaries;
205
204
  this.isChargingPileTunnel = isChargingPileTunnel;
206
205
  this.style = style;
@@ -212,9 +211,9 @@ class ChannelData extends BaseData {
212
211
  class ObstacleData extends BaseData {
213
212
  constructor(originalData, level, style) {
214
213
  const convertedPoints = convertPointsFormat(originalData?.points) || [];
215
- super(originalData?.id, DataType.OBSTACLE, level, RenderType.POLYGON, convertedPoints, originalData);
214
+ super(originalData?.id, exports.DataType.OBSTACLE, level, exports.RenderType.POLYGON, convertedPoints, originalData);
216
215
  this.area = originalData?.area;
217
- this.status = originalData?.status || 1;
216
+ this.status = originalData?.status ?? 1;
218
217
  this.start_timestamp = originalData?.start_timestamp;
219
218
  this.end_timestamp = originalData?.end_timestamp;
220
219
  this.name = originalData?.name || 'Obstacle';
@@ -227,7 +226,7 @@ class ObstacleData extends BaseData {
227
226
  class PathData extends BaseData {
228
227
  constructor(originalData, level, pathType, style) {
229
228
  const convertedPoints = convertPointsFormat(originalData?.points) || [];
230
- super(originalData?.id, DataType.PATH, level, RenderType.LINE, convertedPoints, originalData);
229
+ super(originalData?.id, exports.DataType.PATH, level, exports.RenderType.LINE, convertedPoints, originalData);
231
230
  this.pathType = pathType;
232
231
  this.style = style;
233
232
  }
@@ -238,7 +237,7 @@ class PathData extends BaseData {
238
237
  class DoodleData extends BaseData {
239
238
  constructor(originalData, level, style) {
240
239
  const center = originalData?.center || [0, 0];
241
- super(originalData?.id, DataType.DOODLE, level, RenderType.SVG, [center], originalData);
240
+ super(originalData?.id, exports.DataType.DOODLE, level, exports.RenderType.SVG, [center], originalData);
242
241
  this.svg = originalData?.svg || '';
243
242
  this.scale = originalData?.scale || 1;
244
243
  this.direction = originalData?.direction || 0;
@@ -254,7 +253,7 @@ class DoodleData extends BaseData {
254
253
  class VisionOffData extends BaseData {
255
254
  constructor(originalData, level, style) {
256
255
  const convertedPoints = convertPointsFormat(originalData?.points) || [];
257
- super(originalData?.id, DataType.VISION_OFF, level, RenderType.POLYGON, convertedPoints, originalData);
256
+ super(originalData?.id, exports.DataType.VISION_OFF, level, exports.RenderType.POLYGON, convertedPoints, originalData);
258
257
  this.style = style;
259
258
  }
260
259
  }
@@ -264,7 +263,7 @@ class VisionOffData extends BaseData {
264
263
  class AntennaData extends BaseData {
265
264
  constructor(originalData, level, size, style) {
266
265
  const position = originalData?.position || [0, 0];
267
- super(originalData?.id, DataType.ANTENNA, level, RenderType.POINT, [position], originalData);
266
+ super(originalData?.id, exports.DataType.ANTENNA, level, exports.RenderType.POINT, [position], originalData);
268
267
  this.antennaId = originalData?.antennaId || 0;
269
268
  this.online = originalData?.online || false;
270
269
  this.size = size;
@@ -277,7 +276,7 @@ class AntennaData extends BaseData {
277
276
  class ChargingPileData extends BaseData {
278
277
  constructor(originalData, level, tunnel, style) {
279
278
  const position = originalData?.position || [0, 0];
280
- super(originalData?.id, DataType.CHARGING_PILE, level, RenderType.POINT, [position], originalData);
279
+ super(originalData?.id, exports.DataType.CHARGING_PILE, level, exports.RenderType.POINT, [position], originalData);
281
280
  this.position = position;
282
281
  this.direction = originalData?.direction || 0;
283
282
  this.width = originalData?.width || 0;
@@ -404,39 +403,39 @@ class UnifiedMapDataProcessor {
404
403
  }
405
404
  // 处理通道
406
405
  if (elementsByType.TUNNEL.length > 0) {
407
- processedData[DataType.CHANNEL] = processedData[DataType.CHANNEL] || [];
408
- processedData[DataType.CHANNEL].push(...this.processChannelElements(elementsByType.TUNNEL));
406
+ processedData[exports.DataType.CHANNEL] = processedData[exports.DataType.CHANNEL] || [];
407
+ processedData[exports.DataType.CHANNEL].push(...this.processChannelElements(elementsByType.TUNNEL));
409
408
  }
410
409
  // 处理边界
411
410
  if (elementsByType.BOUNDARY.length > 0) {
412
- processedData[DataType.BOUNDARY] = this.processBoundaryElements(elementsByType.BOUNDARY);
411
+ processedData[exports.DataType.BOUNDARY] = this.processBoundaryElements(elementsByType.BOUNDARY);
413
412
  }
414
413
  // 处理障碍物
415
414
  if (elementsByType.OBSTACLE.length > 0) {
416
- processedData[DataType.OBSTACLE] = this.processObstacleElements(elementsByType.OBSTACLE);
415
+ processedData[exports.DataType.OBSTACLE] = this.processObstacleElements(elementsByType.OBSTACLE);
417
416
  }
418
417
  // 处理充电桩
419
418
  if (elementsByType.CHARGING_PILE.length > 0) {
420
- processedData[DataType.CHARGING_PILE] = [];
421
- processedData[DataType.CHANNEL] = processedData[DataType.CHANNEL] || [];
419
+ processedData[exports.DataType.CHARGING_PILE] = [];
420
+ processedData[exports.DataType.CHANNEL] = processedData[exports.DataType.CHANNEL] || [];
422
421
  const { chargingPileData, channelData } = this.processChargingPileElements(elementsByType.CHARGING_PILE);
423
- processedData[DataType.CHARGING_PILE].push(...chargingPileData);
424
- processedData[DataType.CHANNEL].push(...channelData);
422
+ processedData[exports.DataType.CHARGING_PILE].push(...chargingPileData);
423
+ processedData[exports.DataType.CHANNEL].push(...channelData);
425
424
  }
426
425
  // 处理时间限制障碍物
427
426
  if (elementsByType.TIME_LIMIT_OBSTACLE.length > 0) {
428
427
  const { obstacleData, doodleData } = this.processTimeLimitObstacleElements(elementsByType.TIME_LIMIT_OBSTACLE);
429
428
  if (obstacleData.length > 0) {
430
- processedData[DataType.OBSTACLE] = processedData[DataType.OBSTACLE] || [];
431
- processedData[DataType.OBSTACLE].push(...obstacleData);
429
+ processedData[exports.DataType.OBSTACLE] = processedData[exports.DataType.OBSTACLE] || [];
430
+ processedData[exports.DataType.OBSTACLE].push(...obstacleData);
432
431
  }
433
432
  if (doodleData.length > 0) {
434
- processedData[DataType.DOODLE] = doodleData;
433
+ processedData[exports.DataType.DOODLE] = doodleData;
435
434
  }
436
435
  }
437
436
  // 处理视觉盲区
438
437
  if (elementsByType.VISION_OFF_AREA.length > 0) {
439
- processedData[DataType.VISION_OFF] = this.processVisionOffElements(elementsByType.VISION_OFF_AREA);
438
+ processedData[exports.DataType.VISION_OFF] = this.processVisionOffElements(elementsByType.VISION_OFF_AREA);
440
439
  }
441
440
  // 建立数据之间的关联关系
442
441
  this.establishRelationships(processedData);
@@ -508,7 +507,7 @@ class UnifiedMapDataProcessor {
508
507
  }
509
508
  });
510
509
  if (pathDataList.length > 0) {
511
- processedData[DataType.PATH] = pathDataList;
510
+ processedData[exports.DataType.PATH] = pathDataList;
512
511
  }
513
512
  return processedData;
514
513
  }
@@ -561,7 +560,7 @@ class UnifiedMapDataProcessor {
561
560
  }
562
561
  }
563
562
  if (antennaDataList.length > 0) {
564
- processedData[DataType.ANTENNA] = antennaDataList;
563
+ processedData[exports.DataType.ANTENNA] = antennaDataList;
565
564
  }
566
565
  return processedData;
567
566
  }
@@ -573,14 +572,14 @@ class UnifiedMapDataProcessor {
573
572
  const drawElements = [];
574
573
  // 定义层级顺序(从低到高)
575
574
  const typeOrder = [
576
- DataType.CHANNEL,
577
- DataType.BOUNDARY,
578
- DataType.PATH,
579
- DataType.OBSTACLE,
580
- DataType.CHARGING_PILE,
581
- DataType.VISION_OFF,
582
- DataType.DOODLE,
583
- DataType.ANTENNA,
575
+ exports.DataType.CHANNEL,
576
+ exports.DataType.BOUNDARY,
577
+ exports.DataType.PATH,
578
+ exports.DataType.OBSTACLE,
579
+ exports.DataType.CHARGING_PILE,
580
+ exports.DataType.VISION_OFF,
581
+ exports.DataType.DOODLE,
582
+ exports.DataType.ANTENNA,
584
583
  ];
585
584
  // 按照层级顺序处理各种类型的数据
586
585
  for (const type of typeOrder) {
@@ -781,9 +780,9 @@ class UnifiedMapDataProcessor {
781
780
  */
782
781
  static establishRelationships(processedData) {
783
782
  // 建立通道和边界的关联关系
784
- if (processedData[DataType.CHANNEL] && processedData[DataType.BOUNDARY]) {
785
- const channels = processedData[DataType.CHANNEL];
786
- const boundaries = processedData[DataType.BOUNDARY];
783
+ if (processedData[exports.DataType.CHANNEL] && processedData[exports.DataType.BOUNDARY]) {
784
+ const channels = processedData[exports.DataType.CHANNEL];
785
+ const boundaries = processedData[exports.DataType.BOUNDARY];
787
786
  for (const channel of channels) {
788
787
  if (channel.originalData && channel.originalData.connection) {
789
788
  const connectionIds = Array.isArray(channel.originalData.connection)
@@ -808,9 +807,9 @@ class UnifiedMapDataProcessor {
808
807
  }
809
808
  }
810
809
  // 建立充电桩和通道的关联关系
811
- if (processedData[DataType.CHARGING_PILE] && processedData[DataType.CHANNEL]) {
812
- const chargingPiles = processedData[DataType.CHARGING_PILE];
813
- const channels = processedData[DataType.CHANNEL];
810
+ if (processedData[exports.DataType.CHARGING_PILE] && processedData[exports.DataType.CHANNEL]) {
811
+ const chargingPiles = processedData[exports.DataType.CHARGING_PILE];
812
+ const channels = processedData[exports.DataType.CHANNEL];
814
813
  for (const chargingPile of chargingPiles) {
815
814
  if (!chargingPile.tunnel) {
816
815
  const tunnel = channels.find((c) => c.isChargingPileTunnel &&
@@ -829,21 +828,21 @@ class UnifiedMapDataProcessor {
829
828
  */
830
829
  static convertToDrawElement(data) {
831
830
  switch (data.type) {
832
- case DataType.BOUNDARY:
831
+ case exports.DataType.BOUNDARY:
833
832
  return this.convertBoundaryToDrawElement(data);
834
- case DataType.OBSTACLE:
833
+ case exports.DataType.OBSTACLE:
835
834
  return this.convertObstacleToDrawElement(data);
836
- case DataType.CHANNEL:
835
+ case exports.DataType.CHANNEL:
837
836
  return this.convertChannelToDrawElement(data);
838
- case DataType.VISION_OFF:
837
+ case exports.DataType.VISION_OFF:
839
838
  return this.convertVisionOffToDrawElement(data);
840
- case DataType.DOODLE:
839
+ case exports.DataType.DOODLE:
841
840
  return this.convertDoodleToDrawElement(data);
842
- case DataType.PATH:
841
+ case exports.DataType.PATH:
843
842
  return this.convertPathToDrawElement(data);
844
- case DataType.ANTENNA:
843
+ case exports.DataType.ANTENNA:
845
844
  return this.convertAntennaToDrawElement(data);
846
- case DataType.CHARGING_PILE:
845
+ case exports.DataType.CHARGING_PILE:
847
846
  return this.convertChargingPileToDrawElement(data);
848
847
  default:
849
848
  console.warn(`Unknown data type: ${data.type}`);
@@ -1079,14 +1078,14 @@ const ANTENNA_STYLES = {
1079
1078
  opacity: DEFAULT_OPACITIES.FULL,
1080
1079
  };
1081
1080
  const DEFAULT_STYLES = {
1082
- [DataType.BOUNDARY]: BOUNDARY_STYLES,
1083
- [DataType.VISION_OFF]: VISION_OFF_AREA_STYLES,
1084
- [DataType.OBSTACLE]: OBSTACLE_STYLES,
1085
- [DataType.CHARGING_PILE]: CHARGING_PILE_STYLES,
1086
- [DataType.DOODLE]: DOODLE_STYLES,
1087
- [DataType.PATH]: PATH_EDGE_STYLES,
1088
- [DataType.CHANNEL]: CHANNEL_STYLES,
1089
- [DataType.ANTENNA]: ANTENNA_STYLES,
1081
+ [exports.DataType.BOUNDARY]: BOUNDARY_STYLES,
1082
+ [exports.DataType.VISION_OFF]: VISION_OFF_AREA_STYLES,
1083
+ [exports.DataType.OBSTACLE]: OBSTACLE_STYLES,
1084
+ [exports.DataType.CHARGING_PILE]: CHARGING_PILE_STYLES,
1085
+ [exports.DataType.DOODLE]: DOODLE_STYLES,
1086
+ [exports.DataType.PATH]: PATH_EDGE_STYLES,
1087
+ [exports.DataType.CHANNEL]: CHANNEL_STYLES,
1088
+ [exports.DataType.ANTENNA]: ANTENNA_STYLES,
1090
1089
  };
1091
1090
 
1092
1091
  function restorePoint(point) {
@@ -1335,60 +1334,6 @@ function calculatePerpendicularFoot(point, lineStart, lineEnd) {
1335
1334
  function isFootOnSegment(foot) {
1336
1335
  return foot.param >= 0 && foot.param <= 1;
1337
1336
  }
1338
- /**
1339
- * 计算多边形的面积和周长
1340
- * @param coordinates 多边形顶点坐标数组 [[x1, y1], [x2, y2], ...]
1341
- * @returns 包含面积和周长的对象
1342
- */
1343
- function calculatePolygonAreaAndPerimeter(coordinates) {
1344
- if (!coordinates || coordinates.length < 3) {
1345
- return { area: 0, perimeter: 0 };
1346
- }
1347
- let area = 0;
1348
- let perimeter = 0;
1349
- const n = coordinates.length;
1350
- // 使用鞋带公式(Shoelace formula)计算面积
1351
- for (let i = 0; i < n; i++) {
1352
- const j = (i + 1) % n;
1353
- const [x1, y1] = coordinates[i];
1354
- const [x2, y2] = coordinates[j];
1355
- // 面积计算(鞋带公式)
1356
- area += x1 * y2 - x2 * y1;
1357
- // 周长计算(累加每条边的长度)
1358
- const dx = x2 - x1;
1359
- const dy = y2 - y1;
1360
- perimeter += Math.sqrt(dx * dx + dy * dy);
1361
- }
1362
- // 面积取绝对值并除以2
1363
- area = Math.abs(area) / 2;
1364
- return {
1365
- area,
1366
- perimeter
1367
- };
1368
- }
1369
- /**
1370
- * 计算矩形的长和宽
1371
- * @param points 矩形的4个顶点坐标 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]
1372
- * @returns 包含宽和高的数组 [width, height]
1373
- */
1374
- function calculateRectangleDimensions(points) {
1375
- if (!points || points.length !== 4) {
1376
- return [0, 0];
1377
- }
1378
- // 计算每条边的长度
1379
- const sides = [
1380
- Math.sqrt(Math.pow(points[1][0] - points[0][0], 2) + Math.pow(points[1][1] - points[0][1], 2)), // 0->1
1381
- Math.sqrt(Math.pow(points[2][0] - points[1][0], 2) + Math.pow(points[2][1] - points[1][1], 2)), // 1->2
1382
- Math.sqrt(Math.pow(points[3][0] - points[2][0], 2) + Math.pow(points[3][1] - points[2][1], 2)), // 2->3
1383
- Math.sqrt(Math.pow(points[0][0] - points[3][0], 2) + Math.pow(points[0][1] - points[3][1], 2)) // 3->0
1384
- ];
1385
- // 矩形的对边应该相等,所以我们取相邻的两条边作为宽和高
1386
- // sides[0] 和 sides[2] 是对边,sides[1] 和 sides[3] 是对边
1387
- const width = sides[0]; // 第一条边
1388
- const height = sides[1]; // 相邻的第二条边
1389
- // 返回宽和高的数组 [width, height] - 小的作为宽,大的作为高
1390
- return width <= height ? [width, height] : [height, width];
1391
- }
1392
1337
 
1393
1338
  /**
1394
1339
  * 按Python逻辑创建路径段:根据连续的两点之间的关系确定线段类型
@@ -2136,52 +2081,6 @@ function convertHeightsetToParams(value) {
2136
2081
  cuttingHeight: value,
2137
2082
  };
2138
2083
  }
2139
- function getDefaultAngle(recBaseAngle) {
2140
- if (recBaseAngle > -15 && recBaseAngle <= 15) {
2141
- return recBaseAngle;
2142
- }
2143
- else if (recBaseAngle > 15 && recBaseAngle <= 45) {
2144
- return recBaseAngle - 30;
2145
- }
2146
- else if (recBaseAngle > 45 && recBaseAngle <= 75) {
2147
- return recBaseAngle - 60;
2148
- }
2149
- else if (recBaseAngle > 75 && recBaseAngle <= 90) {
2150
- return recBaseAngle - 90;
2151
- }
2152
- else if (recBaseAngle > -90 && recBaseAngle <= -75) {
2153
- return recBaseAngle + 90;
2154
- }
2155
- else if (recBaseAngle > -75 && recBaseAngle <= -45) {
2156
- return recBaseAngle + 60;
2157
- }
2158
- else if (recBaseAngle > -45 && recBaseAngle <= -15) {
2159
- return recBaseAngle + 30;
2160
- }
2161
- }
2162
- function getSelectAngles(value) {
2163
- const A = 1 << 0; // bit0 = 1
2164
- const B = 1 << 1; // bit1 = 2
2165
- const C = 1 << 2; // bit2 = 4
2166
- const D = 1 << 3; // bit3 = 8
2167
- const E = 1 << 4; // bit4 = 16
2168
- const F = 1 << 5; // bit5 = 32
2169
- const directions = [];
2170
- // 检查每个位标志是否被设置
2171
- if (value & A)
2172
- directions.push(0, 180);
2173
- if (value & B)
2174
- directions.push(30, -150);
2175
- if (value & C)
2176
- directions.push(60, -120);
2177
- if (value & D)
2178
- directions.push(90, -90);
2179
- if (value & E)
2180
- directions.push(120, -60);
2181
- if (value & F)
2182
- directions.push(150, -30);
2183
- return directions;
2184
- }
2185
2084
 
2186
2085
  /** Detect free variable `global` from Node.js. */
2187
2086
  var freeGlobal$2 = typeof global == 'object' && global && global.Object === Object && global;
@@ -5094,18 +4993,6 @@ function convertAreaByUnits(area, type = UnitsType.Metric) {
5094
4993
  unit: UnitsAreaType.ACRE,
5095
4994
  };
5096
4995
  }
5097
- // 割草高度的转化
5098
- function convertCutHeightFormatted(value) {
5099
- return (Math.ceil(value * 0.03937 * 10) * 0.1).toFixed(1);
5100
- }
5101
- function getHeightUnit(unit) {
5102
- return unit === UnitsType.Metric ? 'mm' : 'inch';
5103
- }
5104
- function generateHeightStr(value, unit, hasUnit = false) {
5105
- const unitStr = getHeightUnit(unit);
5106
- const height = unit === UnitsType.Metric ? value : convertCutHeightFormatted(value || 0);
5107
- return hasUnit ? `${height} ${unitStr}` : value;
5108
- }
5109
4996
 
5110
4997
  /**
5111
4998
  * 日期时间格式化工具函数
@@ -8712,12 +8599,12 @@ function styleInject(css, ref) {
8712
8599
  }
8713
8600
  }
8714
8601
 
8715
- var css_248z$i = ".index-module_edit__-5VvX {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n pointer-events: auto;\n z-index: 1000;\n cursor: move;\n touch-action: none;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n}\n.index-module_edit__-5VvX .index-module_border__JdNLM {\n position: absolute;\n inset: -10px;\n border: 2px dashed rgb(241, 102, 41);\n border-radius: 2px;\n pointer-events: none;\n}\n.index-module_edit__-5VvX .index-module_drag__uvdPG {\n position: absolute;\n inset: -10px;\n border-radius: 2px;\n}\n.index-module_edit__-5VvX .index-module_rotate__H-KIZ {\n position: absolute;\n top: -20px;\n right: -20px;\n width: 20px;\n height: 20px;\n cursor: grab;\n z-index: 1001;\n pointer-events: auto;\n}\n.index-module_edit__-5VvX .index-module_move__mZF8s {\n position: absolute;\n bottom: -20px;\n left: -20px;\n width: 20px;\n height: 20px;\n cursor: move;\n z-index: 1001;\n pointer-events: auto;\n}";
8716
- var styles$i = {"edit":"index-module_edit__-5VvX","border":"index-module_border__JdNLM","drag":"index-module_drag__uvdPG","rotate":"index-module_rotate__H-KIZ","move":"index-module_move__mZF8s"};
8717
- styleInject(css_248z$i);
8602
+ var css_248z$6 = ".index-module_edit__-5VvX {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n pointer-events: auto;\n z-index: 1000;\n cursor: move;\n touch-action: none;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n}\n.index-module_edit__-5VvX .index-module_border__JdNLM {\n position: absolute;\n inset: -10px;\n border: 2px dashed rgb(241, 102, 41);\n border-radius: 2px;\n pointer-events: none;\n}\n.index-module_edit__-5VvX .index-module_drag__uvdPG {\n position: absolute;\n inset: -10px;\n border-radius: 2px;\n}\n.index-module_edit__-5VvX .index-module_rotate__H-KIZ {\n position: absolute;\n top: -20px;\n right: -20px;\n width: 20px;\n height: 20px;\n cursor: grab;\n z-index: 1001;\n pointer-events: auto;\n}\n.index-module_edit__-5VvX .index-module_move__mZF8s {\n position: absolute;\n bottom: -20px;\n left: -20px;\n width: 20px;\n height: 20px;\n cursor: move;\n z-index: 1001;\n pointer-events: auto;\n}";
8603
+ var styles$6 = {"edit":"index-module_edit__-5VvX","border":"index-module_border__JdNLM","drag":"index-module_drag__uvdPG","rotate":"index-module_rotate__H-KIZ","move":"index-module_move__mZF8s"};
8604
+ styleInject(css_248z$6);
8718
8605
 
8719
8606
  const RotateHandle = ({ onRotateStart, isRotating }) => {
8720
- return (jsxRuntime.jsx("div", { className: styles$i.rotate, onMouseDown: (e) => onRotateStart(e), onTouchStart: (e) => onRotateStart(e), style: { cursor: isRotating ? 'grabbing' : 'grab' }, dangerouslySetInnerHTML: { __html: DEFAULT_ROTATE_ICON } }));
8607
+ return (jsxRuntime.jsx("div", { className: styles$6.rotate, onMouseDown: (e) => onRotateStart(e), onTouchStart: (e) => onRotateStart(e), style: { cursor: isRotating ? 'grabbing' : 'grab' }, dangerouslySetInnerHTML: { __html: DEFAULT_ROTATE_ICON } }));
8721
8608
  };
8722
8609
 
8723
8610
  /**
@@ -8789,7 +8676,7 @@ const DragHandle = ({ onDragStart, isDragging }) => {
8789
8676
  if (!isMobileDevice()) {
8790
8677
  return null;
8791
8678
  }
8792
- return (jsxRuntime.jsx("div", { className: styles$i.move, onMouseDown: (e) => {
8679
+ return (jsxRuntime.jsx("div", { className: styles$6.move, onMouseDown: (e) => {
8793
8680
  console.log('down');
8794
8681
  onDragStart(e);
8795
8682
  }, onTouchStart: (e) => onDragStart(e), onMouseUp: (e) => {
@@ -8823,7 +8710,7 @@ const MapDrag = ({ map: _map, dragCallbacks, onBoundaryLabelsCollapse, onTransfo
8823
8710
  if (!isDragMap) {
8824
8711
  return null;
8825
8712
  }
8826
- return (jsxRuntime.jsxs("div", { ref: containerRef, className: styles$i.edit, style: { cursor: isDragging ? 'grabbing' : 'move' }, children: [jsxRuntime.jsx("div", { className: styles$i.border }), jsxRuntime.jsx(RotateHandle, { onRotateStart: handleRotateStart, isRotating: isRotating }), jsxRuntime.jsx("div", { className: styles$i.drag, onMouseDown: handleDragStartEvent, onTouchStart: handleDragStartEvent }), jsxRuntime.jsx(DragHandle, { onDragStart: handleDragStartEvent, isDragging: isDragging })] }));
8713
+ return (jsxRuntime.jsxs("div", { ref: containerRef, className: styles$6.edit, style: { cursor: isDragging ? 'grabbing' : 'move' }, children: [jsxRuntime.jsx("div", { className: styles$6.border }), jsxRuntime.jsx(RotateHandle, { onRotateStart: handleRotateStart, isRotating: isRotating }), jsxRuntime.jsx("div", { className: styles$6.drag, onMouseDown: handleDragStartEvent, onTouchStart: handleDragStartEvent }), jsxRuntime.jsx(DragHandle, { onDragStart: handleDragStartEvent, isDragging: isDragging })] }));
8827
8714
  };
8828
8715
 
8829
8716
  /**
@@ -14547,9 +14434,9 @@ const SvgMapComponent = React.forwardRef(({ editMap, rotate, mapData, pathData,
14547
14434
  // 设置显示名称以便调试
14548
14435
  SvgMapComponent.displayName = 'SvgMapComponent';
14549
14436
 
14550
- var css_248z$h = ".index-module_mowerPosition__yLpIU {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n width: 100%;\n height: 100%;\n}";
14551
- var styles$h = {"mowerPosition":"index-module_mowerPosition__yLpIU"};
14552
- styleInject(css_248z$h);
14437
+ var css_248z$5 = ".index-module_mowerPosition__yLpIU {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n width: 100%;\n height: 100%;\n}";
14438
+ var styles$5 = {"mowerPosition":"index-module_mowerPosition__yLpIU"};
14439
+ styleInject(css_248z$5);
14553
14440
 
14554
14441
  const usePosition = ({ mowerPositionData, viewBox, modelType, hasEdger, mapData, realTimeData, onMowingPositionChange, }) => {
14555
14442
  // DOM 元素引用,用于直接操作
@@ -14775,7 +14662,7 @@ const MowerPosition = React.memo(({ editMap, mowerPositionData, viewBox, modelTy
14775
14662
  pointerEvents: 'none',
14776
14663
  zIndex: 1000,
14777
14664
  }), []);
14778
- return (jsxRuntime.jsx("div", { className: styles$h.mowerPosition, style: containerStyle, children: jsxRuntime.jsx("div", { ref: elementRef, className: "mower-position", style: {
14665
+ return (jsxRuntime.jsx("div", { className: styles$5.mowerPosition, style: containerStyle, children: jsxRuntime.jsx("div", { ref: elementRef, className: "mower-position", style: {
14779
14666
  position: 'absolute',
14780
14667
  width: 30,
14781
14668
  height: 30,
@@ -14844,9 +14731,9 @@ const CharginPile = React.memo(({ mapData, mapConfig = {}, viewBox, rotation = 0
14844
14731
  }, children: jsxRuntime.jsx("img", { src: item.imageSrc, style: { width: '100%', height: '100%', objectFit: 'contain', opacity: 1 } }) }, `pile-${idx}`))) }));
14845
14732
  });
14846
14733
 
14847
- var css_248z$g = ".index-module_container__7IatW {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n\n.index-module_boundaryLabel__GDHFn {\n position: absolute;\n background-color: rgba(30, 30, 31, 0.6);\n color: rgb(255, 255, 255);\n padding: 6px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: bold;\n max-width: 220px;\n pointer-events: auto;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);\n cursor: pointer;\n user-select: none;\n white-space: nowrap;\n}\n\n.index-module_base__qy2SG {\n font-size: 14px;\n}\n\n.index-module_extended__0TMAt {\n margin-top: 6px;\n font-size: 11px;\n opacity: 0.9;\n border-top: 1px solid rgba(255, 255, 255, 0.2);\n padding-top: 6px;\n}";
14848
- var styles$g = {"container":"index-module_container__7IatW","boundaryLabel":"index-module_boundaryLabel__GDHFn","base":"index-module_base__qy2SG","extended":"index-module_extended__0TMAt"};
14849
- styleInject(css_248z$g);
14734
+ var css_248z$4 = ".index-module_container__7IatW {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n\n.index-module_boundaryLabel__GDHFn {\n position: absolute;\n background-color: rgba(30, 30, 31, 0.6);\n color: rgb(255, 255, 255);\n padding: 6px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: bold;\n max-width: 220px;\n pointer-events: auto;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);\n cursor: pointer;\n user-select: none;\n white-space: nowrap;\n}\n\n.index-module_base__qy2SG {\n font-size: 14px;\n}\n\n.index-module_extended__0TMAt {\n margin-top: 6px;\n font-size: 11px;\n opacity: 0.9;\n border-top: 1px solid rgba(255, 255, 255, 0.2);\n padding-top: 6px;\n}";
14735
+ var styles$4 = {"container":"index-module_container__7IatW","boundaryLabel":"index-module_boundaryLabel__GDHFn","base":"index-module_base__qy2SG","extended":"index-module_extended__0TMAt"};
14736
+ styleInject(css_248z$4);
14850
14737
 
14851
14738
  const useBoundaryLabels = ({ mapData, pathData, unitType, viewBox, mowPartitionData, realTimeData = [], }) => {
14852
14739
  const [processStateIsMowing, updateProcessStateIsMowing] = React.useState(false);
@@ -15000,7 +14887,7 @@ const BoundaryLabels = React.memo(({ editMap, mapData, pathData, unitType, langu
15000
14887
  zIndex: expandedId != null ? 9999 : containerZIndex,
15001
14888
  display: editMap ? 'none' : 'block',
15002
14889
  }), [containerZIndex, expandedId, editMap]);
15003
- return (jsxRuntime.jsx("div", { className: styles$g.container, style: containerStyle, children: items.map((item) => (jsxRuntime.jsxs("div", { className: `${styles$g.boundaryLabel} boundary-label`, "data-boundary-id": item.id, style: {
14890
+ return (jsxRuntime.jsx("div", { className: styles$4.container, style: containerStyle, children: items.map((item) => (jsxRuntime.jsxs("div", { className: `${styles$4.boundaryLabel} boundary-label`, "data-boundary-id": item.id, style: {
15004
14891
  transform: `translate(-50%, -50%) rotate(${-rotation}deg)`,
15005
14892
  left: `${item.leftPct}%`,
15006
14893
  top: `${item.topPct}%`,
@@ -15010,12 +14897,12 @@ const BoundaryLabels = React.memo(({ editMap, mapData, pathData, unitType, langu
15010
14897
  if (onlyRead)
15011
14898
  return;
15012
14899
  handleClick(item.id);
15013
- }, children: [jsxRuntime.jsx("div", { className: styles$g.base, children: item.baseText }), jsxRuntime.jsxs("div", { className: styles$g.extended, style: { display: expandedId === item.id ? 'block' : 'none' }, children: [jsxRuntime.jsx("div", { style: { marginBottom: 3, fontWeight: 'bold' }, children: item.coverageText }), jsxRuntime.jsx("div", { children: item.dateText })] })] }, item.id))) }));
14900
+ }, children: [jsxRuntime.jsx("div", { className: styles$4.base, children: item.baseText }), jsxRuntime.jsxs("div", { className: styles$4.extended, style: { display: expandedId === item.id ? 'block' : 'none' }, children: [jsxRuntime.jsx("div", { style: { marginBottom: 3, fontWeight: 'bold' }, children: item.coverageText }), jsxRuntime.jsx("div", { children: item.dateText })] })] }, item.id))) }));
15014
14901
  });
15015
14902
 
15016
- var css_248z$f = ".index-module_container__gB52e {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n\n.index-module_item__zHoZP {\n position: absolute;\n pointer-events: auto;\n}\n\n.index-module_icon__CS56A {\n position: relative;\n width: 24px;\n height: 24px;\n cursor: pointer;\n transition: transform 0.2s ease;\n}\n\n.index-module_tooltip__NMCmR {\n position: absolute;\n bottom: 40px;\n left: 0;\n background-color: rgb(247, 251, 255);\n color: rgb(65, 93, 116);\n padding: 10px;\n border-radius: 16px;\n font-size: 14px;\n text-align: left;\n}";
15017
- var styles$f = {"container":"index-module_container__gB52e","item":"index-module_item__zHoZP","icon":"index-module_icon__CS56A","tooltip":"index-module_tooltip__NMCmR"};
15018
- styleInject(css_248z$f);
14903
+ var css_248z$3 = ".index-module_container__gB52e {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n\n.index-module_item__zHoZP {\n position: absolute;\n pointer-events: auto;\n}\n\n.index-module_icon__CS56A {\n position: relative;\n width: 24px;\n height: 24px;\n cursor: pointer;\n transition: transform 0.2s ease;\n}\n\n.index-module_tooltip__NMCmR {\n position: absolute;\n bottom: 40px;\n left: 0;\n background-color: rgb(247, 251, 255);\n color: rgb(65, 93, 116);\n padding: 10px;\n border-radius: 16px;\n font-size: 14px;\n text-align: left;\n}";
14904
+ var styles$3 = {"container":"index-module_container__gB52e","item":"index-module_item__zHoZP","icon":"index-module_icon__CS56A","tooltip":"index-module_tooltip__NMCmR"};
14905
+ styleInject(css_248z$3);
15019
14906
 
15020
14907
  const useAntennaInfo = (data = [], options = {}) => {
15021
14908
  const { viewBox } = options;
@@ -15124,13 +15011,13 @@ const Antennas = React.memo(({ editMap, antennaConfig = [], viewBox, rotation =
15124
15011
  document.addEventListener('pointerdown', handleOutside);
15125
15012
  return () => document.removeEventListener('pointerdown', handleOutside);
15126
15013
  }, []);
15127
- return (jsxRuntime.jsx("div", { className: styles$f.container, style: containerStyle, children: items.map((item) => (jsxRuntime.jsxs("div", { className: `antenna-container-item ${styles$f.item}`, style: {
15014
+ return (jsxRuntime.jsx("div", { className: styles$3.container, style: containerStyle, children: items.map((item) => (jsxRuntime.jsxs("div", { className: `antenna-container-item ${styles$3.item}`, style: {
15128
15015
  left: `${item.leftPct}%`,
15129
15016
  top: `${item.topPct}%`,
15130
15017
  transform: `translate(calc(-50% + ${item.offsetX || 0}px), calc(-50% + ${item.offsetY || 0}px)) rotate(${-rotation}deg)`,
15131
15018
  zIndex: openType === item.type ? 10000 : containerZIndex,
15132
15019
  pointerEvents: onlyRead ? 'none' : 'auto',
15133
- }, children: [jsxRuntime.jsx("div", { className: `antenna vector-antenna antenna-${item.type} ${item.isOnline ? 'antenna-online' : 'antenna-offline'} ${styles$f.icon}`, style: {}, onClick: (e) => {
15020
+ }, children: [jsxRuntime.jsx("div", { className: `antenna vector-antenna antenna-${item.type} ${item.isOnline ? 'antenna-online' : 'antenna-offline'} ${styles$3.icon}`, style: {}, onClick: (e) => {
15134
15021
  e.stopPropagation();
15135
15022
  if (onlyRead)
15136
15023
  return;
@@ -15145,7 +15032,7 @@ const Antennas = React.memo(({ editMap, antennaConfig = [], viewBox, rotation =
15145
15032
  return;
15146
15033
  e.currentTarget.style.transform =
15147
15034
  'scale(1)';
15148
- }, children: jsxRuntime.jsx("img", { src: item.imageSrc, style: { width: '100%', height: '100%', objectFit: 'contain', opacity: 1 } }) }), jsxRuntime.jsxs("div", { className: styles$f.tooltip, style: {
15035
+ }, children: jsxRuntime.jsx("img", { src: item.imageSrc, style: { width: '100%', height: '100%', objectFit: 'contain', opacity: 1 } }) }), jsxRuntime.jsxs("div", { className: styles$3.tooltip, style: {
15149
15036
  display: openType === item.type ? 'block' : 'none',
15150
15037
  minWidth: item.tooltip.minWidth,
15151
15038
  }, children: [jsxRuntime.jsx("div", { style: { marginBottom: 4, fontWeight: 600 }, children: item.tooltip.title }), jsxRuntime.jsxs("div", { style: { color: 'rgba(65, 93, 116, 1)', fontWeight: 400 }, children: [item.tooltip.statusText, item.tooltip.syncText || ''] })] })] }, `antenna-${item.type}`))) }));
@@ -15209,15 +15096,15 @@ const VertexElement = React.memo(({ r, stroke, ...props }) => {
15209
15096
  return (jsxRuntime.jsx("circle", { r: radius * overlayScale, stroke: stroke || '#fff', fill: '#fff', strokeWidth: 2 * overlayScale, ...props }));
15210
15097
  });
15211
15098
 
15212
- var _path$b;
15213
- function _extends$j() { return _extends$j = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$j.apply(null, arguments); }
15214
- var SvgDelete$1 = function SvgDelete(props) {
15215
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$j({
15099
+ var _path$2;
15100
+ function _extends$6() { return _extends$6 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$6.apply(null, arguments); }
15101
+ var SvgDelete = function SvgDelete(props) {
15102
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$6({
15216
15103
  xmlns: "http://www.w3.org/2000/svg",
15217
15104
  width: 16,
15218
15105
  height: 16,
15219
15106
  fill: "none"
15220
- }, props), _path$b || (_path$b = /*#__PURE__*/React__namespace.createElement("path", {
15107
+ }, props), _path$2 || (_path$2 = /*#__PURE__*/React__namespace.createElement("path", {
15221
15108
  fill: "#FD494D",
15222
15109
  d: "M6.667 12a.667.667 0 0 0 .666-.667v-4a.667.667 0 1 0-1.333 0v4a.667.667 0 0 0 .667.667m6.666-8h-2.666v-.667a2 2 0 0 0-2-2H7.333a2 2 0 0 0-2 2V4H2.667a.667.667 0 0 0 0 1.333h.666v7.334a2 2 0 0 0 2 2h5.334a2 2 0 0 0 2-2V5.333h.666a.667.667 0 1 0 0-1.333m-6.666-.667a.667.667 0 0 1 .666-.666h1.334a.667.667 0 0 1 .666.666V4H6.667zm4.666 9.334a.667.667 0 0 1-.666.666H5.333a.667.667 0 0 1-.666-.666V5.333h6.666zm-2-.667a.667.667 0 0 0 .667-.667v-4a.667.667 0 0 0-1.333 0v4a.667.667 0 0 0 .666.667"
15223
15110
  })));
@@ -15362,32 +15249,32 @@ const DistanceLabels = ({ coordinates, createMode = false, editMode = false, com
15362
15249
  }), ghostLastDistance && ghostLastMidpoint && (jsxRuntime.jsx(TextElement, { x: ghostLastMidpoint[0], y: ghostLastMidpoint[1], text: ghostLastDistance })), ghostFirstDistance && ghostFirstMidpoint && (jsxRuntime.jsx(TextElement, { x: ghostFirstMidpoint[0], y: ghostFirstMidpoint[1], text: ghostFirstDistance }))] }));
15363
15250
  };
15364
15251
 
15365
- var css_248z$e = ".index-module_polygonPathG__S-Bpl {\n pointer-events: stroke;\n cursor: pointer;\n}\n\n.index-module_vertex__-Qb1u {\n cursor: pointer;\n}\n\n.index-module_dragging__xSFdO {\n cursor: grabbing;\n}\n\n.index-module_createVertex__ldz2E {\n cursor: crosshair;\n}\n\n.index-module_addVertex__hrF71 {\n cursor: pointer;\n}\n\n.index-module_polygonPath__PynOn {\n pointer-events: stroke;\n cursor: pointer;\n}\n\n.index-module_notCreate__bFnkV {\n cursor: no-drop;\n}";
15366
- var styles$e = {"polygonPathG":"index-module_polygonPathG__S-Bpl","vertex":"index-module_vertex__-Qb1u","dragging":"index-module_dragging__xSFdO","addVertex":"index-module_addVertex__hrF71","polygonPath":"index-module_polygonPath__PynOn","notCreate":"index-module_notCreate__bFnkV"};
15367
- styleInject(css_248z$e);
15252
+ var css_248z$2 = ".index-module_polygonPathG__S-Bpl {\n pointer-events: stroke;\n cursor: pointer;\n}\n\n.index-module_vertex__-Qb1u {\n cursor: pointer;\n}\n\n.index-module_dragging__xSFdO {\n cursor: grabbing;\n}\n\n.index-module_createVertex__ldz2E {\n cursor: crosshair;\n}\n\n.index-module_addVertex__hrF71 {\n cursor: pointer;\n}\n\n.index-module_polygonPath__PynOn {\n pointer-events: stroke;\n cursor: pointer;\n}\n\n.index-module_notCreate__bFnkV {\n cursor: no-drop;\n}";
15253
+ var styles$2 = {"polygonPathG":"index-module_polygonPathG__S-Bpl","vertex":"index-module_vertex__-Qb1u","dragging":"index-module_dragging__xSFdO","addVertex":"index-module_addVertex__hrF71","polygonPath":"index-module_polygonPath__PynOn","notCreate":"index-module_notCreate__bFnkV"};
15254
+ styleInject(css_248z$2);
15368
15255
 
15369
- var CreateStatus;
15256
+ exports.CreateStatus = void 0;
15370
15257
  (function (CreateStatus) {
15371
15258
  CreateStatus["CREATING"] = "creating";
15372
15259
  CreateStatus["COMPLETED"] = "completed";
15373
- })(CreateStatus || (CreateStatus = {}));
15374
- var RecordTypeEnum;
15260
+ })(exports.CreateStatus || (exports.CreateStatus = {}));
15261
+ exports.RecordTypeEnum = void 0;
15375
15262
  (function (RecordTypeEnum) {
15376
15263
  RecordTypeEnum[RecordTypeEnum["DOODLE"] = 1] = "DOODLE";
15377
15264
  RecordTypeEnum[RecordTypeEnum["VISI_OFF"] = 2] = "VISI_OFF";
15378
15265
  RecordTypeEnum[RecordTypeEnum["OBSTACLE"] = 3] = "OBSTACLE";
15379
- })(RecordTypeEnum || (RecordTypeEnum = {}));
15380
- var RecordFunctionEnum;
15266
+ })(exports.RecordTypeEnum || (exports.RecordTypeEnum = {}));
15267
+ exports.RecordFunctionEnum = void 0;
15381
15268
  (function (RecordFunctionEnum) {
15382
15269
  RecordFunctionEnum[RecordFunctionEnum["ADD"] = 0] = "ADD";
15383
15270
  RecordFunctionEnum[RecordFunctionEnum["EDIT"] = 1] = "EDIT";
15384
- })(RecordFunctionEnum || (RecordFunctionEnum = {}));
15385
- var MobileEditMode;
15271
+ })(exports.RecordFunctionEnum || (exports.RecordFunctionEnum = {}));
15272
+ exports.MobileEditMode = void 0;
15386
15273
  (function (MobileEditMode) {
15387
15274
  MobileEditMode[MobileEditMode["START"] = 0] = "START";
15388
15275
  MobileEditMode[MobileEditMode["EDIT"] = 1] = "EDIT";
15389
15276
  MobileEditMode[MobileEditMode["CREATE"] = 2] = "CREATE";
15390
- })(MobileEditMode || (MobileEditMode = {}));
15277
+ })(exports.MobileEditMode || (exports.MobileEditMode = {}));
15391
15278
  var ClickEventType;
15392
15279
  (function (ClickEventType) {
15393
15280
  // 点击doodle的active time的时候触发
@@ -15399,7 +15286,7 @@ const INIT_EDIT_MAP_INFO = {
15399
15286
  createMode: null,
15400
15287
  elementType: undefined,
15401
15288
  isShowDrag: false,
15402
- mobileMode: MobileEditMode.START,
15289
+ mobileMode: exports.MobileEditMode.START,
15403
15290
  allVisionOffPoints: [],
15404
15291
  historyList: [],
15405
15292
  currentHistoryIndex: 0,
@@ -15657,7 +15544,7 @@ const useCheckElement = () => {
15657
15544
  const { svgElementDatas } = useSvgEditContext();
15658
15545
  const checkDoodle = React.useCallback(() => {
15659
15546
  console.log('checkdoodle', editMapInfo, svgElementDatas);
15660
- if (!editMapInfo.selectElement || editMapInfo.selectElement.type !== DataType.DOODLE) {
15547
+ if (!editMapInfo.selectElement || editMapInfo.selectElement.type !== exports.DataType.DOODLE) {
15661
15548
  return { isValid: false, reason: 'No doodle element selected' };
15662
15549
  }
15663
15550
  const doodleElement = editMapInfo.selectElement;
@@ -15665,10 +15552,10 @@ const useCheckElement = () => {
15665
15552
  if (doodlePoints.length === 0) {
15666
15553
  return { isValid: false, reason: 'Doodle has no transformed points' };
15667
15554
  }
15668
- const boundary = svgElementDatas?.[DataType.BOUNDARY] || [];
15669
- const obstacle = svgElementDatas?.[DataType.OBSTACLE] || [];
15670
- const channel = svgElementDatas?.[DataType.CHANNEL] || [];
15671
- const doodles = svgElementDatas?.[DataType.DOODLE] || [];
15555
+ const boundary = svgElementDatas?.[exports.DataType.BOUNDARY] || [];
15556
+ const obstacle = svgElementDatas?.[exports.DataType.OBSTACLE] || [];
15557
+ const channel = svgElementDatas?.[exports.DataType.CHANNEL] || [];
15558
+ const doodles = svgElementDatas?.[exports.DataType.DOODLE] || [];
15672
15559
  // 1. 首先判断 doodle 是否在一个 boundary 内
15673
15560
  let isInBoundary = false;
15674
15561
  let containingBoundary = null;
@@ -15724,9 +15611,9 @@ const useCheckElement = () => {
15724
15611
  // 检查是否有相交、相切或重叠
15725
15612
  if (doPolygonsIntersect(doodlePoints, elementPoints)) {
15726
15613
  const elementTypeName = {
15727
- [DataType.OBSTACLE]: '障碍物',
15728
- [DataType.CHANNEL]: '通道',
15729
- [DataType.DOODLE]: 'Doodle',
15614
+ [exports.DataType.OBSTACLE]: '障碍物',
15615
+ [exports.DataType.CHANNEL]: '通道',
15616
+ [exports.DataType.DOODLE]: 'Doodle',
15730
15617
  }[element.type] || '未知元素';
15731
15618
  return {
15732
15619
  isValid: false,
@@ -15737,10 +15624,10 @@ const useCheckElement = () => {
15737
15624
  const distance = polygonToPolygonDistance(doodlePoints, elementPoints);
15738
15625
  if (distance < minDistance) {
15739
15626
  const elementTypeName = {
15740
- [DataType.OBSTACLE]: '障碍物',
15741
- [DataType.VISION_OFF]: '禁区',
15742
- [DataType.CHANNEL]: '通道',
15743
- [DataType.DOODLE]: 'Doodle',
15627
+ [exports.DataType.OBSTACLE]: '障碍物',
15628
+ [exports.DataType.VISION_OFF]: '禁区',
15629
+ [exports.DataType.CHANNEL]: '通道',
15630
+ [exports.DataType.DOODLE]: 'Doodle',
15744
15631
  }[element.type] || '未知元素';
15745
15632
  return {
15746
15633
  isValid: false,
@@ -15758,7 +15645,7 @@ const useCheckElement = () => {
15758
15645
  return false;
15759
15646
  const points = editMapInfo?.selectElement?.points || [];
15760
15647
  const firstPoint = coordinatesToPoints$1(points)?.[0] || checkPoint;
15761
- const boundary = svgElementDatas?.[DataType.BOUNDARY] || [];
15648
+ const boundary = svgElementDatas?.[exports.DataType.BOUNDARY] || [];
15762
15649
  let currentBoundary = null;
15763
15650
  // 找到包含当前点的边界
15764
15651
  for (const boundaryData of boundary) {
@@ -15774,7 +15661,7 @@ const useCheckElement = () => {
15774
15661
  if (!isPointInPolygon(checkPoint, coordinatesToPoints$1(currentBoundary.points)))
15775
15662
  return true;
15776
15663
  // 如果不是创建 obstacle,则不需要进一步检查
15777
- if (editMapInfo.elementType !== DataType.OBSTACLE)
15664
+ if (editMapInfo.elementType !== exports.DataType.OBSTACLE)
15778
15665
  return false;
15779
15666
  // 获取当前正在创建的 obstacle 的点
15780
15667
  const currentObstaclePoints = coordinatesToPoints$1(points);
@@ -15784,8 +15671,8 @@ const useCheckElement = () => {
15784
15671
  const currentObstaclePolygon = [...currentObstaclePoints, checkPoint];
15785
15672
  // 获取当前边界内的所有元素
15786
15673
  const currentBoundaryPoints = coordinatesToPoints$1(currentBoundary.points);
15787
- const obstacles = svgElementDatas?.[DataType.OBSTACLE] || [];
15788
- const doodles = svgElementDatas?.[DataType.DOODLE] || [];
15674
+ const obstacles = svgElementDatas?.[exports.DataType.OBSTACLE] || [];
15675
+ const doodles = svgElementDatas?.[exports.DataType.DOODLE] || [];
15789
15676
  // 1. 找到在 currentBoundary 内的其他 obstacle 元素
15790
15677
  const obstaclesInBoundary = obstacles.filter((obstacle) => {
15791
15678
  const obstaclePoints = coordinatesToPoints$1(obstacle.points);
@@ -15940,7 +15827,7 @@ const PolygonElement = ({ points, fillColor = 'rgba(0, 0, 0, 0.1)', fillOpacity
15940
15827
  const { platform } = useCommonContext();
15941
15828
  // delete icon可能被上一个点遮挡,因为delete在右上方,所以手动处理点让点按照顺时针渲染,这样delete icon层级就会高一些
15942
15829
  const coordinates = React.useMemo(() => {
15943
- return editMapInfo?.createMode === CreateStatus.CREATING ? points : [...points].reverse();
15830
+ return editMapInfo?.createMode === exports.CreateStatus.CREATING ? points : [...points].reverse();
15944
15831
  }, [points, editMapInfo?.createMode]);
15945
15832
  // 计算点到线段的垂足坐标(使用通用工具函数)
15946
15833
  const calculatePerpendicularFoot$1 = React.useCallback((point, lineStart, lineEnd) => {
@@ -16087,8 +15974,8 @@ const PolygonElement = ({ points, fillColor = 'rgba(0, 0, 0, 0.1)', fillOpacity
16087
15974
  }, [dragState.currentPosition, checkCanNotCreateAtPosition]);
16088
15975
  const generateVertexClassName = React.useMemo(() => {
16089
15976
  if (!dragState.isDragging)
16090
- return styles$e.vertex;
16091
- return showNotCreateCursor ? styles$e.notCreate : styles$e.dragging;
15977
+ return styles$2.vertex;
15978
+ return showNotCreateCursor ? styles$2.notCreate : styles$2.dragging;
16092
15979
  }, [dragState.isDragging, showNotCreateCursor]);
16093
15980
  // 使用 useRef 来存储 requestAnimationFrame ID
16094
15981
  const rafIdRef = React.useRef(null);
@@ -16161,7 +16048,7 @@ const PolygonElement = ({ points, fillColor = 'rgba(0, 0, 0, 0.1)', fillOpacity
16161
16048
  newCoordinates[dragState.dragIndex] = dragState.currentPosition;
16162
16049
  }
16163
16050
  }
16164
- const result = editMapInfo?.createMode === CreateStatus.CREATING
16051
+ const result = editMapInfo?.createMode === exports.CreateStatus.CREATING
16165
16052
  ? newCoordinates
16166
16053
  : newCoordinates.reverse();
16167
16054
  onCoordinatesChange?.(result);
@@ -16266,24 +16153,24 @@ const PolygonElement = ({ points, fillColor = 'rgba(0, 0, 0, 0.1)', fillOpacity
16266
16153
  const nextIndex = (dragState.dragIndex + 1) % coordinates.length;
16267
16154
  return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("line", { x1: coordinates[prevIndex][0], y1: coordinates[prevIndex][1], x2: dragState.originalPosition[0], y2: dragState.originalPosition[1], stroke: strokeColor, strokeWidth: strokeWidth, strokeOpacity: 0.5, strokeDasharray: "5,5", pointerEvents: "none" }), jsxRuntime.jsx("line", { x1: dragState.originalPosition[0], y1: dragState.originalPosition[1], x2: coordinates[nextIndex][0], y2: coordinates[nextIndex][1], stroke: strokeColor, strokeWidth: strokeWidth, strokeOpacity: 0.5, strokeDasharray: "5,5", pointerEvents: "none" })] }));
16268
16155
  })()] })), renderCoordinates.length >= 3 && (jsxRuntime.jsx("polygon", { className: "vector-boundary-fill", points: polygonPoints, fill: fillColor, fillOpacity: fillOpacity, stroke: "none" // 边框透明
16269
- , onClick: onPolygonClick })), jsxRuntime.jsxs("g", { className: styles$e.polygonPathG, children: [renderCoordinates.length >= 2 &&
16156
+ , onClick: onPolygonClick })), jsxRuntime.jsxs("g", { className: styles$2.polygonPathG, children: [renderCoordinates.length >= 2 &&
16270
16157
  pathSegments.map((segment, index) => {
16271
16158
  if (segment.points.length < 2)
16272
16159
  return null;
16273
16160
  const pathData = createPathData(segment.points);
16274
16161
  const isDash = segment.type === 1;
16275
- return (jsxRuntime.jsx("path", { d: pathData, fill: "none", stroke: isDash ? 'none' : strokeColor, strokeWidth: strokeWidth, strokeOpacity: strokeOpacity, strokeLinecap: "round", strokeLinejoin: "round", className: styles$e.polygonPath, vectorEffect: "non-scaling-stroke", onClick: onPathClick }, index));
16162
+ return (jsxRuntime.jsx("path", { d: pathData, fill: "none", stroke: isDash ? 'none' : strokeColor, strokeWidth: strokeWidth, strokeOpacity: strokeOpacity, strokeLinecap: "round", strokeLinejoin: "round", className: styles$2.polygonPath, vectorEffect: "non-scaling-stroke", onClick: onPathClick }, index));
16276
16163
  }), renderCoordinates.length >= 2 &&
16277
16164
  dashPaths.map((segment, index) => {
16278
16165
  if (segment.points.length < 2)
16279
16166
  return null;
16280
- return (jsxRuntime.jsx(DashPath, { className: styles$e.polygonPath, points: segment.points, stroke: strokeColor, strokeWidth: strokeWidth, strokeOpacity: strokeOpacity }, index));
16167
+ return (jsxRuntime.jsx(DashPath, { className: styles$2.polygonPath, points: segment.points, stroke: strokeColor, strokeWidth: strokeWidth, strokeOpacity: strokeOpacity }, index));
16281
16168
  })] }), (editMode || (createMode && completed)) &&
16282
16169
  renderCoordinates.length >= 2 &&
16283
16170
  renderCoordinates.map((coord, index) => {
16284
16171
  const nextCoord = renderCoordinates[(index + 1) % renderCoordinates.length];
16285
16172
  const isDashPath = coord[2] === 1;
16286
- return (jsxRuntime.jsx("line", { x1: coord[0], y1: coord[1], x2: nextCoord[0], y2: nextCoord[1], stroke: isDashPath ? 'transparent' : strokeColor, strokeWidth: strokeWidth, className: styles$e.addVertex, vectorEffect: "non-scaling-stroke", ...(platform === PlatformType.H5
16173
+ return (jsxRuntime.jsx("line", { x1: coord[0], y1: coord[1], x2: nextCoord[0], y2: nextCoord[1], stroke: isDashPath ? 'transparent' : strokeColor, strokeWidth: strokeWidth, className: styles$2.addVertex, vectorEffect: "non-scaling-stroke", ...(platform === PlatformType.H5
16287
16174
  ? {
16288
16175
  onTouchStart: createReactEventHandler((e) => handleEdgeClick(e, index)),
16289
16176
  }
@@ -16384,7 +16271,7 @@ const PolygonElement = ({ points, fillColor = 'rgba(0, 0, 0, 0.1)', fillOpacity
16384
16271
  onVertexDelete(renderCoordinates?.length - 1 - idx);
16385
16272
  }
16386
16273
  setTooltipIndex(null);
16387
- }, style: { cursor: 'pointer' }, children: [jsxRuntime.jsx("rect", { x: 0, y: -24, width: 20, height: 20, rx: 2, ry: 2, fill: "#fff", strokeWidth: 1, filter: "url(#vertex-tooltip-shadow)" }), jsxRuntime.jsx("g", { transform: `translate(2, -22)`, children: jsxRuntime.jsx(SvgDelete$1, {}) })] })), canComplete && (jsxRuntime.jsx("g", { style: { pointerEvents: 'none' }, transform: `translate(${coord[0] - 5 * overlayScale * 3}, ${coord[1] - 2.5 * overlayScale * 3}) scale(${overlayScale * 3})`, children: jsxRuntime.jsx("svg", { width: "10", height: "5", viewBox: "0 0 6 5", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: jsxRuntime.jsx("path", { d: "M0.5 2.5L1.3452 3.3452C1.71469 3.71469 2.30636 3.73741 2.7031 3.39735L5.5 1", stroke: "#FF7A33", "stroke-linecap": "round" }) }) })
16274
+ }, style: { cursor: 'pointer' }, children: [jsxRuntime.jsx("rect", { x: 0, y: -24, width: 20, height: 20, rx: 2, ry: 2, fill: "#fff", strokeWidth: 1, filter: "url(#vertex-tooltip-shadow)" }), jsxRuntime.jsx("g", { transform: `translate(2, -22)`, children: jsxRuntime.jsx(SvgDelete, {}) })] })), canComplete && (jsxRuntime.jsx("g", { style: { pointerEvents: 'none' }, transform: `translate(${coord[0] - 5 * overlayScale * 3}, ${coord[1] - 2.5 * overlayScale * 3}) scale(${overlayScale * 3})`, children: jsxRuntime.jsx("svg", { width: "10", height: "5", viewBox: "0 0 6 5", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: jsxRuntime.jsx("path", { d: "M0.5 2.5L1.3452 3.3452C1.71469 3.71469 2.30636 3.73741 2.7031 3.39735L5.5 1", stroke: "#FF7A33", "stroke-linecap": "round" }) }) })
16388
16275
  // <rect
16389
16276
  // x={coord[0]}
16390
16277
  // y={coord[1]}
@@ -16402,7 +16289,7 @@ const PolygonElement = ({ points, fillColor = 'rgba(0, 0, 0, 0.1)', fillOpacity
16402
16289
 
16403
16290
  const BoundaryElement = ({ data }) => {
16404
16291
  const style = data.style || {};
16405
- const { editMapInfo, setEditMapInfo } = useMapEditContext();
16292
+ const { editMapInfo, setEditMapInfo, onSelectElement } = useMapEditContext();
16406
16293
  const { platform } = useCommonContext();
16407
16294
  const currentPoints = React.useMemo(() => {
16408
16295
  if (editMapInfo?.selectElement?.id === data.id) {
@@ -16424,16 +16311,17 @@ const BoundaryElement = ({ data }) => {
16424
16311
  * 点击边界的回调
16425
16312
  */
16426
16313
  const onPathClick = React.useCallback(() => {
16314
+ onSelectElement?.(exports.DataType.BOUNDARY);
16427
16315
  if (platform === PlatformType.H5) {
16428
16316
  // 对于地块来说,如果当前有元素是在编辑和创建模式下,则不进行选中
16429
- if (editMapInfo.mobileMode === MobileEditMode.EDIT ||
16430
- editMapInfo.mobileMode === MobileEditMode.CREATE) {
16317
+ if (editMapInfo.mobileMode === exports.MobileEditMode.EDIT ||
16318
+ editMapInfo.mobileMode === exports.MobileEditMode.CREATE) {
16431
16319
  return;
16432
16320
  }
16433
16321
  setEditMapInfo((prev) => ({
16434
16322
  ...prev,
16435
- mobileMode: MobileEditMode.START,
16436
- elementType: DataType.BOUNDARY,
16323
+ mobileMode: exports.MobileEditMode.START,
16324
+ elementType: exports.DataType.BOUNDARY,
16437
16325
  selectElement: data,
16438
16326
  }));
16439
16327
  }
@@ -16443,7 +16331,7 @@ const BoundaryElement = ({ data }) => {
16443
16331
  setEditMapInfo((prev) => ({
16444
16332
  ...prev,
16445
16333
  selectElement: data,
16446
- elementType: DataType.BOUNDARY,
16334
+ elementType: exports.DataType.BOUNDARY,
16447
16335
  editMap: true,
16448
16336
  }));
16449
16337
  }
@@ -16456,7 +16344,7 @@ const BoundaryElement = ({ data }) => {
16456
16344
  ...data,
16457
16345
  points: coordinates,
16458
16346
  },
16459
- elementType: DataType.BOUNDARY,
16347
+ elementType: exports.DataType.BOUNDARY,
16460
16348
  }));
16461
16349
  } }));
16462
16350
  };
@@ -16597,22 +16485,22 @@ const ObstacleElement = ({ data }) => {
16597
16485
  // 其他模式展示的是其他的样式
16598
16486
  if (platform === PlatformType.H5 &&
16599
16487
  editMapInfo?.selectElement?.id === data.id &&
16600
- editMapInfo.mobileMode === MobileEditMode.START) {
16601
- return (style.lineWidth || 2) * 1.5;
16488
+ editMapInfo.mobileMode === exports.MobileEditMode.START) {
16489
+ return (style.lineWidth || 2) * 3;
16602
16490
  }
16603
16491
  return style.lineWidth || 2;
16604
16492
  }, [platform, style, editMapInfo]);
16605
16493
  const onPathClick = React.useCallback(() => {
16606
16494
  if (platform === PlatformType.H5) {
16607
16495
  // h5编辑模式下,禁区只有在start模式下才需要选中
16608
- if (editMapInfo.mobileMode === MobileEditMode.EDIT ||
16609
- editMapInfo.mobileMode === MobileEditMode.CREATE) {
16496
+ if (editMapInfo.mobileMode === exports.MobileEditMode.EDIT ||
16497
+ editMapInfo.mobileMode === exports.MobileEditMode.CREATE) {
16610
16498
  return;
16611
16499
  }
16612
16500
  setEditMapInfo((prev) => ({
16613
16501
  ...prev,
16614
- mobileMode: MobileEditMode.START,
16615
- elementType: DataType.OBSTACLE,
16502
+ mobileMode: exports.MobileEditMode.START,
16503
+ elementType: exports.DataType.OBSTACLE,
16616
16504
  selectElement: data,
16617
16505
  }));
16618
16506
  return;
@@ -16633,14 +16521,14 @@ const ObstacleElement = ({ data }) => {
16633
16521
  },
16634
16522
  ],
16635
16523
  currentHistoryIndex: 0,
16636
- elementType: DataType.OBSTACLE,
16524
+ elementType: exports.DataType.OBSTACLE,
16637
16525
  editMap: true,
16638
16526
  }));
16639
16527
  });
16640
16528
  }, [disabledObstacles, data, onHandleEnterRecord, editMapInfo]);
16641
16529
  const editMode = React.useMemo(() => {
16642
16530
  if (platform === PlatformType.H5) {
16643
- return (editMapInfo?.mobileMode === MobileEditMode.EDIT &&
16531
+ return (editMapInfo?.mobileMode === exports.MobileEditMode.EDIT &&
16644
16532
  editMapInfo?.selectElement?.id === data.id);
16645
16533
  }
16646
16534
  return editMapInfo?.selectElement?.id === data.id;
@@ -16650,7 +16538,7 @@ const ObstacleElement = ({ data }) => {
16650
16538
  onPathClick();
16651
16539
  }
16652
16540
  }, onVertexDelete: (vertexIndex) => handleCreateVertexDelete(vertexIndex), onCoordinatesChange: (coordinates) => {
16653
- if (platform === PlatformType.H5 && editMapInfo.mobileMode === MobileEditMode.CREATE) {
16541
+ if (platform === PlatformType.H5 && editMapInfo.mobileMode === exports.MobileEditMode.CREATE) {
16654
16542
  return;
16655
16543
  }
16656
16544
  setEditMapInfo((prev) => ({
@@ -16659,7 +16547,7 @@ const ObstacleElement = ({ data }) => {
16659
16547
  ...prev.selectElement,
16660
16548
  points: coordinates,
16661
16549
  },
16662
- elementType: DataType.OBSTACLE,
16550
+ elementType: exports.DataType.OBSTACLE,
16663
16551
  }));
16664
16552
  addHistory({
16665
16553
  selectElement: {
@@ -17072,15 +16960,15 @@ const useVisionOffTransform = (data, scaleConstraints
17072
16960
  };
17073
16961
  };
17074
16962
 
17075
- var _g$7, _defs$7;
17076
- function _extends$i() { return _extends$i = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$i.apply(null, arguments); }
16963
+ var _g$3, _defs$3;
16964
+ function _extends$5() { return _extends$5 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$5.apply(null, arguments); }
17077
16965
  var SvgTransformDelete = function SvgTransformDelete(props) {
17078
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$i({
16966
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$5({
17079
16967
  xmlns: "http://www.w3.org/2000/svg",
17080
16968
  width: 20,
17081
16969
  height: 20,
17082
16970
  fill: "none"
17083
- }, props), _g$7 || (_g$7 = /*#__PURE__*/React__namespace.createElement("g", {
16971
+ }, props), _g$3 || (_g$3 = /*#__PURE__*/React__namespace.createElement("g", {
17084
16972
  clipPath: "url(#transform-delete_svg__a)"
17085
16973
  }, /*#__PURE__*/React__namespace.createElement("circle", {
17086
16974
  cx: 10,
@@ -17103,7 +16991,7 @@ var SvgTransformDelete = function SvgTransformDelete(props) {
17103
16991
  fill: "#fff",
17104
16992
  rx: 0.8,
17105
16993
  transform: "rotate(45 6.323 5.191)"
17106
- }))), _defs$7 || (_defs$7 = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("linearGradient", {
16994
+ }))), _defs$3 || (_defs$3 = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("linearGradient", {
17107
16995
  id: "transform-delete_svg__b",
17108
16996
  x1: 17.727,
17109
16997
  x2: -1.215,
@@ -17123,15 +17011,15 @@ var SvgTransformDelete = function SvgTransformDelete(props) {
17123
17011
  })))));
17124
17012
  };
17125
17013
 
17126
- var _g$6, _defs$6;
17127
- function _extends$h() { return _extends$h = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$h.apply(null, arguments); }
17014
+ var _g$2, _defs$2;
17015
+ function _extends$4() { return _extends$4 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$4.apply(null, arguments); }
17128
17016
  var SvgTransformRotate = function SvgTransformRotate(props) {
17129
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$h({
17017
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$4({
17130
17018
  xmlns: "http://www.w3.org/2000/svg",
17131
17019
  width: 21,
17132
17020
  height: 20,
17133
17021
  fill: "none"
17134
- }, props), _g$6 || (_g$6 = /*#__PURE__*/React__namespace.createElement("g", {
17022
+ }, props), _g$2 || (_g$2 = /*#__PURE__*/React__namespace.createElement("g", {
17135
17023
  clipPath: "url(#transform-rotate_svg__a)"
17136
17024
  }, /*#__PURE__*/React__namespace.createElement("path", {
17137
17025
  fill: "url(#transform-rotate_svg__b)",
@@ -17139,7 +17027,7 @@ var SvgTransformRotate = function SvgTransformRotate(props) {
17139
17027
  }), /*#__PURE__*/React__namespace.createElement("path", {
17140
17028
  fill: "#fff",
17141
17029
  d: "M11.602 14.719a5.447 5.447 0 0 1-6.608-5.116l-.004-.205a.818.818 0 0 1 1.633-.084l.004.084.01.285a3.81 3.81 0 0 0 2.127 3.137l.26.115a3.8 3.8 0 0 0 2.227.184l.276-.071q.29-.088.561-.219l-1.147-.441a.817.817 0 0 1 .587-1.525l2.54.977a.817.817 0 0 1 .316 1.308l.001.001a5.45 5.45 0 0 1-2.783 1.57M8.623 4.548a5.447 5.447 0 0 1 6.608 5.116l.004.204a.818.818 0 0 1-1.633.084l-.004-.084-.01-.284a3.81 3.81 0 0 0-2.127-3.138l-.26-.115a3.8 3.8 0 0 0-2.227-.184l-.276.072q-.29.087-.561.218l1.147.442a.817.817 0 0 1-.586 1.524l-2.542-.976a.817.817 0 0 1-.315-1.309 5.45 5.45 0 0 1 2.782-1.57"
17142
- }))), _defs$6 || (_defs$6 = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("linearGradient", {
17030
+ }))), _defs$2 || (_defs$2 = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("linearGradient", {
17143
17031
  id: "transform-rotate_svg__b",
17144
17032
  x1: 17.84,
17145
17033
  x2: -1.103,
@@ -17159,15 +17047,15 @@ var SvgTransformRotate = function SvgTransformRotate(props) {
17159
17047
  })))));
17160
17048
  };
17161
17049
 
17162
- var _g$5, _defs$5;
17163
- function _extends$g() { return _extends$g = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$g.apply(null, arguments); }
17050
+ var _g$1, _defs$1;
17051
+ function _extends$3() { return _extends$3 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$3.apply(null, arguments); }
17164
17052
  var SvgTransformScale = function SvgTransformScale(props) {
17165
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$g({
17053
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$3({
17166
17054
  xmlns: "http://www.w3.org/2000/svg",
17167
17055
  width: 21,
17168
17056
  height: 20,
17169
17057
  fill: "none"
17170
- }, props), _g$5 || (_g$5 = /*#__PURE__*/React__namespace.createElement("g", {
17058
+ }, props), _g$1 || (_g$1 = /*#__PURE__*/React__namespace.createElement("g", {
17171
17059
  clipPath: "url(#transform-scale_svg__a)"
17172
17060
  }, /*#__PURE__*/React__namespace.createElement("path", {
17173
17061
  fill: "url(#transform-scale_svg__b)",
@@ -17175,7 +17063,7 @@ var SvgTransformScale = function SvgTransformScale(props) {
17175
17063
  }), /*#__PURE__*/React__namespace.createElement("path", {
17176
17064
  fill: "#fff",
17177
17065
  d: "M5.078 8.265a.8.8 0 0 0 1.6.001v-.544l5.69 5.69h-.494a.8.8 0 0 0 0 1.6l2.474-.002a.8.8 0 0 0 .311-.062.8.8 0 0 0 .49-.738v-2.474a.8.8 0 1 0-1.6 0v.594L7.81 6.59h.544a.8.8 0 0 0 0-1.6H5.879a.8.8 0 0 0-.8.8z"
17178
- }))), _defs$5 || (_defs$5 = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("linearGradient", {
17066
+ }))), _defs$1 || (_defs$1 = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("linearGradient", {
17179
17067
  id: "transform-scale_svg__b",
17180
17068
  x1: 17.84,
17181
17069
  x2: -1.103,
@@ -17195,15 +17083,15 @@ var SvgTransformScale = function SvgTransformScale(props) {
17195
17083
  })))));
17196
17084
  };
17197
17085
 
17198
- var _g$4, _defs$4;
17199
- function _extends$f() { return _extends$f = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$f.apply(null, arguments); }
17086
+ var _g, _defs;
17087
+ function _extends$2() { return _extends$2 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$2.apply(null, arguments); }
17200
17088
  var SvgTransformTranslate = function SvgTransformTranslate(props) {
17201
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$f({
17089
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$2({
17202
17090
  xmlns: "http://www.w3.org/2000/svg",
17203
17091
  width: 20,
17204
17092
  height: 20,
17205
17093
  fill: "none"
17206
- }, props), _g$4 || (_g$4 = /*#__PURE__*/React__namespace.createElement("g", {
17094
+ }, props), _g || (_g = /*#__PURE__*/React__namespace.createElement("g", {
17207
17095
  clipPath: "url(#transform-translate_svg__a)"
17208
17096
  }, /*#__PURE__*/React__namespace.createElement("circle", {
17209
17097
  cx: 10,
@@ -17213,7 +17101,7 @@ var SvgTransformTranslate = function SvgTransformTranslate(props) {
17213
17101
  }), /*#__PURE__*/React__namespace.createElement("path", {
17214
17102
  fill: "#fff",
17215
17103
  d: "M16.18 10.758a.8.8 0 0 0-.105-1.218l-1.66-1.66a.801.801 0 0 0-1.132 1.132l.383.381h-2.96V6.418l.385.386a.8.8 0 1 0 1.131-1.13l-1.75-1.75a.8.8 0 0 0-1.222.11L7.594 5.689a.8.8 0 0 0 1.131 1.13l.381-.38v2.954H6.137l.381-.38a.8.8 0 1 0-1.13-1.132l-1.752 1.75a.8.8 0 0 0 .106 1.22l1.66 1.66a.801.801 0 0 0 1.132-1.133l-.386-.385h2.958v2.972l-.38-.38a.8.8 0 0 0-1.132 1.131l1.751 1.75a.8.8 0 0 0 1.223-.11l1.654-1.655a.8.8 0 1 0-1.13-1.131l-.386.386v-2.963h2.978l-.385.384a.8.8 0 1 0 1.131 1.131z"
17216
- }))), _defs$4 || (_defs$4 = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("linearGradient", {
17104
+ }))), _defs || (_defs = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("linearGradient", {
17217
17105
  id: "transform-translate_svg__b",
17218
17106
  x1: 17.727,
17219
17107
  x2: -1.215,
@@ -17257,7 +17145,7 @@ const VisionOffTransformWrapper = ({ data, isSelected = false, onSelect, onCance
17257
17145
  const style = data.style || {};
17258
17146
  const strokeWidth = React.useMemo(() => {
17259
17147
  if (platform === PlatformType.H5) {
17260
- if (editMapInfo?.mobileMode === MobileEditMode.START &&
17148
+ if (editMapInfo?.mobileMode === exports.MobileEditMode.START &&
17261
17149
  editMapInfo?.selectElement?.id === data.id) {
17262
17150
  return (style.lineWidth || 2) * 2;
17263
17151
  }
@@ -17443,9 +17331,9 @@ const VisionOffElement = ({ data, onSelect }) => {
17443
17331
  const isSelected = React.useMemo(() => {
17444
17332
  if (platform === PlatformType.H5) {
17445
17333
  // h5编辑模式下,想要展示操作框,需要是选中并且非start模式
17446
- return (editMapInfo?.mobileMode !== MobileEditMode.START &&
17334
+ return (editMapInfo?.mobileMode !== exports.MobileEditMode.START &&
17447
17335
  editMapInfo?.selectElement?.id === data.id &&
17448
- editMapInfo.elementType === DataType.VISION_OFF);
17336
+ editMapInfo.elementType === exports.DataType.VISION_OFF);
17449
17337
  }
17450
17338
  return editMapInfo?.selectElement?.id === data.id;
17451
17339
  }, [editMapInfo, data, platform]);
@@ -17454,18 +17342,18 @@ const VisionOffElement = ({ data, onSelect }) => {
17454
17342
  // h5编辑模式下,
17455
17343
  // start模式可以任意选
17456
17344
  // create或者是edit模式的话,只有选中的是visionOff的时候才能选中
17457
- if ((editMapInfo.mobileMode === MobileEditMode.CREATE ||
17458
- editMapInfo.mobileMode === MobileEditMode.EDIT) &&
17459
- editMapInfo.elementType !== DataType.VISION_OFF) {
17345
+ if ((editMapInfo.mobileMode === exports.MobileEditMode.CREATE ||
17346
+ editMapInfo.mobileMode === exports.MobileEditMode.EDIT) &&
17347
+ editMapInfo.elementType !== exports.DataType.VISION_OFF) {
17460
17348
  return;
17461
17349
  }
17462
- if ((editMapInfo.mobileMode === MobileEditMode.CREATE ||
17463
- editMapInfo.mobileMode === MobileEditMode.EDIT) &&
17464
- editMapInfo.elementType === DataType.VISION_OFF) {
17350
+ if ((editMapInfo.mobileMode === exports.MobileEditMode.CREATE ||
17351
+ editMapInfo.mobileMode === exports.MobileEditMode.EDIT) &&
17352
+ editMapInfo.elementType === exports.DataType.VISION_OFF) {
17465
17353
  setEditMapInfo((prev) => ({
17466
17354
  ...prev,
17467
17355
  selectElement: data,
17468
- elementType: DataType.VISION_OFF,
17356
+ elementType: exports.DataType.VISION_OFF,
17469
17357
  mobileMode: editMapInfo.mobileMode, // 保持原来的模式
17470
17358
  }));
17471
17359
  return;
@@ -17473,8 +17361,8 @@ const VisionOffElement = ({ data, onSelect }) => {
17473
17361
  setEditMapInfo((prev) => ({
17474
17362
  ...prev,
17475
17363
  selectElement: data,
17476
- elementType: DataType.VISION_OFF,
17477
- mobileMode: MobileEditMode.START,
17364
+ elementType: exports.DataType.VISION_OFF,
17365
+ mobileMode: exports.MobileEditMode.START,
17478
17366
  }));
17479
17367
  return;
17480
17368
  }
@@ -17488,7 +17376,7 @@ const VisionOffElement = ({ data, onSelect }) => {
17488
17376
  setEditMapInfo((prev) => ({
17489
17377
  ...prev,
17490
17378
  selectElement: data,
17491
- elementType: DataType.VISION_OFF,
17379
+ elementType: exports.DataType.VISION_OFF,
17492
17380
  historyList: [
17493
17381
  {
17494
17382
  selectElement: data,
@@ -17888,15 +17776,15 @@ const useDoodleTransform = (data, onTransformChange, options) => {
17888
17776
  };
17889
17777
  };
17890
17778
 
17891
- var _path$a;
17892
- function _extends$e() { return _extends$e = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$e.apply(null, arguments); }
17779
+ var _path$1;
17780
+ function _extends$1() { return _extends$1 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$1.apply(null, arguments); }
17893
17781
  var SvgTransformArrow = function SvgTransformArrow(props) {
17894
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$e({
17782
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$1({
17895
17783
  xmlns: "http://www.w3.org/2000/svg",
17896
17784
  width: 7,
17897
17785
  height: 11,
17898
17786
  fill: "none"
17899
- }, props), _path$a || (_path$a = /*#__PURE__*/React__namespace.createElement("path", {
17787
+ }, props), _path$1 || (_path$1 = /*#__PURE__*/React__namespace.createElement("path", {
17900
17788
  fill: "#fff",
17901
17789
  d: "M2.156 1.032a.777.777 0 0 0-1.061 0 .69.69 0 0 0-.062.943l.062.068 3.97 3.78-3.97 3.78a.69.69 0 0 0-.062.944l.062.067c.27.257.696.277.99.06l.07-.06 4.5-4.286a.69.69 0 0 0 .063-.943l-.062-.067z",
17902
17790
  opacity: 0.5
@@ -17908,7 +17796,7 @@ const DoodleTransform = ({ data, isSelected: _isSelected, onSelect }) => {
17908
17796
  const { platform } = useCommonContext();
17909
17797
  const canSelect = React.useMemo(() => {
17910
17798
  if (platform === PlatformType.H5) {
17911
- return editMapInfo?.elementType === DataType.DOODLE;
17799
+ return editMapInfo?.elementType === exports.DataType.DOODLE;
17912
17800
  }
17913
17801
  return editMapInfo?.elementType;
17914
17802
  }, [editMapInfo?.elementType, platform]);
@@ -17992,7 +17880,7 @@ const DoodleTransformWrapper = ({ data, isSelected = false, isSelectedWithoutOpe
17992
17880
  return 0;
17993
17881
  }
17994
17882
  // 保留一位小数
17995
- return ((currentTime - data.expiration_ts) / (24 * 60 * 60)).toFixed(1);
17883
+ return ((data.expiration_ts - currentTime) / (24 * 60 * 60)).toFixed(1);
17996
17884
  }, [data]);
17997
17885
  // 初始化变换状态
17998
17886
  React.useEffect(() => {
@@ -18112,6 +18000,7 @@ const DoodleTransformWrapper = ({ data, isSelected = false, isSelectedWithoutOpe
18112
18000
  alignItems: 'center',
18113
18001
  justifyContent: 'center',
18114
18002
  gap: '10px',
18003
+ color: '#325069',
18115
18004
  }, children: jsxRuntime.jsxs("div", { children: ["Remaining Time: ", remainingTime] }) }) }) })] }));
18116
18005
  };
18117
18006
  React.useEffect(() => {
@@ -18234,7 +18123,7 @@ const DoodleElement = ({ data }) => {
18234
18123
  const { platform, doodleList } = useCommonContext();
18235
18124
  const isSelected = React.useMemo(() => {
18236
18125
  if (platform === PlatformType.H5) {
18237
- if (editMapInfo.mobileMode !== MobileEditMode.START &&
18126
+ if (editMapInfo.mobileMode !== exports.MobileEditMode.START &&
18238
18127
  editMapInfo?.selectElement?.id === data.id) {
18239
18128
  return true;
18240
18129
  }
@@ -18267,7 +18156,7 @@ const DoodleElement = ({ data }) => {
18267
18156
  }, [doodleList, originData]);
18268
18157
  const isSelectedWithoutOperation = React.useMemo(() => {
18269
18158
  if (platform === PlatformType.H5) {
18270
- if (editMapInfo.mobileMode === MobileEditMode.START &&
18159
+ if (editMapInfo.mobileMode === exports.MobileEditMode.START &&
18271
18160
  editMapInfo?.selectElement?.id === data.id) {
18272
18161
  return true;
18273
18162
  }
@@ -18282,16 +18171,16 @@ const DoodleElement = ({ data }) => {
18282
18171
  if (platform === PlatformType.H5) {
18283
18172
  // h5编辑模式下,
18284
18173
  // 如果是创建,只能选择新建的doodle
18285
- if (editMapInfo.mobileMode === MobileEditMode.CREATE ||
18286
- editMapInfo.mobileMode === MobileEditMode.EDIT) {
18174
+ if (editMapInfo.mobileMode === exports.MobileEditMode.CREATE ||
18175
+ editMapInfo.mobileMode === exports.MobileEditMode.EDIT) {
18287
18176
  return;
18288
18177
  }
18289
18178
  // 如果是编辑的话
18290
18179
  setEditMapInfo((prev) => ({
18291
18180
  ...prev,
18292
18181
  selectElement: data,
18293
- elementType: DataType.DOODLE,
18294
- mobileMode: MobileEditMode.START,
18182
+ elementType: exports.DataType.DOODLE,
18183
+ mobileMode: exports.MobileEditMode.START,
18295
18184
  }));
18296
18185
  return;
18297
18186
  }
@@ -18317,7 +18206,7 @@ const DoodleElement = ({ data }) => {
18317
18206
  ...data,
18318
18207
  transformedPoints: transformedElements,
18319
18208
  },
18320
- elementType: DataType.DOODLE,
18209
+ elementType: exports.DataType.DOODLE,
18321
18210
  editMap: true,
18322
18211
  isShowDrag: true,
18323
18212
  }));
@@ -18372,7 +18261,6 @@ const DoodleElement = ({ data }) => {
18372
18261
  },
18373
18262
  });
18374
18263
  }, [transformedElements]);
18375
- console.log('originData--->', originData, minScale);
18376
18264
  return (jsxRuntime.jsx(DoodleTransformWrapper, { data: originData, onTransformChange: handleTransformChange, isSelected: isSelected, isSelectedWithoutOperation: isSelectedWithoutOperation, onSelect: handleSelect, onCancel: handleCancel, onDragEnd: handleDragEnd, showInfo: platform === PlatformType.H5, onClickInfo: handleClickInfo, minScale: minScale }));
18377
18265
  };
18378
18266
 
@@ -18393,9 +18281,9 @@ const SvgElement = React.memo(({ type, data, interactive = false }) => {
18393
18281
  }
18394
18282
  else if (type === 'visionOff') {
18395
18283
  if (platform === PlatformType.H5 &&
18396
- (editMapInfo.mobileMode === MobileEditMode.CREATE ||
18397
- editMapInfo.mobileMode === MobileEditMode.EDIT) &&
18398
- editMapInfo.elementType === DataType.VISION_OFF) {
18284
+ (editMapInfo.mobileMode === exports.MobileEditMode.CREATE ||
18285
+ editMapInfo.mobileMode === exports.MobileEditMode.EDIT) &&
18286
+ editMapInfo.elementType === exports.DataType.VISION_OFF) {
18399
18287
  return null;
18400
18288
  }
18401
18289
  return jsxRuntime.jsx(VisionOffElement, { data: data });
@@ -18418,9 +18306,9 @@ const GElement = ({ type, children }) => {
18418
18306
  return jsxRuntime.jsx("g", { id: `layer-${type}`, children: children }, type);
18419
18307
  };
18420
18308
 
18421
- var css_248z$d = ".index-module_mapEdit__XC5Gw {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 100%;\n height: 100%;\n cursor: default;\n}\n.index-module_mapEdit__XC5Gw.index-module_createMode__14EPH {\n cursor: crosshair;\n}\n.index-module_mapEdit__XC5Gw.index-module_notCreateCursor__1-OjF {\n cursor: no-drop;\n}";
18422
- var styles$d = {"mapEdit":"index-module_mapEdit__XC5Gw","createMode":"index-module_createMode__14EPH","notCreateCursor":"index-module_notCreateCursor__1-OjF"};
18423
- styleInject(css_248z$d);
18309
+ var css_248z$1 = ".index-module_mapEdit__XC5Gw {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 100%;\n height: 100%;\n cursor: default;\n}\n.index-module_mapEdit__XC5Gw.index-module_createMode__14EPH {\n cursor: crosshair;\n}\n.index-module_mapEdit__XC5Gw.index-module_notCreateCursor__1-OjF {\n cursor: no-drop;\n}";
18310
+ var styles$1 = {"mapEdit":"index-module_mapEdit__XC5Gw","createMode":"index-module_createMode__14EPH","notCreateCursor":"index-module_notCreateCursor__1-OjF"};
18311
+ styleInject(css_248z$1);
18424
18312
 
18425
18313
  var classnames = {exports: {}};
18426
18314
 
@@ -18504,7 +18392,7 @@ var classNames = /*@__PURE__*/getDefaultExportFromCjs(classnamesExports);
18504
18392
 
18505
18393
  const ChannelClipPath = React.memo(() => {
18506
18394
  const { svgElementDatas, svgRef } = useSvgEditContext();
18507
- const boundaryData = svgElementDatas?.[DataType.BOUNDARY] || [];
18395
+ const boundaryData = svgElementDatas?.[exports.DataType.BOUNDARY] || [];
18508
18396
  const [minX, minY, maxX, maxY] = React.useMemo(() => {
18509
18397
  const baseVal = svgRef?.viewBox.baseVal;
18510
18398
  return [
@@ -19419,13 +19307,13 @@ function usePolygonDrawing(options = {}) {
19419
19307
  const [mousePos, setMousePos] = React.useState(null);
19420
19308
  const { editMapInfo, setEditMapInfo } = useMapEditContext();
19421
19309
  const { checkCanNotCreateAtPosition } = useCheckElement();
19422
- const { addHistory, clearHistory } = useHistoryHandle();
19310
+ const { addHistory} = useHistoryHandle();
19423
19311
  const points = React.useMemo(() => {
19424
19312
  console.log('points->', editMapInfo?.selectElement?.points);
19425
19313
  return editMapInfo?.selectElement?.points?.map((item) => ({ x: item[0], y: item[1] })) || [];
19426
19314
  }, [editMapInfo?.selectElement?.points]);
19427
19315
  const completed = React.useMemo(() => {
19428
- return editMapInfo.createMode === CreateStatus.COMPLETED;
19316
+ return editMapInfo.createMode === exports.CreateStatus.COMPLETED;
19429
19317
  }, [editMapInfo.createMode]);
19430
19318
  // 使用 ahooks 的 useThrottleFn 来节流处理鼠标移动
19431
19319
  const { run: throttledMouseMove } = useThrottleFn((svgEl, clientX, clientY) => {
@@ -19472,9 +19360,14 @@ function usePolygonDrawing(options = {}) {
19472
19360
  if (points.length >= 3 && index === points.length - 1) {
19473
19361
  setEditMapInfo({
19474
19362
  ...editMapInfo,
19475
- createMode: CreateStatus.COMPLETED,
19363
+ createMode: exports.CreateStatus.COMPLETED,
19364
+ historyList: [
19365
+ {
19366
+ selectElement: editMapInfo.selectElement,
19367
+ },
19368
+ ],
19369
+ currentHistoryIndex: 0,
19476
19370
  });
19477
- clearHistory();
19478
19371
  }
19479
19372
  }, [points.length, editMapInfo]);
19480
19373
  const reset = React.useCallback(() => {
@@ -19724,7 +19617,7 @@ const useCreateVisionOffElement = () => {
19724
19617
 
19725
19618
  const SvgEditMap = React.forwardRef(({ mapJson, mapConfig, editMap, onEditInfoMapChange }, ref) => {
19726
19619
  const pointManagerRef = React.useRef(null);
19727
- const { editMapInfo, setEditMapInfo } = useMapEditContext();
19620
+ const { editMapInfo, setEditMapInfo, onSelectElement } = useMapEditContext();
19728
19621
  const { getVisionOffPoints, centerPoint } = useCreateVisionOffElement();
19729
19622
  const { svgElementDatas } = useSvgEditContext();
19730
19623
  const { checkCanNotCreateAtPosition, checkDoodle } = useCheckElement();
@@ -19740,8 +19633,26 @@ const SvgEditMap = React.forwardRef(({ mapJson, mapConfig, editMap, onEditInfoMa
19740
19633
  return style;
19741
19634
  }, [mapConfig, editMapInfo.elementType]);
19742
19635
  const isCreating = React.useMemo(() => {
19743
- return editMapInfo.createMode === CreateStatus.CREATING;
19636
+ return editMapInfo.createMode === exports.CreateStatus.CREATING;
19744
19637
  }, [editMapInfo.createMode]);
19638
+ const centerBounds = React.useMemo(() => {
19639
+ if (!svgRef || !centerPoint)
19640
+ return null;
19641
+ const elementWidth = 50 * 10;
19642
+ const [minX, minY, maxX, maxY] = [
19643
+ centerPoint[0] - elementWidth / 2,
19644
+ centerPoint[1] - elementWidth / 2,
19645
+ centerPoint[0] + elementWidth / 2,
19646
+ centerPoint[1] + elementWidth / 2,
19647
+ ];
19648
+ const elementPoints = [
19649
+ [minX, minY],
19650
+ [minX, maxY],
19651
+ [maxX, maxY],
19652
+ [maxX, minY],
19653
+ ];
19654
+ return elementPoints;
19655
+ }, [centerPoint]);
19745
19656
  // 调整SVG大小的函数
19746
19657
  const adjustSvgSize = (layoutData) => {
19747
19658
  const padding = 20; // 添加一些边距以避免内容贴边
@@ -19794,7 +19705,7 @@ const SvgEditMap = React.forwardRef(({ mapJson, mapConfig, editMap, onEditInfoMa
19794
19705
  // 需要在当前的视觉失效区的基础上添加
19795
19706
  setEditMapInfo((prev) => ({
19796
19707
  ...prev,
19797
- elementType: DataType.VISION_OFF,
19708
+ elementType: exports.DataType.VISION_OFF,
19798
19709
  allVisionOffPoints: [...(prev.allVisionOffPoints || []), { id, points: newPoints }],
19799
19710
  selectElement: {
19800
19711
  ...selectElement,
@@ -19811,7 +19722,7 @@ const SvgEditMap = React.forwardRef(({ mapJson, mapConfig, editMap, onEditInfoMa
19811
19722
  };
19812
19723
  const enterVisionOffEditMode = (mode) => {
19813
19724
  // 目前的所有视觉禁区
19814
- const allVisionOffPoints = (svgElementDatas[DataType.VISION_OFF] || []).map((item) => ({
19725
+ const allVisionOffPoints = (svgElementDatas[exports.DataType.VISION_OFF] || []).map((item) => ({
19815
19726
  id: item.id,
19816
19727
  points: item.points,
19817
19728
  })) || [];
@@ -19819,7 +19730,7 @@ const SvgEditMap = React.forwardRef(({ mapJson, mapConfig, editMap, onEditInfoMa
19819
19730
  ...prev,
19820
19731
  allVisionOffPoints,
19821
19732
  mobileMode: mode,
19822
- elementType: DataType.VISION_OFF,
19733
+ elementType: exports.DataType.VISION_OFF,
19823
19734
  }));
19824
19735
  addHistory({
19825
19736
  selectElement: editMapInfo.selectElement,
@@ -19831,23 +19742,73 @@ const SvgEditMap = React.forwardRef(({ mapJson, mapConfig, editMap, onEditInfoMa
19831
19742
  const svg = selectedDoodle?.svgStr;
19832
19743
  const minLength = selectedDoodle.minLength;
19833
19744
  const parseSvg = SvgParserNative.parseSvg(svg);
19834
- const svgMinLength = Math.min(parseSvg.width, parseSvg.height) / SCALE_FACTOR;
19745
+ const svgMinLength = parseSvg.height / SCALE_FACTOR;
19835
19746
  // 使用获取到的 SVG 内容,如果没有获取到则使用 URL
19836
19747
  newDoodle.svg = svg;
19837
19748
  newDoodle.scale = minLength / svgMinLength;
19838
19749
  newDoodle.direction = 0;
19839
19750
  newDoodle.center = restorePoint(centerPoint);
19840
- setEditMapInfo((prev) => ({
19841
- ...prev,
19751
+ if (platform === PlatformType.H5) {
19752
+ setEditMapInfo((prev) => ({
19753
+ ...prev,
19754
+ currentHistoryIndex: 0,
19755
+ mobileMode: exports.MobileEditMode.CREATE,
19756
+ elementType: exports.DataType.DOODLE,
19757
+ selectElement: newDoodle,
19758
+ }));
19759
+ addHistory({
19760
+ selectElement: newDoodle,
19761
+ });
19762
+ }
19763
+ else {
19764
+ setEditMapInfo({
19765
+ ...editMapInfo,
19766
+ historyList: [
19767
+ {
19768
+ selectElement: newDoodle,
19769
+ },
19770
+ ],
19771
+ currentHistoryIndex: 0,
19772
+ createMode: exports.CreateStatus.COMPLETED,
19773
+ elementType: exports.DataType.DOODLE,
19774
+ selectElement: newDoodle,
19775
+ isShowDrag: true,
19776
+ });
19777
+ }
19778
+ };
19779
+ const addElement = (type, item) => {
19780
+ let newElement = null;
19781
+ if (type === exports.DataType.BOUNDARY) {
19782
+ newElement = initBoundary();
19783
+ }
19784
+ else if (type === exports.DataType.OBSTACLE) {
19785
+ newElement = initObstacle();
19786
+ }
19787
+ else if (type === exports.DataType.CHANNEL) {
19788
+ newElement = initChannel();
19789
+ }
19790
+ else if (type === exports.DataType.VISION_OFF) {
19791
+ newElement = initVisionOff();
19792
+ newElement.points = centerBounds;
19793
+ }
19794
+ else if (type === exports.DataType.DOODLE) {
19795
+ addDoodle(item);
19796
+ return;
19797
+ }
19798
+ setEditMapInfo({
19799
+ ...editMapInfo,
19800
+ historyList: [
19801
+ {
19802
+ selectElement: newElement,
19803
+ },
19804
+ ],
19842
19805
  currentHistoryIndex: 0,
19843
- mobileMode: MobileEditMode.CREATE,
19844
- elementType: DataType.DOODLE,
19845
- selectElement: newDoodle,
19846
- }));
19847
- addHistory({
19848
- selectElement: newDoodle,
19806
+ createMode: type === exports.DataType.VISION_OFF ? exports.CreateStatus.COMPLETED : exports.CreateStatus.CREATING,
19807
+ elementType: type,
19808
+ selectElement: newElement,
19849
19809
  });
19850
19810
  };
19811
+ const saveElement = (type, item) => { };
19851
19812
  React.useEffect(() => {
19852
19813
  onEditInfoMapChange?.(editMapInfo);
19853
19814
  }, [editMapInfo]);
@@ -19884,6 +19845,8 @@ const SvgEditMap = React.forwardRef(({ mapJson, mapConfig, editMap, onEditInfoMa
19884
19845
  addHistory,
19885
19846
  addDoodle,
19886
19847
  checkDoodle: () => checkDoodle?.(),
19848
+ addElement,
19849
+ saveElement,
19887
19850
  }));
19888
19851
  // 初始化多边形绘制 Hook
19889
19852
  const { onSvgClick, onSvgMouseMove, onPointClick, points, completed, mousePos, updatePoints } = usePolygonDrawing({ createMode: isCreating });
@@ -19898,10 +19861,9 @@ const SvgEditMap = React.forwardRef(({ mapJson, mapConfig, editMap, onEditInfoMa
19898
19861
  return false;
19899
19862
  return checkCanNotCreateAtPosition(mousePos);
19900
19863
  }, [mousePos, checkCanNotCreateAtPosition]);
19901
- console.log('editMapInfo--->', editMapInfo);
19902
- return (jsxRuntime.jsx("div", { ref: containerRef, className: classNames(styles$d.mapEdit, {
19903
- [styles$d.createMode]: isCreating,
19904
- [styles$d.notCreateCursor]: showNotCreateCursor,
19864
+ return (jsxRuntime.jsx("div", { ref: containerRef, className: classNames(styles$1.mapEdit, {
19865
+ [styles$1.createMode]: isCreating,
19866
+ [styles$1.notCreateCursor]: showNotCreateCursor,
19905
19867
  }), style: {
19906
19868
  display: editMap ? 'block' : 'none',
19907
19869
  }, children: jsxRuntime.jsxs("svg", { style: {
@@ -19911,9 +19873,9 @@ const SvgEditMap = React.forwardRef(({ mapJson, mapConfig, editMap, onEditInfoMa
19911
19873
  transform: 'translate(-50%, -50%)',
19912
19874
  // cursor: createMode ? 'crosshair' : editMode ? 'default' : 'move',
19913
19875
  // pointerEvents: 'auto', // 关键:允许接收鼠标事件
19914
- }, xmlns: "http://www.w3.org/2000/svg", "shape-rendering": "geometricPrecision", "text-rendering": "geometricPrecision", "image-rendering": "optimizeQuality", ref: svgRef, onClick: editMapInfo.createMode && platform !== PlatformType.H5 ? onSvgClick : undefined, onMouseMove: editMapInfo.createMode && platform !== PlatformType.H5 ? onSvgMouseMove : undefined, children: [jsxRuntime.jsxs("defs", { children: [jsxRuntime.jsx("filter", { id: "vertex-tooltip-shadow", x: "-50%", y: "-50%", width: "200%", height: "200%", children: jsxRuntime.jsx("feDropShadow", { dx: "2", dy: "2", stdDeviation: "2", floodColor: "#000", floodOpacity: "0.12" }) }), jsxRuntime.jsxs("filter", { id: `path-hover-${DataType.BOUNDARY}`, x: "-10%", y: "-10%", width: "120%", height: "120%", children: [jsxRuntime.jsx("feMorphology", { operator: "dilate", radius: "1", in: "SourceGraphic", result: "border" }), jsxRuntime.jsx("feFlood", { floodColor: BOUNDARY_STYLES.lineColor, floodOpacity: "1", result: "borderColor" }), jsxRuntime.jsx("feComposite", { in: "borderColor", in2: "border", operator: "in", result: "coloredBorder" }), jsxRuntime.jsxs("feMerge", { children: [jsxRuntime.jsx("feMergeNode", { in: "coloredBorder" }), jsxRuntime.jsx("feMergeNode", { in: "SourceGraphic" })] })] }), jsxRuntime.jsxs("filter", { id: `path-hover-${DataType.VISION_OFF}`, x: "-10%", y: "-10%", width: "120%", height: "120%", children: [jsxRuntime.jsx("feMorphology", { operator: "dilate", radius: "1", in: "SourceGraphic", result: "border" }), jsxRuntime.jsx("feFlood", { floodColor: VISION_OFF_AREA_STYLES.lineColor, floodOpacity: "1", result: "borderColor" }), jsxRuntime.jsx("feComposite", { in: "borderColor", in2: "border", operator: "in", result: "coloredBorder" }), jsxRuntime.jsxs("feMerge", { children: [jsxRuntime.jsx("feMergeNode", { in: "coloredBorder" }), jsxRuntime.jsx("feMergeNode", { in: "SourceGraphic" })] })] }), jsxRuntime.jsxs("filter", { id: `path-hover-${DataType.OBSTACLE}`, x: "-10%", y: "-10%", width: "120%", height: "120%", children: [jsxRuntime.jsx("feMorphology", { operator: "dilate", radius: "1", in: "SourceGraphic", result: "border" }), jsxRuntime.jsx("feFlood", { floodColor: OBSTACLE_STYLES.lineColor, floodOpacity: "1", result: "borderColor" }), jsxRuntime.jsx("feComposite", { in: "borderColor", in2: "border", operator: "in", result: "coloredBorder" }), jsxRuntime.jsxs("feMerge", { children: [jsxRuntime.jsx("feMergeNode", { in: "coloredBorder" }), jsxRuntime.jsx("feMergeNode", { in: "SourceGraphic" })] })] })] }), Object.keys(svgElementDatas)
19876
+ }, xmlns: "http://www.w3.org/2000/svg", "shape-rendering": "geometricPrecision", "text-rendering": "geometricPrecision", "image-rendering": "optimizeQuality", ref: svgRef, onClick: editMapInfo.createMode && platform !== PlatformType.H5 ? onSvgClick : undefined, onMouseMove: editMapInfo.createMode && platform !== PlatformType.H5 ? onSvgMouseMove : undefined, children: [jsxRuntime.jsxs("defs", { children: [jsxRuntime.jsx("filter", { id: "vertex-tooltip-shadow", x: "-50%", y: "-50%", width: "200%", height: "200%", children: jsxRuntime.jsx("feDropShadow", { dx: "2", dy: "2", stdDeviation: "2", floodColor: "#000", floodOpacity: "0.12" }) }), jsxRuntime.jsxs("filter", { id: `path-hover-${exports.DataType.BOUNDARY}`, x: "-10%", y: "-10%", width: "120%", height: "120%", children: [jsxRuntime.jsx("feMorphology", { operator: "dilate", radius: "1", in: "SourceGraphic", result: "border" }), jsxRuntime.jsx("feFlood", { floodColor: BOUNDARY_STYLES.lineColor, floodOpacity: "1", result: "borderColor" }), jsxRuntime.jsx("feComposite", { in: "borderColor", in2: "border", operator: "in", result: "coloredBorder" }), jsxRuntime.jsxs("feMerge", { children: [jsxRuntime.jsx("feMergeNode", { in: "coloredBorder" }), jsxRuntime.jsx("feMergeNode", { in: "SourceGraphic" })] })] }), jsxRuntime.jsxs("filter", { id: `path-hover-${exports.DataType.VISION_OFF}`, x: "-10%", y: "-10%", width: "120%", height: "120%", children: [jsxRuntime.jsx("feMorphology", { operator: "dilate", radius: "1", in: "SourceGraphic", result: "border" }), jsxRuntime.jsx("feFlood", { floodColor: VISION_OFF_AREA_STYLES.lineColor, floodOpacity: "1", result: "borderColor" }), jsxRuntime.jsx("feComposite", { in: "borderColor", in2: "border", operator: "in", result: "coloredBorder" }), jsxRuntime.jsxs("feMerge", { children: [jsxRuntime.jsx("feMergeNode", { in: "coloredBorder" }), jsxRuntime.jsx("feMergeNode", { in: "SourceGraphic" })] })] }), jsxRuntime.jsxs("filter", { id: `path-hover-${exports.DataType.OBSTACLE}`, x: "-10%", y: "-10%", width: "120%", height: "120%", children: [jsxRuntime.jsx("feMorphology", { operator: "dilate", radius: "1", in: "SourceGraphic", result: "border" }), jsxRuntime.jsx("feFlood", { floodColor: OBSTACLE_STYLES.lineColor, floodOpacity: "1", result: "borderColor" }), jsxRuntime.jsx("feComposite", { in: "borderColor", in2: "border", operator: "in", result: "coloredBorder" }), jsxRuntime.jsxs("feMerge", { children: [jsxRuntime.jsx("feMergeNode", { in: "coloredBorder" }), jsxRuntime.jsx("feMergeNode", { in: "SourceGraphic" })] })] })] }), Object.keys(svgElementDatas)
19915
19877
  ?.sort?.((a, b) => {
19916
- if (a === DataType.BOUNDARY || b === DataType.BOUNDARY) {
19878
+ if (a === exports.DataType.BOUNDARY || b === exports.DataType.BOUNDARY) {
19917
19879
  return 0;
19918
19880
  }
19919
19881
  const aVal = a === editMapInfo.elementType ? 1 : 0;
@@ -19925,17 +19887,17 @@ const SvgEditMap = React.forwardRef(({ mapJson, mapConfig, editMap, onEditInfoMa
19925
19887
  return (jsxRuntime.jsxs(GElement, { type: key, data: elements, children: [key === 'channel' && jsxRuntime.jsx(ChannelClipPath, {}), elements.map((item) => (jsxRuntime.jsx(SvgElement, { type: key, data: item }, item?.id)))] }, key));
19926
19888
  }), platform === PlatformType.WEB &&
19927
19889
  editMapInfo.createMode &&
19928
- editMapInfo.elementType !== DataType.DOODLE &&
19929
- editMapInfo.elementType !== DataType.VISION_OFF &&
19890
+ editMapInfo.elementType !== exports.DataType.DOODLE &&
19891
+ editMapInfo.elementType !== exports.DataType.VISION_OFF &&
19930
19892
  (points.length > 0 || editMapInfo?.selectElement?.points?.length > 0) && (jsxRuntime.jsx(PolygonElement, { points: points?.length > 0
19931
19893
  ? points.map((p) => [p.x, p.y, 2])
19932
- : editMapInfo?.selectElement?.points, fillColor: createElementStyle.fillColor, strokeColor: createElementStyle.lineColor, strokeWidth: createElementStyle.lineWidth, createMode: editMapInfo.elementType !== DataType.VISION_OFF, showPoints: editMapInfo.elementType !== DataType.VISION_OFF, onPointClick: onPointClick, completed: completed, mousePos: mousePos, onVertexDelete: (vertexIndex) => handleCreateVertexDelete(vertexIndex), onCoordinatesChange: (newCoords) => {
19894
+ : editMapInfo?.selectElement?.points, fillColor: createElementStyle.fillColor, strokeColor: createElementStyle.lineColor, strokeWidth: createElementStyle.lineWidth, createMode: editMapInfo.elementType !== exports.DataType.VISION_OFF, showPoints: editMapInfo.elementType !== exports.DataType.VISION_OFF, onPointClick: onPointClick, completed: completed, mousePos: mousePos, onVertexDelete: (vertexIndex) => handleCreateVertexDelete(vertexIndex), onCoordinatesChange: (newCoords) => {
19933
19895
  // 创建模式下的坐标变化(拖拽时)
19934
19896
  // 实时更新当前绘制的多边形
19935
19897
  updatePoints(newCoords.map((coord) => ({ x: coord[0], y: coord[1] })));
19936
19898
  }, svgRef: svgRef })), platform === PlatformType.WEB &&
19937
19899
  editMapInfo.createMode &&
19938
- editMapInfo.elementType === DataType.VISION_OFF &&
19900
+ editMapInfo.elementType === exports.DataType.VISION_OFF &&
19939
19901
  (points.length > 0 || editMapInfo?.selectElement?.points?.length > 0) && (jsxRuntime.jsx(VisionOffElement, { data: {
19940
19902
  ...editMapInfo?.selectElement,
19941
19903
  style: {
@@ -19946,8 +19908,8 @@ const SvgEditMap = React.forwardRef(({ mapJson, mapConfig, editMap, onEditInfoMa
19946
19908
  } })), platform === PlatformType.WEB &&
19947
19909
  editMapInfo.createMode &&
19948
19910
  editMapInfo?.selectElement?.svg && (jsxRuntime.jsx(DoodleElement, { data: { ...editMapInfo?.selectElement } })), platform === PlatformType.H5 &&
19949
- editMapInfo.elementType === DataType.OBSTACLE &&
19950
- editMapInfo.mobileMode === MobileEditMode.CREATE && (jsxRuntime.jsx(CreateObstacleElement, { ref: pointManagerRef, styles: {
19911
+ editMapInfo.elementType === exports.DataType.OBSTACLE &&
19912
+ editMapInfo.mobileMode === exports.MobileEditMode.CREATE && (jsxRuntime.jsx(CreateObstacleElement, { ref: pointManagerRef, styles: {
19951
19913
  fillColor: '#FF7133',
19952
19914
  strokeColor: '#FF7133',
19953
19915
  }, points: (editMapInfo?.selectElement?.points || []).map((p) => ({
@@ -19962,22 +19924,22 @@ const SvgEditMap = React.forwardRef(({ mapJson, mapConfig, editMap, onEditInfoMa
19962
19924
  ...prev.selectElement,
19963
19925
  points: new_points,
19964
19926
  },
19965
- elementType: DataType.OBSTACLE,
19966
- mobileMode: MobileEditMode.CREATE,
19927
+ elementType: exports.DataType.OBSTACLE,
19928
+ mobileMode: exports.MobileEditMode.CREATE,
19967
19929
  };
19968
19930
  });
19969
19931
  addHistory({
19970
19932
  selectElement: { ...editMapInfo?.selectElement, points: new_points },
19971
19933
  });
19972
19934
  } })), platform === PlatformType.H5 &&
19973
- editMapInfo.elementType === DataType.VISION_OFF &&
19974
- (editMapInfo.mobileMode === MobileEditMode.CREATE ||
19975
- editMapInfo.mobileMode === MobileEditMode.EDIT) &&
19935
+ editMapInfo.elementType === exports.DataType.VISION_OFF &&
19936
+ (editMapInfo.mobileMode === exports.MobileEditMode.CREATE ||
19937
+ editMapInfo.mobileMode === exports.MobileEditMode.EDIT) &&
19976
19938
  editMapInfo.allVisionOffPoints?.length > 0 &&
19977
19939
  editMapInfo.allVisionOffPoints.map((item) => (jsxRuntime.jsx(VisionOffElement, { data: {
19978
19940
  level: 100,
19979
- renderType: RenderType.POLYGON,
19980
- type: DataType.VISION_OFF,
19941
+ renderType: exports.RenderType.POLYGON,
19942
+ type: exports.DataType.VISION_OFF,
19981
19943
  // ...editMapInfo.selectElement,
19982
19944
  originalData: {
19983
19945
  points: item.points,
@@ -19993,1772 +19955,78 @@ const SvgEditMap = React.forwardRef(({ mapJson, mapConfig, editMap, onEditInfoMa
19993
19955
  points: item.points,
19994
19956
  id: item.id,
19995
19957
  } }))), platform === PlatformType.H5 &&
19996
- editMapInfo.elementType === DataType.DOODLE &&
19997
- editMapInfo.mobileMode === MobileEditMode.CREATE &&
19958
+ editMapInfo.elementType === exports.DataType.DOODLE &&
19959
+ editMapInfo.mobileMode === exports.MobileEditMode.CREATE &&
19998
19960
  editMapInfo?.selectElement?.svg && (jsxRuntime.jsx(DoodleElement, { data: { ...editMapInfo?.selectElement } }))] }) }));
19999
19961
  });
20000
19962
  SvgEditMap.displayName = 'SvgEditMap';
20001
19963
 
20002
- var css_248z$c = ".index-module_addEntry__QsQHD {\n position: absolute;\n right: 8px;\n top: 8px;\n cursor: pointer;\n z-index: 10;\n}\n.index-module_addEntry__QsQHD .index-module_icon__qIgA4 {\n padding: 6px;\n border-radius: 8px;\n background: #fff;\n box-shadow: 2px 2px 12px 0px rgba(0, 0, 0, 0.2);\n}\n\n.index-module_addItem__mglwZ {\n display: flex;\n align-items: center;\n padding: 4px;\n justify-content: flex-start;\n cursor: pointer;\n}\n.index-module_addItem__mglwZ:hover {\n box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.25);\n border-radius: 4px;\n}\n.index-module_addItem__mglwZ:not(:last-child) {\n margin-bottom: 6px;\n}\n.index-module_addItem__mglwZ .index-module_icon__qIgA4 {\n width: 16px;\n height: 16px;\n}\n.index-module_addItem__mglwZ .index-module_label__QqZ-9 {\n font-weight: 500;\n font-size: 14px;\n line-height: 16px;\n color: rgb(158, 158, 158);\n margin-left: 4px;\n}";
20003
- var styles$c = {"addEntry":"index-module_addEntry__QsQHD","icon":"index-module_icon__qIgA4","addItem":"index-module_addItem__mglwZ","label":"index-module_label__QqZ-9"};
20004
- styleInject(css_248z$c);
20005
-
20006
- var _rect$2, _path$9, _defs$3;
20007
- function _extends$d() { return _extends$d = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$d.apply(null, arguments); }
20008
- var SvgAddEntry = function SvgAddEntry(props) {
20009
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$d({
20010
- xmlns: "http://www.w3.org/2000/svg",
20011
- width: 24,
20012
- height: 24,
20013
- fill: "none"
20014
- }, props), _rect$2 || (_rect$2 = /*#__PURE__*/React__namespace.createElement("rect", {
20015
- width: 10.95,
20016
- height: 10.95,
20017
- x: 10.613,
20018
- y: 3.15,
20019
- fill: "#1F1F1F",
20020
- stroke: "url(#add-entry_svg__a)",
20021
- strokeWidth: 0.3,
20022
- opacity: 0.795,
20023
- rx: 1.05
20024
- })), /*#__PURE__*/React__namespace.createElement("foreignObject", {
20025
- width: 23.468,
20026
- height: 20.501,
20027
- x: -1.543,
20028
- y: 3.499
20029
- }, /*#__PURE__*/React__namespace.createElement("div", {
20030
- xmlns: "http://www.w3.org/1999/xhtml",
20031
- style: {
20032
- backdropFilter: "blur(1.63px)",
20033
- clipPath: "url(#add-entry_svg__b)",
20034
- height: "100%",
20035
- width: "100%"
20036
- }
20037
- })), _path$9 || (_path$9 = /*#__PURE__*/React__namespace.createElement("path", {
20038
- fill: "#1F1F1F",
20039
- stroke: "url(#add-entry_svg__c)",
20040
- strokeWidth: 0.3,
20041
- d: "M9.302 7.402a1.05 1.05 0 0 1 1.778 0l7.27 11.578a1.05 1.05 0 0 1-.89 1.608H2.92a1.05 1.05 0 0 1-.889-1.608z",
20042
- "data-figma-bg-blur-radius": 3.262
20043
- })), _defs$3 || (_defs$3 = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("linearGradient", {
20044
- id: "add-entry_svg__a",
20045
- x1: 16.851,
20046
- x2: 20.384,
20047
- y1: 10.392,
20048
- y2: 4.767,
20049
- gradientUnits: "userSpaceOnUse"
20050
- }, /*#__PURE__*/React__namespace.createElement("stop", {
20051
- stopColor: "#fff",
20052
- stopOpacity: 0.01
20053
- }), /*#__PURE__*/React__namespace.createElement("stop", {
20054
- offset: 1,
20055
- stopColor: "#fff"
20056
- })), /*#__PURE__*/React__namespace.createElement("linearGradient", {
20057
- id: "add-entry_svg__c",
20058
- x1: 21.47,
20059
- x2: 12.314,
20060
- y1: 15.036,
20061
- y2: 5.769,
20062
- gradientUnits: "userSpaceOnUse"
20063
- }, /*#__PURE__*/React__namespace.createElement("stop", {
20064
- stopColor: "#fff",
20065
- stopOpacity: 0.01
20066
- }), /*#__PURE__*/React__namespace.createElement("stop", {
20067
- offset: 1,
20068
- stopColor: "#fff"
20069
- })), /*#__PURE__*/React__namespace.createElement("clipPath", {
20070
- id: "add-entry_svg__b",
20071
- transform: "translate(1.543 -3.499)"
20072
- }, /*#__PURE__*/React__namespace.createElement("path", {
20073
- d: "M9.302 7.402a1.05 1.05 0 0 1 1.778 0l7.27 11.578a1.05 1.05 0 0 1-.89 1.608H2.92a1.05 1.05 0 0 1-.889-1.608z"
20074
- })))));
20075
- };
20076
-
20077
- var _path$8, _path2$3, _path3;
20078
- function _extends$c() { return _extends$c = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$c.apply(null, arguments); }
20079
- var SvgBoundary = function SvgBoundary(props) {
20080
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$c({
20081
- xmlns: "http://www.w3.org/2000/svg",
20082
- width: 16,
20083
- height: 16,
20084
- fill: "none"
20085
- }, props), _path$8 || (_path$8 = /*#__PURE__*/React__namespace.createElement("path", {
20086
- fill: "#1DBEAC",
20087
- fillRule: "evenodd",
20088
- d: "M3.385 2h9.23C13.38 2 14 2.62 14 3.385v9.23C14 13.38 13.38 14 12.615 14h-9.23C2.62 14 2 13.38 2 12.615v-9.23C2 2.62 2.62 2 3.385 2m9.692 1.385a.46.46 0 0 0-.462-.462h-9.23a.46.46 0 0 0-.462.462v9.23c0 .255.207.462.462.462h9.23a.46.46 0 0 0 .462-.462z",
20089
- clipRule: "evenodd",
20090
- opacity: 0.602
20091
- })), _path2$3 || (_path2$3 = /*#__PURE__*/React__namespace.createElement("path", {
20092
- fill: "#1DBEAC",
20093
- d: "M12.615 2.923c.255 0 .462.207.462.462v9.23a.46.46 0 0 1-.462.462h-9.23a.46.46 0 0 1-.462-.462v-9.23c0-.255.207-.462.462-.462z",
20094
- opacity: 0.152
20095
- })), _path3 || (_path3 = /*#__PURE__*/React__namespace.createElement("path", {
20096
- fill: "#1DBEAC",
20097
- fillRule: "evenodd",
20098
- d: "M2.833 2a.833.833 0 1 0 0 1.667.833.833 0 0 0 0-1.667m0 10.333a.833.833 0 1 0 0 1.667.833.833 0 0 0 0-1.667m9.5-9.5a.833.833 0 1 1 1.667 0 .833.833 0 0 1-1.667 0m.834 9.5a.833.833 0 1 0 0 1.667.833.833 0 0 0 0-1.667M6.49 10.333s.335-4.388 3.451-5.666c-1.725 2.439-1.725 5.666-1.725 5.666zm2.305 0s.548-4.108 2.872-4.816c-1.071 1.7-1.071 4.816-1.071 4.816zM6.87 5.517c-2.384 1.42-2.537 4.816-2.537 4.816h1.582s-.21-2.698.955-4.816",
20099
- clipRule: "evenodd"
20100
- })));
20101
- };
20102
-
20103
- var _path$7, _path2$2, _rect$1, _rect2$1;
20104
- function _extends$b() { return _extends$b = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$b.apply(null, arguments); }
20105
- var SvgLimitIsland = function SvgLimitIsland(props) {
20106
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$b({
19964
+ var _path;
19965
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
19966
+ var SvgMobileAddPoint = function SvgMobileAddPoint(props) {
19967
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends({
20107
19968
  xmlns: "http://www.w3.org/2000/svg",
20108
- width: 16,
20109
- height: 16,
19969
+ width: 36,
19970
+ height: 36,
20110
19971
  fill: "none"
20111
- }, props), _path$7 || (_path$7 = /*#__PURE__*/React__namespace.createElement("path", {
20112
- fill: "#FFA077",
20113
- d: "M11.725 6.714c-1.019-.137-2.516-1.488-1.9-2.14.588-.621 1.91.344 1.9 2.14"
20114
- })), _path2$2 || (_path2$2 = /*#__PURE__*/React__namespace.createElement("path", {
20115
- fill: "#FF5D17",
20116
- d: "M11.195 3.637c-.863.109-.623 2.341.354 3.024 1.603.79 2.575-.099 2.517-.459-.072-.445-.983-1.014-2.029-.274.455-.92-.08-2.387-.842-2.291M10.004 9.084l.308.87c1.202.178 2.002.494 2.002.856 0 .556-1.887 1.007-4.215 1.007-2.329 0-4.216-.451-4.217-1.007 0-.334.683-.63 1.733-.812l.593-1.679zm-.777-2.197.518 1.463-3.312-.667.443-1.253zM7.467 4.76a.535.535 0 0 1 1.01 0l.493 1.398L7.1 5.794z"
20117
- })), _rect$1 || (_rect$1 = /*#__PURE__*/React__namespace.createElement("rect", {
20118
- width: 14.237,
20119
- height: 10.667,
20120
- x: 0.882,
20121
- y: 2.667,
20122
- fill: "#F50",
20123
- opacity: 0.15,
20124
- rx: 2
20125
- })), _rect2$1 || (_rect2$1 = /*#__PURE__*/React__namespace.createElement("rect", {
20126
- width: 14.237,
20127
- height: 10.667,
20128
- x: 0.882,
20129
- y: 2.667,
20130
- stroke: "#FF5D17",
20131
- strokeWidth: 0.867,
20132
- rx: 2
19972
+ }, props), _path || (_path = /*#__PURE__*/React__namespace.createElement("path", {
19973
+ stroke: "#fff",
19974
+ strokeLinecap: "round",
19975
+ strokeLinejoin: "round",
19976
+ strokeWidth: 3,
19977
+ d: "M6 12V9a3 3 0 0 1 3-3h3M6 24v3a3 3 0 0 0 3 3h3M24 6h3a3 3 0 0 1 3 3v3m-6 18h3a3 3 0 0 0 3-3v-3m-16.5-6h9M18 13.5v9"
20133
19978
  })));
20134
19979
  };
20135
19980
 
20136
- var _rect, _rect2, _rect3, _rect4, _g$3;
20137
- function _extends$a() { return _extends$a = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$a.apply(null, arguments); }
20138
- var SvgVisionFence = function SvgVisionFence(props) {
20139
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$a({
20140
- xmlns: "http://www.w3.org/2000/svg",
20141
- width: 16,
20142
- height: 16,
20143
- fill: "none"
20144
- }, props), _rect || (_rect = /*#__PURE__*/React__namespace.createElement("rect", {
20145
- width: 14.333,
20146
- height: 10.667,
20147
- x: 0.833,
20148
- y: 2.667,
20149
- fill: "#B1D9FF",
20150
- rx: 2.667
20151
- })), _rect2 || (_rect2 = /*#__PURE__*/React__namespace.createElement("rect", {
20152
- width: 13.333,
20153
- height: 9.667,
20154
- x: 1.333,
20155
- y: 3.167,
20156
- stroke: "#5C9DFF",
20157
- strokeDasharray: "6.33 6.33",
20158
- rx: 1.333
20159
- })), _rect3 || (_rect3 = /*#__PURE__*/React__namespace.createElement("rect", {
20160
- width: 6,
20161
- height: 6,
20162
- x: 5,
20163
- y: 4.833,
20164
- fill: "#B1D9FF",
20165
- rx: 3
20166
- })), /*#__PURE__*/React__namespace.createElement("mask", {
20167
- id: "visionFence_svg__a",
20168
- width: 6,
20169
- height: 6,
20170
- x: 5,
20171
- y: 5,
20172
- maskUnits: "userSpaceOnUse",
20173
- style: {
20174
- maskType: "alpha"
20175
- }
20176
- }, _rect4 || (_rect4 = /*#__PURE__*/React__namespace.createElement("rect", {
20177
- width: 5.333,
20178
- height: 5.333,
20179
- x: 5.333,
20180
- y: 5.5,
20181
- fill: "#B1D9FF",
20182
- rx: 2.667
20183
- }))), _g$3 || (_g$3 = /*#__PURE__*/React__namespace.createElement("g", {
20184
- fill: "#5C9DFF",
20185
- mask: "url(#visionFence_svg__a)"
20186
- }, /*#__PURE__*/React__namespace.createElement("path", {
20187
- d: "m8.838 3.395.636.636-5.42 5.421-.637-.636zM9.896 4.452l.637.637-5.422 5.42-.636-.635zM10.954 5.51l.636.637-5.421 5.421-.636-.636zM12.172 6.547l.636.637-5.421 5.42-.636-.635z"
20188
- }))));
20189
- };
19981
+ var css_248z = ".index-module_crosshair__etey6 {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 40px;\n height: 40px;\n pointer-events: none;\n z-index: 99999;\n display: flex;\n justify-content: center;\n align-items: center;\n}";
19982
+ var styles = {"crosshair":"index-module_crosshair__etey6"};
19983
+ styleInject(css_248z);
20190
19984
 
20191
- var _g$2, _defs$2;
20192
- function _extends$9() { return _extends$9 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$9.apply(null, arguments); }
20193
- var SvgDoodle = function SvgDoodle(props) {
20194
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$9({
20195
- xmlns: "http://www.w3.org/2000/svg",
20196
- width: 16,
20197
- height: 16,
20198
- fill: "none"
20199
- }, props), _g$2 || (_g$2 = /*#__PURE__*/React__namespace.createElement("g", {
20200
- clipPath: "url(#doodle_svg__a)"
20201
- }, /*#__PURE__*/React__namespace.createElement("g", {
20202
- clipPath: "url(#doodle_svg__b)"
20203
- }, /*#__PURE__*/React__namespace.createElement("rect", {
20204
- width: 14.237,
20205
- height: 10.667,
20206
- x: 0.333,
20207
- y: 4.332,
20208
- fill: "#CBFCF7",
20209
- stroke: "#9AEEE5",
20210
- strokeWidth: 0.867,
20211
- rx: 2
20212
- }), /*#__PURE__*/React__namespace.createElement("path", {
20213
- fill: "#F2FFFD",
20214
- d: "M1.374 9.88a4 4 0 0 0 4 4h.546l.514-1.524c.073-.216-.087-.443-.312-.48-1.415-.229-3.6-1.485-4.399-4.639a.35.35 0 0 0-.135-.197c-.138.405-.214.84-.214 1.293z"
20215
- }), /*#__PURE__*/React__namespace.createElement("path", {
20216
- fill: "#50D0C2",
20217
- d: "M15.814 2.13c-.352 2.267-6.501 9.305-8.003 9.43a.282.282 0 0 1-.238-.455L15.565.828c.398.332.293 1.015.249 1.303"
20218
- }), /*#__PURE__*/React__namespace.createElement("path", {
20219
- fill: "#50D0C2",
20220
- d: "M14.208.95c-2.147.946-7.434 8.618-7.15 10.058a.2.2 0 0 0 .017.047.295.295 0 0 0 .498.051L15.565.826c-.437-.28-1.084.003-1.357.123"
20221
- }), /*#__PURE__*/React__namespace.createElement("path", {
20222
- fill: "#9CE7DE",
20223
- d: "M7.76 11.558a.282.282 0 0 1-.187-.453.295.295 0 0 1-.498-.05.2.2 0 0 1-.016-.048c-.108-.55.598-2.01 1.63-3.658l2.297 1.689c-1.348 1.415-2.6 2.473-3.174 2.522a.2.2 0 0 1-.053-.002"
20224
- }), /*#__PURE__*/React__namespace.createElement("path", {
20225
- fill: "#50D0C2",
20226
- d: "M5.602 11.02c.658-.873 1.769-1.145 2.482-.607.714.537.759 1.68.1 2.553-.657.873-2.733.94-2.733.94s-.507-2.013.15-2.886"
20227
- })))), _defs$2 || (_defs$2 = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("clipPath", {
20228
- id: "doodle_svg__a"
20229
- }, /*#__PURE__*/React__namespace.createElement("path", {
20230
- fill: "#fff",
20231
- d: "M0 0h16v16H0z"
20232
- })), /*#__PURE__*/React__namespace.createElement("clipPath", {
20233
- id: "doodle_svg__b"
20234
- }, /*#__PURE__*/React__namespace.createElement("path", {
20235
- fill: "#fff",
20236
- d: "M0 0h16v16H0z"
20237
- })))));
19985
+ /**
19986
+ * 十字准心组件
19987
+ * 相对于父容器居中显示
19988
+ */
19989
+ const Crosshair = () => {
19990
+ const { platform } = useCommonContext();
19991
+ const { editMapInfo } = useMapEditContext();
19992
+ const isVisible = React.useMemo(() => {
19993
+ if (platform === PlatformType.H5 &&
19994
+ editMapInfo?.mobileMode === exports.MobileEditMode.CREATE &&
19995
+ editMapInfo?.elementType === exports.DataType.OBSTACLE) {
19996
+ return true;
19997
+ }
19998
+ return false;
19999
+ }, [platform, editMapInfo]);
20000
+ return isVisible ? (jsxRuntime.jsx("div", { className: styles.crosshair, children: jsxRuntime.jsx(SvgMobileAddPoint, {}) })) : null;
20238
20001
  };
20239
20002
 
20240
- var HandleElementMapType;
20241
- (function (HandleElementMapType) {
20242
- HandleElementMapType["name"] = "name";
20243
- HandleElementMapType["focus"] = "focus";
20244
- HandleElementMapType["delete"] = "delete";
20245
- HandleElementMapType["timePeriod"] = "timePeriod";
20246
- HandleElementMapType["area"] = "area";
20247
- HandleElementMapType["dooleExist"] = "dooleExist";
20248
- })(HandleElementMapType || (HandleElementMapType = {}));
20249
- const DATE_TYPE_MAP = [
20250
- { type: DataType.BOUNDARY, label: 'Boundary', icon: jsxRuntime.jsx(SvgBoundary, {}) },
20251
- {
20252
- type: DataType.OBSTACLE,
20253
- paramType: RecordTypeEnum.OBSTACLE,
20254
- label: 'Off-limit island',
20255
- icon: jsxRuntime.jsx(SvgLimitIsland, {}),
20256
- },
20257
- // { type: DataType.CHANNEL, label: 'Channel', icon: <ChannelIcon /> },
20258
- {
20259
- type: DataType.VISION_OFF,
20260
- paramType: RecordTypeEnum.VISI_OFF,
20261
- label: 'VisionFence-off zone',
20262
- icon: jsxRuntime.jsx(SvgVisionFence, {}),
20263
- },
20264
- {
20265
- type: DataType.DOODLE,
20266
- paramType: RecordTypeEnum.DOODLE,
20267
- label: 'Doodle',
20268
- icon: jsxRuntime.jsx(SvgDoodle, {}),
20269
- },
20270
- ];
20271
- ({
20272
- [DataType.BOUNDARY]: {
20273
- },
20274
- [DataType.OBSTACLE]: {
20275
- },
20276
- [DataType.CHANNEL]: {
20277
- },
20278
- [DataType.VISION_OFF]: {
20279
- },
20280
- [DataType.DOODLE]: {
20281
- },
20282
- [DataType.PATH]: undefined,
20283
- [DataType.ANTENNA]: undefined,
20284
- [DataType.CHARGING_PILE]: undefined,
20285
- });
20286
-
20287
- var css_248z$b = ".ant-modal .ant-modal-body .ant-modal-confirm-title {\n text-align: center;\n}\n.ant-modal .ant-modal-body .ant-modal-confirm-btns {\n margin-top: 24px;\n}\n.ant-modal .ant-modal-body .ant-modal-confirm-btns .ant-btn + .ant-btn {\n margin-left: 24px;\n}\n\n.index-module_modal__fkxhn.index-module_center__d461v .ant-modal-title {\n text-align: center;\n padding: 10px 20px 0;\n font-size: 18px;\n}\n.index-module_modal__fkxhn.index-module_center__d461v .ant-modal-header {\n margin-bottom: 24px;\n}\n.index-module_modal__fkxhn.index-module_center__d461v .ant-modal .ant-modal-footer {\n margin-top: 24px;\n}\n.index-module_modal__fkxhn.index-module_center__d461v .ant-modal .ant-modal-footer .ant-btn + .ant-btn {\n margin-left: 24px;\n}";
20288
- var styles$b = {"modal":"index-module_modal__fkxhn","center":"index-module_center__d461v"};
20289
- styleInject(css_248z$b);
20290
-
20291
- const CustomModal = ({ children, titleCenter, hasMinHeight, height, ...props }) => {
20292
- return (jsxRuntime.jsx(antd.Modal, { centered: true, styles: {
20293
- body: {
20294
- maxHeight: height ? `${height}px` : 'calc(100vh - 200px)',
20295
- minHeight: hasMinHeight ? '520px' : undefined,
20296
- overflow: 'auto',
20297
- },
20298
- }, wrapClassName: classNames(styles$b.modal, {
20299
- [styles$b.center]: titleCenter,
20300
- }), cancelButtonProps: { color: 'primary', variant: 'outlined' }, cancelText: 'Cancel', ...props, children: children }));
20003
+ // 验证GPS坐标是否有效
20004
+ const isValidGpsCoordinate = (coordinate) => {
20005
+ if (!coordinate || coordinate.length < 2)
20006
+ return false;
20007
+ const [lng, lat] = coordinate;
20008
+ // 检查是否为有效的GPS坐标范围,且不是原点(0,0)
20009
+ return (lng >= -180 &&
20010
+ lng <= 180 &&
20011
+ lat >= -90 &&
20012
+ lat <= 90 &&
20013
+ !(Math.abs(lng) < 0.001 && Math.abs(lat) < 0.001) // 排除接近(0,0)的坐标
20014
+ );
20301
20015
  };
20302
-
20303
- var css_248z$a = ".index-module_doodleModal__EGNPW .index-module_title__ViZuB {\n font-weight: 400;\n font-size: 14px;\n line-height: 20px;\n color: rgb(29, 29, 29);\n}\n.index-module_doodleModal__EGNPW .index-module_content__h-60T {\n display: flex;\n flex-wrap: wrap;\n gap: 10px;\n max-height: 230px;\n overflow-y: auto;\n width: 470px;\n margin: 20px auto 0;\n}\n.index-module_doodleModal__EGNPW .index-module_content__h-60T .index-module_item__dvoq7 {\n width: 70px;\n height: 70px;\n padding: 10px;\n border-radius: 8px;\n cursor: pointer;\n border: 2px solid transparent;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n position: relative;\n background: rgb(233, 242, 241);\n}\n.index-module_doodleModal__EGNPW .index-module_content__h-60T .index-module_item__dvoq7:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n.index-module_doodleModal__EGNPW .index-module_content__h-60T .index-module_item__dvoq7.index-module_active__1OHfd {\n border: 2px solid #ff5a00;\n background-color: rgba(110, 220, 207, 0.1);\n}\n.index-module_doodleModal__EGNPW .index-module_content__h-60T .index-module_item__dvoq7.index-module_active__1OHfd .index-module_selectIcon__EFQF- {\n display: block;\n}\n.index-module_doodleModal__EGNPW .index-module_content__h-60T .index-module_item__dvoq7 .index-module_svgImage__2OT8- {\n width: 100%;\n height: 100%;\n}\n.index-module_doodleModal__EGNPW .index-module_content__h-60T .index-module_item__dvoq7 .index-module_svgImage__2OT8- svg {\n width: 100%;\n height: 100%;\n}\n.index-module_doodleModal__EGNPW .index-module_content__h-60T .index-module_item__dvoq7 .index-module_selectIcon__EFQF- {\n position: absolute;\n bottom: 4px;\n right: 4px;\n display: none;\n}";
20304
- var styles$a = {"doodleModal":"index-module_doodleModal__EGNPW","title":"index-module_title__ViZuB","content":"index-module_content__h-60T","item":"index-module_item__dvoq7","active":"index-module_active__1OHfd","svgImage":"index-module_svgImage__2OT8-"};
20305
- styleInject(css_248z$a);
20306
-
20307
- const DoodleModal = ({ open, onSelect, setOpen, doodleList, centerPoint }) => {
20308
- const { editMapInfo, setEditMapInfo, onHandleEnterRecord } = useMapEditContext();
20309
- const [selectedDoodle, setSelectedDoodle] = React.useState(null);
20310
- const noNeed = React.useMemo(() => {
20311
- return '1234567890QWERTYUIOPASDFGHJKLZXCVBNM';
20312
- }, []);
20313
- // 选择 Doodle
20314
- const handleSelectDoodle = React.useCallback((item) => {
20315
- setSelectedDoodle(item);
20316
- }, []);
20317
- // 确认选择
20318
- const handleConfirm = React.useCallback(() => {
20319
- if (selectedDoodle) {
20320
- const newDoodle = initDoodle();
20321
- const svg = selectedDoodle?.svgStr;
20322
- const minLength = selectedDoodle.minLength;
20323
- const parseSvg = SvgParserNative.parseSvg(svg);
20324
- const svgMinLength = parseSvg.height / SCALE_FACTOR;
20325
- // 使用获取到的 SVG 内容,如果没有获取到则使用 URL
20326
- newDoodle.svg = svg;
20327
- newDoodle.scale = minLength / svgMinLength;
20328
- newDoodle.direction = 0;
20329
- newDoodle.center = restorePoint(centerPoint);
20330
- onHandleEnterRecord?.({
20331
- type: 1,
20332
- function: 0,
20333
- })?.then(() => {
20334
- setEditMapInfo({
20335
- ...editMapInfo,
20336
- historyList: [
20337
- {
20338
- selectElement: newDoodle,
20339
- },
20340
- ],
20341
- currentHistoryIndex: 0,
20342
- createMode: CreateStatus.COMPLETED,
20343
- elementType: DataType.DOODLE,
20344
- selectElement: newDoodle,
20345
- isShowDrag: true,
20346
- });
20347
- setOpen(false);
20348
- onSelect?.(svg);
20349
- }, (error) => {
20350
- antd.message.error('Save failed, please try again');
20351
- });
20352
- }
20353
- }, [selectedDoodle, setEditMapInfo, editMapInfo, setOpen, onSelect, centerPoint]);
20354
- return (jsxRuntime.jsx(CustomModal, { width: 560, title: "Create doodle", titleCenter: true, open: open, onOk: handleConfirm, onCancel: () => setOpen(false), okButtonProps: { disabled: !selectedDoodle }, afterClose: () => setSelectedDoodle(null), okText: "Create", cancelText: "Cancel", children: jsxRuntime.jsxs("div", { className: styles$a.doodleModal, children: [jsxRuntime.jsx("div", { className: styles$a.title, children: "Select the doodle that you want to create" }), jsxRuntime.jsx("div", { className: styles$a.content, children: doodleList
20355
- ?.filter((item) => !noNeed.includes(item.name))
20356
- .map((item) => {
20357
- return (jsxRuntime.jsx("div", { className: classNames(styles$a.item, {
20358
- [styles$a.active]: selectedDoodle?.svg === item.svg,
20359
- }), onClick: () => handleSelectDoodle(item), children: jsxRuntime.jsx("div", { className: styles$a.svgImage, dangerouslySetInnerHTML: { __html: item?.svgStr } }) }, item.id));
20360
- }) })] }) }));
20361
- };
20362
-
20363
- const AddEntry = ({ doodleList, disabledObstacles, editMap }) => {
20364
- const { svgRef } = useSvgEditContext();
20365
- const { editMapInfo, setEditMapInfo, onHandleEnterRecord } = useMapEditContext();
20366
- const divRef = React.useRef(null);
20367
- const [open, setOpen] = React.useState(false);
20368
- const [doodleOpen, setDoodleOpen] = React.useState(false);
20369
- const centerPoint = React.useMemo(() => {
20370
- if (!svgRef)
20371
- return null;
20372
- const baseVal = svgRef?.viewBox.baseVal;
20373
- const center = [
20374
- baseVal?.x + (baseVal?.width || 0) / 2,
20375
- baseVal?.y + (baseVal?.height || 0) / 2,
20376
- ];
20377
- return center;
20378
- }, [svgRef?.viewBox?.baseVal?.x]);
20379
- const centerBounds = React.useMemo(() => {
20380
- if (!svgRef)
20381
- return null;
20382
- const elementWidth = 50 * 10;
20383
- const [minX, minY, maxX, maxY] = [
20384
- centerPoint[0] - elementWidth / 2,
20385
- centerPoint[1] - elementWidth / 2,
20386
- centerPoint[0] + elementWidth / 2,
20387
- centerPoint[1] + elementWidth / 2,
20388
- ];
20389
- const elementPoints = [
20390
- [minX, minY],
20391
- [minX, maxY],
20392
- [maxX, maxY],
20393
- [maxX, minY],
20394
- ];
20395
- return elementPoints;
20396
- }, [centerPoint]);
20397
- const addNewElement = React.useCallback((type, item) => {
20398
- setOpen(false);
20399
- let newElement = null;
20400
- if (type === DataType.BOUNDARY) {
20401
- newElement = initBoundary();
20402
- }
20403
- else if (type === DataType.OBSTACLE) {
20404
- newElement = initObstacle();
20405
- }
20406
- else if (type === DataType.CHANNEL) {
20407
- newElement = initChannel();
20408
- }
20409
- else if (type === DataType.VISION_OFF) {
20410
- newElement = initVisionOff();
20411
- newElement.points = centerBounds;
20412
- }
20413
- else if (type === DataType.DOODLE) {
20414
- return setDoodleOpen(true);
20415
- }
20416
- onHandleEnterRecord?.({
20417
- type: item?.paramType,
20418
- function: item?.type === DataType.OBSTACLE ? 0 : undefined,
20419
- })?.then(() => {
20420
- setEditMapInfo({
20421
- ...editMapInfo,
20422
- historyList: [
20423
- {
20424
- selectElement: newElement,
20425
- },
20426
- ],
20427
- currentHistoryIndex: 0,
20428
- createMode: type === DataType.VISION_OFF ? CreateStatus.COMPLETED : CreateStatus.CREATING,
20429
- elementType: type,
20430
- selectElement: newElement,
20431
- });
20432
- }, (errorText) => {
20433
- antd.message.error('Save failed, please try again');
20434
- });
20435
- }, [centerBounds]);
20436
- const addItems = React.useMemo(() => {
20437
- return DATE_TYPE_MAP?.filter((item) => {
20438
- if (item.type === DataType.OBSTACLE) {
20439
- return !disabledObstacles;
20440
- }
20441
- return item.type !== DataType.BOUNDARY;
20442
- });
20443
- }, [disabledObstacles]);
20444
- // console.log('addEntry->', editMapInfo, editMap);
20445
- if (editMapInfo.createMode || editMapInfo.editMap || !editMap) {
20446
- return null;
20447
- }
20448
- return (jsxRuntime.jsxs("div", { ref: divRef, className: styles$c.addEntry, children: [jsxRuntime.jsx(antd.Popover, { open: open, onOpenChange: setOpen, arrow: false, placement: "leftTop", content: addItems?.map((item) => {
20449
- return (jsxRuntime.jsxs("div", { className: styles$c.addItem, onClick: () => {
20450
- addNewElement(item.type, item);
20451
- }, children: [jsxRuntime.jsx("div", { className: styles$c.icon, children: item?.icon }), jsxRuntime.jsx("div", { className: styles$c.label, children: item?.label })] }, item.label));
20452
- }), children: jsxRuntime.jsx("div", { className: styles$c.icon, children: jsxRuntime.jsx(SvgAddEntry, {}) }) }), jsxRuntime.jsx(DoodleModal, { centerPoint: centerPoint, doodleList: doodleList, open: doodleOpen, onOk: () => setDoodleOpen(false), setOpen: setDoodleOpen })] }));
20453
- };
20454
-
20455
- var css_248z$9 = ".index-module_handleElementInfo__vWIaf {\n position: absolute;\n right: 0;\n top: 0;\n border-radius: 8px;\n padding: 8px;\n background: #fff;\n width: 265px;\n user-select: none;\n}\n.index-module_handleElementInfo__vWIaf .index-module_border__iPL-- {\n margin: 8px 0;\n border-top: 1px solid #c5c5c5;\n}\n.index-module_handleElementInfo__vWIaf .index-module_undoAndRedo__EKeA8 {\n position: absolute;\n left: -96px;\n top: 0;\n display: flex;\n gap: 12px;\n}\n.index-module_handleElementInfo__vWIaf .index-module_undoAndRedo__EKeA8 .index-module_undo__lPY1X,\n.index-module_handleElementInfo__vWIaf .index-module_undoAndRedo__EKeA8 .index-module_redo__EU5u- {\n background: #fff;\n border-radius: 8px;\n padding: 6px;\n}\n.index-module_handleElementInfo__vWIaf .index-module_undoAndRedo__EKeA8 .index-module_undo__lPY1X:not(.index-module_disabled__w6gCJ):hover,\n.index-module_handleElementInfo__vWIaf .index-module_undoAndRedo__EKeA8 .index-module_redo__EU5u-:not(.index-module_disabled__w6gCJ):hover {\n opacity: 0.8;\n cursor: pointer;\n}\n.index-module_handleElementInfo__vWIaf .index-module_undoAndRedo__EKeA8 .index-module_undo__lPY1X.index-module_disabled__w6gCJ,\n.index-module_handleElementInfo__vWIaf .index-module_undoAndRedo__EKeA8 .index-module_redo__EU5u-.index-module_disabled__w6gCJ {\n color: #d8d8d8;\n}\n.index-module_handleElementInfo__vWIaf .index-module_nameEdit__eVzQ- {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n}\n.index-module_handleElementInfo__vWIaf .index-module_nameEdit__eVzQ- input {\n padding: 2px 0;\n}\n.index-module_handleElementInfo__vWIaf .index-module_nameEdit__eVzQ- .index-module_edit__b0r9I {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n cursor: pointer;\n}\n.index-module_handleElementInfo__vWIaf .index-module_boundaryOther__FyJvt {\n padding-top: 4px;\n border-top: 1px solid rgb(197, 197, 197);\n}\n.index-module_handleElementInfo__vWIaf .index-module_handle__4mIxr {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 0px 0 4px 0;\n}\n\n.index-module_doodleInfo__bd2ua .index-module_time__1bUFf {\n width: 100%;\n}\n.index-module_doodleInfo__bd2ua .index-module_exist__gWtNo {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n}\n.index-module_doodleInfo__bd2ua .index-module_tip__1HNmj {\n color: #ff3f33;\n margin-top: 10px;\n font-size: 14px;\n font-weight: 400;\n line-height: 16px;\n}\n\n.index-module_areaInfo__-WJPL {\n color: #9e9e9e;\n width: 100%;\n font-size: 14px;\n font-weight: 400;\n line-height: 16px; /* 114.286% */\n}\n.index-module_areaInfo__-WJPL .index-module_areaItem__fk-i2 {\n display: flex;\n justify-content: space-between;\n padding: 6px 0;\n}\n.index-module_areaInfo__-WJPL .index-module_areaItem__fk-i2:not(:last-child) {\n margin-bottom: 4px;\n}\n\n.index-module_boundaryInfo__VfR-N .index-module_otherEdit__17SuM {\n color: #1f1f1f;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n}\n.index-module_boundaryInfo__VfR-N .index-module_otherEdit__17SuM .index-module_otherItem__ATLFZ {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n}\n.index-module_boundaryInfo__VfR-N .index-module_otherEdit__17SuM .index-module_otherItem__ATLFZ .index-module_value__x3-se {\n margin-left: auto;\n}\n.index-module_boundaryInfo__VfR-N .index-module_otherEdit__17SuM .index-module_otherItem__ATLFZ .index-module_icon__167WB {\n width: 16px;\n height: 16px;\n cursor: pointer;\n}";
20456
- var styles$9 = {"handleElementInfo":"index-module_handleElementInfo__vWIaf","border":"index-module_border__iPL--","undoAndRedo":"index-module_undoAndRedo__EKeA8","undo":"index-module_undo__lPY1X","redo":"index-module_redo__EU5u-","disabled":"index-module_disabled__w6gCJ","nameEdit":"index-module_nameEdit__eVzQ-","handle":"index-module_handle__4mIxr","doodleInfo":"index-module_doodleInfo__bd2ua","time":"index-module_time__1bUFf","exist":"index-module_exist__gWtNo","tip":"index-module_tip__1HNmj","areaInfo":"index-module_areaInfo__-WJPL","areaItem":"index-module_areaItem__fk-i2","boundaryInfo":"index-module_boundaryInfo__VfR-N","otherEdit":"index-module_otherEdit__17SuM","otherItem":"index-module_otherItem__ATLFZ","value":"index-module_value__x3-se","icon":"index-module_icon__167WB"};
20457
- styleInject(css_248z$9);
20458
-
20459
- var css_248z$8 = ".index-module_infoHeader__l9F6q {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding: 6px 0;\n}\n.index-module_infoHeader__l9F6q .index-module_headerIcon__sK1hg {\n width: 16px;\n height: 16px;\n}\n.index-module_infoHeader__l9F6q .index-module_headerName__UGnrH {\n margin-left: 4px;\n color: rgb(158, 158, 158);\n font-weight: 500;\n font-size: 14px;\n line-height: 16px;\n pointer-events: none;\n}\n.index-module_infoHeader__l9F6q .index-module_headerHandle__ymh7f {\n margin-left: auto;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n}\n.index-module_infoHeader__l9F6q .index-module_headerHandle__ymh7f .index-module_focus__llcox {\n width: 16px;\n height: 16px;\n cursor: pointer;\n}\n.index-module_infoHeader__l9F6q .index-module_headerHandle__ymh7f .index-module_delete__hD4-Q {\n width: 16px;\n height: 16px;\n margin-left: 8px;\n cursor: pointer;\n}";
20460
- var styles$8 = {"infoHeader":"index-module_infoHeader__l9F6q","headerIcon":"index-module_headerIcon__sK1hg","headerName":"index-module_headerName__UGnrH","headerHandle":"index-module_headerHandle__ymh7f","focus":"index-module_focus__llcox","delete":"index-module_delete__hD4-Q"};
20461
- styleInject(css_248z$8);
20462
-
20463
- var _path$6;
20464
- function _extends$8() { return _extends$8 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$8.apply(null, arguments); }
20465
- var SvgFocus = function SvgFocus(props) {
20466
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$8({
20467
- xmlns: "http://www.w3.org/2000/svg",
20468
- width: 16,
20469
- height: 16,
20470
- fill: "none"
20471
- }, props), _path$6 || (_path$6 = /*#__PURE__*/React__namespace.createElement("path", {
20472
- fill: "#FF5A00",
20473
- d: "M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5m-1.733-4h-.022c-.728 0-1.306 0-1.77.038-.476.039-.878.12-1.246.307a3.17 3.17 0 0 0-1.384 1.384c-.187.367-.268.77-.307 1.246-.038.464-.038 1.042-.038 1.77v.022a.5.5 0 0 0 1 0c0-.755 0-1.292.035-1.711.033-.413.098-.67.201-.873.208-.408.54-.74.947-.947.203-.103.46-.167.873-.201.42-.034.956-.035 1.71-.035a.5.5 0 0 0 0-1m3.466 1c.756 0 1.292 0 1.711.035.413.033.67.098.873.201.408.208.74.54.947.947.103.203.167.46.201.873.034.42.035.956.035 1.71a.5.5 0 0 0 1 0v-.021c0-.728 0-1.306-.038-1.77-.039-.476-.12-.878-.307-1.246a3.17 3.17 0 0 0-1.384-1.384c-.368-.187-.77-.268-1.246-.307-.464-.038-1.042-.038-1.77-.038h-.022a.5.5 0 0 0 0 1M2.5 9.733a.5.5 0 0 0-1 0v.022c0 .728 0 1.306.038 1.77.039.476.12.878.307 1.246.304.596.788 1.08 1.384 1.384.367.187.77.268 1.246.307.464.038 1.042.038 1.77.038h.022a.5.5 0 0 0 0-1c-.755 0-1.292 0-1.711-.035-.413-.033-.67-.098-.873-.201a2.17 2.17 0 0 1-.947-.947c-.103-.203-.167-.46-.201-.873-.034-.42-.035-.956-.035-1.71m12 0a.5.5 0 0 0-1 0c0 .756 0 1.292-.035 1.711-.033.413-.098.67-.201.873-.208.408-.54.74-.947.947-.203.103-.46.167-.873.201-.42.034-.956.035-1.71.035a.5.5 0 0 0 0 1h.021c.728 0 1.306 0 1.77-.038.476-.039.878-.12 1.246-.307a3.17 3.17 0 0 0 1.384-1.384c.187-.368.268-.77.307-1.246.038-.464.038-1.042.038-1.77z"
20474
- })));
20475
- };
20476
-
20477
- var _path$5;
20478
- function _extends$7() { return _extends$7 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$7.apply(null, arguments); }
20479
- var SvgDelete = function SvgDelete(props) {
20480
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$7({
20481
- xmlns: "http://www.w3.org/2000/svg",
20482
- width: 16,
20483
- height: 16,
20484
- fill: "none"
20485
- }, props), _path$5 || (_path$5 = /*#__PURE__*/React__namespace.createElement("path", {
20486
- fill: "#FF5A00",
20487
- d: "M4.667 14q-.55 0-.942-.391a1.29 1.29 0 0 1-.392-.942V4h-.666V2.667H6V2h4v.667h3.333V4h-.666v8.667q0 .549-.392.942-.39.391-.942.391zM6 11.333h1.333v-6H6zm2.667 0H10v-6H8.667z"
20488
- })));
20489
- };
20490
-
20491
- const Header = ({ handleDelete, handleFocus, showFocus = false, showDelete = true, type, }) => {
20492
- const currentType = React.useMemo(() => {
20493
- return DATE_TYPE_MAP.find((item) => item.type === type);
20494
- }, [type]);
20495
- return (jsxRuntime.jsxs("div", { className: styles$8.infoHeader, children: [jsxRuntime.jsx("div", { className: styles$8.headerIcon, children: currentType?.icon }), jsxRuntime.jsx("div", { className: styles$8.headerName, children: currentType?.label }), jsxRuntime.jsxs("div", { className: styles$8.headerHandle, children: [showFocus && (jsxRuntime.jsx("div", { className: styles$8.focus, onClick: handleFocus, children: jsxRuntime.jsx(SvgFocus, {}) })), showDelete && (jsxRuntime.jsx("div", { className: styles$8.delete, onClick: handleDelete, children: jsxRuntime.jsx(SvgDelete, {}) }))] })] }));
20496
- };
20497
-
20498
- var css_248z$7 = ".index-module_nameEdit__O5bL0 {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n width: 100%;\n}\n.index-module_nameEdit__O5bL0 .index-module_content__Bi2fa {\n flex: 1;\n line-height: 28px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.index-module_nameEdit__O5bL0 .index-module_edit__3yRM0 {\n width: 16px;\n height: 16px;\n cursor: pointer;\n}";
20499
- var styles$7 = {"nameEdit":"index-module_nameEdit__O5bL0","content":"index-module_content__Bi2fa","edit":"index-module_edit__3yRM0"};
20500
- styleInject(css_248z$7);
20501
-
20502
- var _path$4;
20503
- function _extends$6() { return _extends$6 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$6.apply(null, arguments); }
20504
- var SvgEdit = function SvgEdit(props) {
20505
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$6({
20506
- xmlns: "http://www.w3.org/2000/svg",
20507
- width: 16,
20508
- height: 16,
20509
- fill: "none"
20510
- }, props), _path$4 || (_path$4 = /*#__PURE__*/React__namespace.createElement("path", {
20511
- fill: "#FF5A00",
20512
- d: "M9.068 1.916a.751.751 0 0 1 0 1.501h-4.9a.75.75 0 0 0-.75.75v7.667c0 .414.336.75.75.75h7.667c.414 0 .75-.336.75-.75v-4.9a.75.75 0 0 1 1.5 0v4.9a2.25 2.25 0 0 1-2.25 2.25H4.168a2.25 2.25 0 0 1-2.25-2.25V4.167a2.25 2.25 0 0 1 2.25-2.251zm3.735.22a.75.75 0 0 1 1.06 1.061L8.53 8.53a.75.75 0 0 1-1.06-1.06z"
20513
- })));
20514
- };
20515
-
20516
- const NameModal = ({ title, name, open, setOpen, onOk }) => {
20517
- const [nameValue, setNameValue] = React.useState('');
20518
- React.useEffect(() => {
20519
- if (open) {
20520
- setNameValue(name || '');
20521
- }
20522
- }, [name, open]);
20523
- return (jsxRuntime.jsx(CustomModal, { title: `${title}`, titleCenter: true, open: open, onOk: () => {
20524
- onOk?.(nameValue);
20525
- setOpen(false);
20526
- }, onCancel: () => setOpen(false), okText: "Confirm", afterClose: () => {
20527
- setNameValue('');
20528
- }, children: jsxRuntime.jsx(antd.Input, { maxLength: 12, showCount: true, placeholder: "Please enter boundary name", value: nameValue, onChange: (e) => setNameValue(e.target.value) }) }));
20529
- };
20530
-
20531
- const NameEdit = ({ title, name, onChange }) => {
20532
- const [open, setOpen] = React.useState(false);
20533
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", { className: styles$7.nameEdit, children: [jsxRuntime.jsx("div", { className: styles$7.content, children: name }), jsxRuntime.jsx("div", { className: styles$7.edit, onClick: () => setOpen(true), children: jsxRuntime.jsx(SvgEdit, {}) })] }), jsxRuntime.jsx(NameModal, { title: title, name: name, open: open, setOpen: setOpen, onOk: onChange })] }));
20534
- };
20535
-
20536
- var _path$3;
20537
- function _extends$5() { return _extends$5 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$5.apply(null, arguments); }
20538
- var SvgArrow = function SvgArrow(props) {
20539
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$5({
20540
- xmlns: "http://www.w3.org/2000/svg",
20541
- width: 16,
20542
- height: 16,
20543
- fill: "none"
20544
- }, props), _path$3 || (_path$3 = /*#__PURE__*/React__namespace.createElement("path", {
20545
- fill: "#1F1F1F",
20546
- d: "M11.523 7.704c.005.014.015.026.02.04.049.125.065.268.046.406a.73.73 0 0 1-.152.363l-3.88 4.638a.47.47 0 0 1-.377.182.49.49 0 0 1-.369-.208.77.77 0 0 1-.144-.477.76.76 0 0 1 .164-.466l3.483-4.162-3.468-4.224a.77.77 0 0 1-.15-.462c0-.172.053-.338.148-.463a.49.49 0 0 1 .36-.204.47.47 0 0 1 .371.17l3.845 4.682q.007.017.017.032.008.01.018.019c.032.04.046.09.067.134"
20547
- })));
20548
- };
20549
-
20550
- var css_248z$6 = ".index-module_item__wwHEt {\n font-weight: 400;\n font-size: 14px;\n line-height: 16px;\n display: flex;\n align-items: center;\n padding: 6px 0;\n}\n.index-module_item__wwHEt:not(:last-child) {\n margin-bottom: 4px;\n}";
20551
- var styles$6 = {"item":"index-module_item__wwHEt"};
20552
- styleInject(css_248z$6);
20553
-
20554
- const Item = ({ children }) => {
20555
- return (jsxRuntime.jsx("div", { className: styles$6.item, children: children }));
20556
- };
20557
-
20558
- var css_248z$5 = ".index-module_edgeMowing__kmHPN .index-module_item__O2omj {\n border-bottom: 1px solid #C5C5C5;\n margin-bottom: 20px;\n}\n.index-module_edgeMowing__kmHPN .index-module_item__O2omj .index-module_content__ENa5I {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 4px 0;\n}\n.index-module_edgeMowing__kmHPN .index-module_item__O2omj .index-module_tip__BoRNQ {\n color: #9E9E9E;\n font-size: 14px;\n font-weight: 400;\n line-height: 16px;\n padding: 10px 0;\n}";
20559
- var styles$5 = {"edgeMowing":"index-module_edgeMowing__kmHPN","item":"index-module_item__O2omj","content":"index-module_content__ENa5I","tip":"index-module_tip__BoRNQ"};
20560
- styleInject(css_248z$5);
20561
-
20562
- const MowingEdgeModal = ({ open, setOpen, onChange, value }) => {
20563
- const [currentValue, setCurrentValue] = React.useState({});
20564
- const handleOk = () => {
20565
- onChange(currentValue);
20566
- setOpen(false);
20567
- };
20568
- React.useEffect(() => {
20569
- if (!open)
20570
- return;
20571
- setCurrentValue(value);
20572
- }, [open]);
20573
- return (jsxRuntime.jsx(CustomModal, { title: "Edge Mowing", titleCenter: true, open: open, onCancel: () => setOpen(false), onOk: handleOk, afterClose: () => {
20574
- setCurrentValue({});
20575
- }, children: jsxRuntime.jsxs("div", { className: styles$5.edgeMowing, children: [jsxRuntime.jsxs("div", { className: styles$5.item, children: [jsxRuntime.jsxs("div", { className: styles$5.content, children: [jsxRuntime.jsx("div", { className: styles$5.label, children: "Mow along boundary" }), jsxRuntime.jsx("div", { className: styles$5.value, children: jsxRuntime.jsx(antd.Switch, { checked: currentValue['edgeMowing'], onChange: (val) => setCurrentValue({
20576
- obstacleMowEdge: currentValue?.obstacleMowEdge,
20577
- edgeMowing: val,
20578
- }) }) })] }), jsxRuntime.jsx("div", { className: styles$5.tip, children: "When enabled, the mower will mow along the selected boundary." })] }), jsxRuntime.jsxs("div", { className: styles$5.item, children: [jsxRuntime.jsxs("div", { className: styles$5.content, children: [jsxRuntime.jsx("div", { className: styles$5.label, children: "Mow around off-limit island" }), jsxRuntime.jsx("div", { className: styles$5.value, children: jsxRuntime.jsx(antd.Switch, { value: currentValue['obstacleMowEdge'], onChange: (val) => setCurrentValue({
20579
- obstacleMowEdge: val,
20580
- edgeMowing: currentValue?.edgeMowing,
20581
- }) }) })] }), jsxRuntime.jsx("div", { className: styles$5.tip, children: "When enabled, the mower will mow around the off-limit islands within the selected mowing zone." })] })] }) }));
20582
- };
20583
-
20584
- var css_248z$4 = ".index-module_zoneHeightModal__ehNMQ {\n padding: 0 10px;\n}\n.index-module_zoneHeightModal__ehNMQ .ant-radio-group {\n display: block;\n}\n.index-module_zoneHeightModal__ehNMQ .index-module_item__wQUzZ {\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 14px;\n opacity: 0.4;\n}\n.index-module_zoneHeightModal__ehNMQ .index-module_item__wQUzZ.index-module_checked__xbxQ4 {\n opacity: 1;\n}\n.index-module_zoneHeightModal__ehNMQ .index-module_item__wQUzZ:not(:last-child) {\n margin-bottom: 20px;\n}\n.index-module_zoneHeightModal__ehNMQ .index-module_item__wQUzZ .index-module_right__IuIfk {\n text-align: right;\n width: 300px;\n margin-left: auto;\n}";
20585
- var styles$4 = {"zoneHeightModal":"index-module_zoneHeightModal__ehNMQ","item":"index-module_item__wQUzZ","checked":"index-module_checked__xbxQ4","right":"index-module_right__IuIfk"};
20586
- styleInject(css_248z$4);
20587
-
20588
- const CutHeightSlider = ({ units, value, onChange, heightOptions, ...rest }) => {
20589
- const converteOptions = React.useCallback((options) => {
20590
- return options.map((item) => ({
20591
- label: units === UnitsType.Metric
20592
- ? `${item}`
20593
- : `${convertCutHeightFormatted(item)}`,
20594
- value: item,
20595
- }));
20596
- }, [units, convertCutHeightFormatted]);
20597
- const options = React.useMemo(() => {
20598
- if (heightOptions && heightOptions?.length > 0) {
20599
- return converteOptions(heightOptions);
20600
- }
20601
- return [];
20602
- }, [heightOptions, converteOptions]);
20603
- return (jsxRuntime.jsx(antd.Slider, { value: value, ...rest, tooltip: {
20604
- open: false,
20605
- }, step: null, min: options?.[0]?.value, max: options?.[options?.length - 1]?.value, marks: options?.reduce((acc, item) => {
20606
- acc[item?.value] = {
20607
- label: item?.label,
20608
- style: {
20609
- color: item?.value === Number(value)
20610
- ? 'rgba(241, 102, 41, 1)'
20611
- : 'rgba(0, 0, 0, 0.20)',
20612
- fontWeight: item?.value === Number(value) ? 'bold' : 'normal',
20613
- },
20614
- };
20615
- return acc;
20616
- }, {}), onChange: onChange }));
20617
- };
20618
-
20619
- var ZoneHeightModalTypeEnum;
20620
- (function (ZoneHeightModalTypeEnum) {
20621
- ZoneHeightModalTypeEnum[ZoneHeightModalTypeEnum["GLOBAL"] = 1] = "GLOBAL";
20622
- ZoneHeightModalTypeEnum[ZoneHeightModalTypeEnum["RADIO"] = 0] = "RADIO";
20623
- })(ZoneHeightModalTypeEnum || (ZoneHeightModalTypeEnum = {}));
20624
- const HeightModal = ({ zoneName, open, setOpen, onChange, value, heightOptions, globalHeight, }) => {
20625
- const { unitType } = useCommonContext();
20626
- const [currentValue, setCurrentValue] = React.useState(value);
20627
- const handleOk = React.useCallback(() => {
20628
- setOpen(false);
20629
- onChange?.(currentValue);
20630
- }, [currentValue, setOpen, onChange]);
20631
- const onHeightChange = React.useCallback((value) => {
20632
- console.log('change->', value);
20633
- setCurrentValue({
20634
- cuttingHeight: value,
20635
- isFlowGlobal: ZoneHeightModalTypeEnum.RADIO,
20636
- });
20637
- }, []);
20638
- console.log('globalHeight', globalHeight, heightOptions);
20639
- React.useEffect(() => {
20640
- if (!open)
20641
- return;
20642
- setCurrentValue(value);
20643
- }, [value, open]);
20644
- return (jsxRuntime.jsx(CustomModal, { title: `${zoneName} cutting height`, titleCenter: true, width: 600, open: open, onCancel: () => setOpen(false), onOk: handleOk, okText: "Confirm", afterClose: () => { }, children: jsxRuntime.jsx("div", { className: styles$4.zoneHeightModal, children: jsxRuntime.jsxs(antd.Radio.Group, { value: currentValue?.isFlowGlobal, onChange: (e) => setCurrentValue({
20645
- isFlowGlobal: e.target.value,
20646
- cuttingHeight: currentValue?.cuttingHeight,
20647
- }), children: [jsxRuntime.jsxs("div", { className: classNames(styles$4.item, {
20648
- [styles$4.checked]: currentValue?.isFlowGlobal === ZoneHeightModalTypeEnum.GLOBAL,
20649
- }), children: [jsxRuntime.jsx("div", { className: styles$4.left, children: jsxRuntime.jsx(antd.Radio, { value: ZoneHeightModalTypeEnum.GLOBAL, children: "Global" }) }), jsxRuntime.jsx("div", { className: styles$4.right, children: jsxRuntime.jsx("span", { style: { color: 'rgba(241, 102, 41, 1)' }, children: generateHeightStr(globalHeight, unitType, true) }) })] }), jsxRuntime.jsxs("div", { className: classNames(styles$4.item, {
20650
- [styles$4.checked]: currentValue?.isFlowGlobal === ZoneHeightModalTypeEnum.RADIO,
20651
- }), children: [jsxRuntime.jsx("div", { className: styles$4.left, children: jsxRuntime.jsxs(antd.Radio, { value: ZoneHeightModalTypeEnum.RADIO, children: ["Customize zone height (", getHeightUnit(unitType), ")"] }) }), jsxRuntime.jsx("div", { className: styles$4.right, children: jsxRuntime.jsx(CutHeightSlider, { units: unitType, value: currentValue?.cuttingHeight, heightOptions: heightOptions, onChange: onHeightChange }) })] })] }) }) }));
20652
- };
20653
-
20654
- var css_248z$3 = ".index-module_directions__Hv0zx {\n color: #1d1d1d;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n}\n.index-module_directions__Hv0zx .index-module_default__sSWp4 {\n position: absolute;\n bottom: 20px;\n left: 9px;\n}\n.index-module_directions__Hv0zx .index-module_tips__VVEuO {\n line-height: 16px;\n}\n.index-module_directions__Hv0zx .index-module_optimal__07le4 {\n color: rgb(255, 113, 51);\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: 6px;\n margin: 4px 0 12px;\n}\n.index-module_directions__Hv0zx .index-module_content__PiCFf {\n position: relative;\n width: 100%;\n margin-bottom: 12px;\n}\n.index-module_directions__Hv0zx .index-module_background__WM4u- {\n position: absolute;\n width: 100%;\n height: 300px;\n background: #f5f5f5;\n border-radius: 8px;\n z-index: 0;\n overflow: hidden;\n}\n.index-module_directions__Hv0zx .index-module_luppan__nGfH2 {\n inset: 0;\n z-index: 1;\n}\n.index-module_directions__Hv0zx .index-module_slideTip__RGnd1 {\n margin: 20px 0;\n}\n.index-module_directions__Hv0zx .index-module_slider__VDKnB {\n padding: 0 24px;\n}";
20655
- var styles$3 = {"directions":"index-module_directions__Hv0zx","default":"index-module_default__sSWp4","tips":"index-module_tips__VVEuO","optimal":"index-module_optimal__07le4","content":"index-module_content__PiCFf","background":"index-module_background__WM4u-","luppan":"index-module_luppan__nGfH2","slideTip":"index-module_slideTip__RGnd1","slider":"index-module_slider__VDKnB"};
20656
- styleInject(css_248z$3);
20657
-
20658
- var css_248z$2 = ".style-module_commonModalContainer__WHZnl {\n width: inherit;\n height: inherit;\n}\n.style-module_commonModalContainer__WHZnl .style-module_commonModalContent__UQ98C {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n}\n.style-module_commonModalContainer__WHZnl .style-module_commonModalContent__UQ98C .style-module_content__tR9Fh {\n display: flex;\n flex-direction: column;\n width: 300px;\n height: 100%;\n position: relative;\n}\n.style-module_commonModalContainer__WHZnl .style-module_commonModalContent__UQ98C .style-module_content__tR9Fh .style-module_directText__b7QUs {\n padding-top: 15px;\n color: #1d1d1d;\n text-align: center;\n font-size: 16px;\n font-weight: 600;\n line-height: 24px;\n}\n.style-module_commonModalContainer__WHZnl .style-module_commonModalContent__UQ98C .style-module_content__tR9Fh .style-module_directOption__IFsis {\n position: absolute;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n pointer-events: none;\n}\n.style-module_commonModalContainer__WHZnl .style-module_commonModalContent__UQ98C .style-module_content__tR9Fh .style-module_directOption__IFsis .style-module_leftTop__H39Uk {\n width: 22px;\n height: 18px;\n position: absolute;\n top: -5px;\n left: 50%;\n transform: translate(-50%, 0) rotate(90deg);\n}\n.style-module_commonModalContainer__WHZnl .style-module_commonModalContent__UQ98C .style-module_content__tR9Fh .style-module_directOption__IFsis .style-module_rightBottom__f3c7n {\n width: 22px;\n height: 18px;\n position: absolute;\n bottom: -5px;\n left: 50%;\n transform: translate(-50%, 0) rotate(-90deg);\n}\n.style-module_commonModalContainer__WHZnl .style-module_commonModalContent__UQ98C .style-module_content__tR9Fh .style-module_directDialPlateBox__tie9n {\n flex: 1;\n min-height: 293px;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.style-module_commonModalContainer__WHZnl .style-module_commonModalContent__UQ98C .style-module_content__tR9Fh .style-module_directDialPlateBox__tie9n .style-module_directDialPlate__zkFHk {\n position: relative;\n width: 293px;\n height: 293px;\n border-radius: 50%;\n}\n.style-module_commonModalContainer__WHZnl .style-module_commonModalContent__UQ98C .style-module_content__tR9Fh .style-module_directDialPlateBox__tie9n .style-module_directDialPlate__zkFHk .style-module_directLineMain__p60DH {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n}\n.style-module_commonModalContainer__WHZnl .style-module_commonModalContent__UQ98C .style-module_content__tR9Fh .style-module_directDialPlateBox__tie9n .style-module_directDialPlate__zkFHk .style-module_directLineMain__p60DH .style-module_directLineContent__D9N62 {\n position: absolute;\n left: 50%;\n top: 50%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 224px;\n cursor: pointer;\n}\n.style-module_commonModalContainer__WHZnl .style-module_commonModalContent__UQ98C .style-module_content__tR9Fh .style-module_directDialPlateBox__tie9n .style-module_directDialPlate__zkFHk .style-module_directLineMain__p60DH .style-module_directLineContent__D9N62 .style-module_directLineText__DOhL4 {\n flex: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 12px;\n font-weight: 600;\n line-height: 1;\n}\n.style-module_commonModalContainer__WHZnl .style-module_commonModalContent__UQ98C .style-module_content__tR9Fh .style-module_directDialPlateBox__tie9n .style-module_directDialPlate__zkFHk .style-module_directLineMain__p60DH .style-module_directLineContent__D9N62 .style-module_directLine__ngnPh {\n width: 100%;\n height: 186px;\n}\n.style-module_commonModalContainer__WHZnl .style-module_commonModalContent__UQ98C .style-module_content__tR9Fh .style-module_directDialPlateBox__tie9n .style-module_directDialPlate__zkFHk .style-module_directCenterCircle__YUrtv {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 28px;\n height: 28px;\n border: 6px solid #e0e0e6;\n background: #f2f3f6;\n border-radius: 50%;\n box-sizing: border-box;\n}\n.style-module_commonModalContainer__WHZnl .style-module_commonModalContent__UQ98C .style-module_content__tR9Fh .style-module_directDialPlateBox__tie9n .style-module_directDialPlate__zkFHk .style-module_directCenterCircle__YUrtv.style-module_active__ga2w0 {\n border-color: rgb(254, 226, 213);\n}";
20659
- var styles$2 = {"commonModalContainer":"style-module_commonModalContainer__WHZnl","commonModalContent":"style-module_commonModalContent__UQ98C","content":"style-module_content__tR9Fh","directOption":"style-module_directOption__IFsis","leftTop":"style-module_leftTop__H39Uk","rightBottom":"style-module_rightBottom__f3c7n","directDialPlateBox":"style-module_directDialPlateBox__tie9n","directDialPlate":"style-module_directDialPlate__zkFHk","directLineMain":"style-module_directLineMain__p60DH","directLineContent":"style-module_directLineContent__D9N62","directLineText":"style-module_directLineText__DOhL4","directLine":"style-module_directLine__ngnPh","directCenterCircle":"style-module_directCenterCircle__YUrtv","active":"style-module_active__ga2w0"};
20660
- styleInject(css_248z$2);
20661
-
20662
- const DirectionLine = (props) => {
20663
- const { selected = false, ...svgProps } = props;
20664
- const colorMap = React.useMemo(() => {
20665
- if (selected) {
20666
- return {
20667
- circleFill: '#FEE2D5',
20668
- circleStroke: '#FF7133',
20669
- line: '#FF7133',
20670
- };
20671
- }
20672
- return {
20673
- circleFill: '#E0E0E6',
20674
- circleStroke: '#B3B4C3',
20675
- line: '#D2D2E0',
20676
- };
20677
- }, [selected]);
20678
- return (jsxRuntime.jsxs("svg", { width: "16", height: "186", viewBox: "0 0 16 186", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...svgProps, children: [jsxRuntime.jsx("path", { d: "M8.54148 10.4062L7.98535 175.173", stroke: colorMap.line, strokeWidth: "2", strokeDasharray: "5 5" }), jsxRuntime.jsx("circle", { cx: "8.26392", cy: "177.535", r: "6.67359", fill: colorMap.circleFill, stroke: colorMap.circleStroke, strokeWidth: "2" }), jsxRuntime.jsx("circle", { cx: "8.26344", cy: "8.47047", r: "6.67359", fill: colorMap.circleFill, stroke: colorMap.circleStroke, strokeWidth: "2" })] }));
20679
- };
20680
-
20681
- var _g$1, _defs$1;
20682
- function _extends$4() { return _extends$4 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$4.apply(null, arguments); }
20683
- var SvgDirectDialPlate = function SvgDirectDialPlate(props) {
20684
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$4({
20685
- xmlns: "http://www.w3.org/2000/svg",
20686
- width: 293,
20687
- height: 293,
20688
- fill: "none"
20689
- }, props), _g$1 || (_g$1 = /*#__PURE__*/React__namespace.createElement("g", {
20690
- clipPath: "url(#direct-dial-plate_svg__a)"
20691
- }, /*#__PURE__*/React__namespace.createElement("g", {
20692
- opacity: 0.55
20693
- }, /*#__PURE__*/React__namespace.createElement("g", {
20694
- filter: "url(#direct-dial-plate_svg__b)",
20695
- shapeRendering: "crispEdges"
20696
- }, /*#__PURE__*/React__namespace.createElement("circle", {
20697
- cx: 146.549,
20698
- cy: 146.553,
20699
- r: 133.643,
20700
- fill: "#fff",
20701
- fillOpacity: 0.65
20702
- }), /*#__PURE__*/React__namespace.createElement("circle", {
20703
- cx: 146.549,
20704
- cy: 146.553,
20705
- r: 133.643,
20706
- stroke: "#C1C2D1"
20707
- })), /*#__PURE__*/React__namespace.createElement("g", {
20708
- filter: "url(#direct-dial-plate_svg__c)",
20709
- shapeRendering: "crispEdges"
20710
- }, /*#__PURE__*/React__namespace.createElement("circle", {
20711
- cx: 146.549,
20712
- cy: 146.553,
20713
- r: 140,
20714
- fill: "#fff",
20715
- fillOpacity: 0.65
20716
- }), /*#__PURE__*/React__namespace.createElement("circle", {
20717
- cx: 146.549,
20718
- cy: 146.553,
20719
- r: 140,
20720
- stroke: "#fff"
20721
- })), /*#__PURE__*/React__namespace.createElement("circle", {
20722
- cx: 146.549,
20723
- cy: 146.553,
20724
- r: 112,
20725
- fill: "#fff",
20726
- transform: "rotate(90 146.549 146.553)"
20727
- })), /*#__PURE__*/React__namespace.createElement("circle", {
20728
- cx: 146.549,
20729
- cy: 146.553,
20730
- r: 115,
20731
- stroke: "#E0E0E6",
20732
- strokeWidth: 6
20733
- }), /*#__PURE__*/React__namespace.createElement("path", {
20734
- fill: "#E0E0E7",
20735
- d: "m24.863 157.648-.078-.895 6.163-.54q.037.449.075.896zm6.162-21.672-.076.894-6.159-.539.078-.894zm1.346-10.014q-.079.442-.153.886l-6.08-1.071.157-.885zm-6.074 42.25-.156-.885 6.077-1.072q.074.444.153.886zm2.344 10.398-.234-.868 5.954-1.595q.114.434.23.868zm5.95-62.523q-.117.434-.23.869l-5.953-1.594.233-.869zm3.08-9.641-.307.843-5.788-2.105.308-.844zm-5.788 82.319-.307-.845 5.788-2.107q.152.423.307.844zm4.114 9.833-.38-.815 5.587-2.605q.189.408.381.814zM41.585 97.11q-.191.405-.38.814l-5.587-2.604.38-.815zm-.63 110.924-.45-.778 5.345-3.086q.224.39.45.777zm5.347-119.88q-.228.388-.451.777l-5.344-3.084.45-.778zm.412 128.85-.515-.736 5.064-3.546q.256.369.515.735zm4.55-136.626-5.062-3.543.515-.735 5.062 3.544q-.259.366-.515.734m6.713-8.735q-.29.343-.577.688l-4.74-3.977.576-.688zm-4.74 153.795-.577-.689 4.74-3.977q.287.346.577.688zM72.33 57.402q-.345.286-.69.577l-3.977-4.74.689-.578zm-3.977 183.041-.689-.578 3.978-4.74q.342.29.688.577zm11.29-188.662-3.546-5.063.736-.515 3.545 5.062q-.368.256-.735.517M76.834 246.9l-.735-.516 3.545-5.062q.366.26.734.516zM88.93 45.853q-.39.224-.778.451l-3.087-5.346.779-.449zm-3.084 206.741-.779-.449 3.086-5.345q.388.227.778.451zM97.923 41.206q-.408.188-.814.38l-2.605-5.585.813-.38zm-2.604 216.276-.814-.38 2.604-5.585q.407.191.815.38zm9.86 4.043-.844-.307 2.107-5.788q.422.154.844.306zm2.109-224.158q-.423.15-.845.306l-2.107-5.787.845-.308zm8.07 227.327-.868-.233 1.595-5.951q.434.116.869.229zm1.598-230.331q-.435.113-.869.23l-1.595-5.95.868-.233zm8.817 232.599-.884-.156 1.072-6.076q.441.078.885.153zm1.075-234.742q-.444.075-.885.152l-1.072-6.075.884-.156zm10.037-1.27q-.448.037-.895.076l-.539-6.158.895-.078zm-.535 237.365-.895-.079.539-6.159q.447.04.896.077zm20.4 0-.538-6.162q.448-.036.894-.076l.539 6.16zm.36-237.288q-.446-.04-.894-.077l.538-6.16.894.078zm10.029 1.346q-.443-.077-.886-.153l1.071-6.078.885.156zm.187 234.589-1.071-6.08q.443-.075.886-.152l1.071 6.076zm9.688-232.369q-.434-.116-.868-.23l1.594-5.953.867.234zm.728 230.1-1.595-5.954q.435-.113.87-.23l1.593 5.951zm8.912-227.02q-.42-.154-.843-.306l2.106-5.789.844.307zm1.264 223.853-2.106-5.789.844-.307 2.107 5.788zm9.863-4.044-2.603-5.586q.407-.189.813-.38l2.605 5.587zm-1.788-215.894q-.406-.192-.814-.38l2.604-5.587.815.38zm8.954 4.716a98 98 0 0 0-.777-.451l3.086-5.345.778.45zm2.308 206.291-3.085-5.345q.39-.224.776-.451l3.086 5.347zm6.202-200.813q-.367-.26-.735-.516l3.546-5.064.735.515zm2.809 195.119-3.544-5.064.735-.515 3.545 5.063zm5.192-188.922q-.344-.29-.689-.577l3.977-4.74.689.578zm3.288 182.465-3.977-4.742q.345-.287.688-.578l3.978 4.741zM235.7 72.334q-.287-.345-.577-.69l4.741-3.978.577.689zm4.162 153.103-4.739-3.978q.29-.344.577-.689l4.74 3.978zm1.973-145.059q-.257-.368-.517-.734l5.063-3.545.515.735zm4.549 136.626-5.064-3.547q.26-.366.516-.735l5.063 3.547zm.863-128.074q-.224-.39-.45-.776l5.345-3.086.449.777zm4.897 119.105-5.346-3.087q.226-.387.45-.777l5.345 3.087zm-.25-110.112q-.19-.408-.38-.813l5.585-2.605.38.815zm5.205 100.675-5.585-2.606q.191-.405.381-.813l5.584 2.604zm-1.365-91.309q-.151-.423-.306-.844l5.788-2.107.306.845zm5.482 81.477-5.788-2.108q.155-.421.306-.844l5.789 2.108zm-2.479-71.811q-.114-.435-.23-.869l5.951-1.594.232.869zm5.722 61.656-5.951-1.596q.116-.434.229-.867l5.954 1.595zm-3.578-51.762q-.076-.444-.153-.886l6.078-1.071.156.885zm5.923 41.363-6.076-1.072.153-.885 6.079 1.072zm-4.654-31.325q-.035-.447-.075-.894l6.156-.538.079.894zm6.084 20.762-6.159-.54q.04-.447.075-.895l6.162.54z"
20736
- }), /*#__PURE__*/React__namespace.createElement("path", {
20737
- fill: "#B3B4C3",
20738
- d: "M142.291 27.432v-11h1.684l5.82 8.27-1.339-.693h.97v-7.577h1.865v11h-1.677l-5.819-8.279 1.338.694h-.97v7.585zM57.438 66.693l-4.982-4.982.466-.466 7.337 1.287-.497.152.248-.248-4.14-4.14.463-.463 4.983 4.983-.453.452-7.354-1.278.5-.155-.248.249 4.143 4.143zM63.66 60.471l-6.353-3.611.49-.49 5.342 3.159.034-.035-3.052-5.448.466-.466 5.452 3.048.031-.03-3.156-5.346.487-.486 3.612 6.352-.435.436-5.387-2.942-.034.034 2.942 5.387zM52.28 232.95q-.53-.53-.753-1.105a2.3 2.3 0 0 1-.152-1.119q.07-.546.428-.98l.035-.042.47.47-.035.041a1.2 1.2 0 0 0-.27.698q-.024.396.163.818.189.424.573.808.376.376.79.542.419.162.801.11.387-.055.667-.335l.003-.003a1.07 1.07 0 0 0 .325-.843q-.022-.497-.466-1.204l-.398-.625q-.583-.922-.593-1.582-.007-.663.507-1.177l.004-.004q.397-.397.922-.486a2.1 2.1 0 0 1 1.09.11 2.9 2.9 0 0 1 1.064.704q.487.487.687 1.033.203.549.135 1.06-.063.51-.394.897l-.038.045-.47-.469.032-.045a1.2 1.2 0 0 0 .234-.628q.032-.357-.124-.739a2.15 2.15 0 0 0-.51-.732 2.2 2.2 0 0 0-.736-.501 1.47 1.47 0 0 0-.76-.11q-.367.048-.646.328l-.003.003a.98.98 0 0 0-.297.794q.03.467.47 1.16l.393.629q.405.638.539 1.139.138.504.028.911a1.7 1.7 0 0 1-.456.753l-.004.004a1.9 1.9 0 0 1-.994.545q-.552.103-1.14-.117-.586-.222-1.122-.756M56.209 236.672l3.611-6.353.49.49-3.159 5.341.035.035 5.448-3.052.466.466-3.049 5.452.032.031 5.344-3.156.487.487-6.353 3.611-.435-.435 2.942-5.386-.035-.035-5.386 2.942zM235.144 238.465q-.529.528-1.105.753a2.3 2.3 0 0 1-1.119.151 1.9 1.9 0 0 1-.98-.428l-.042-.034.47-.47.041.035q.301.245.698.269a1.75 1.75 0 0 0 .818-.162 2.7 2.7 0 0 0 .808-.573q.377-.377.542-.791.162-.417.111-.801a1.15 1.15 0 0 0-.335-.666l-.004-.004a1.07 1.07 0 0 0-.842-.324q-.498.02-1.205.466l-.625.397q-.922.583-1.581.594-.663.006-1.178-.508l-.003-.003a1.7 1.7 0 0 1-.487-.922 2.1 2.1 0 0 1 .11-1.091q.208-.566.705-1.064a2.9 2.9 0 0 1 1.032-.687q.549-.203 1.06-.134.511.061.898.393l.045.038-.47.47-.045-.031a1.18 1.18 0 0 0-.628-.235 1.6 1.6 0 0 0-.739.124 2.2 2.2 0 0 0-.732.511q-.345.346-.501.736a1.5 1.5 0 0 0-.11.759q.048.366.328.646l.003.003a.98.98 0 0 0 .794.297q.466-.03 1.161-.469l.628-.394q.64-.404 1.139-.539.504-.138.912-.027.406.11.753.456l.003.003q.442.442.545.994.104.553-.117 1.14-.22.587-.756 1.122M237.875 235.527l-4.982-4.983 3.007-3.007.425.425-2.538 2.538 1.796 1.795 2.413-2.414.421.422-2.413 2.413 1.916 1.916 2.538-2.537.424.424zM226.781 57.137l4.982-4.983.467.466-1.288 7.337-.152-.497.248.249 4.14-4.14.463.463-4.982 4.982-.453-.452 1.278-7.355.155.501-.248-.249-4.144 4.144zM231.943 62.298l4.982-4.982 3.008 3.007-.425.425-2.538-2.538-1.795 1.796 2.413 2.413-.421.421-2.413-2.413-1.917 1.916 2.538 2.538-.425.425zM266.486 152.604l-.197-11.065 6.803-.135.03 1.664-4.924.098.053 2.998 4.655-.092.028 1.572-4.655.092.057 3.167 4.923-.097.03 1.664zM146.805 276.672q-1.278 0-2.222-.378-.936-.377-1.476-1.052a2.8 2.8 0 0 1-.609-1.576l-.008-.102h1.903l.007.073q.047.443.366.77.327.326.867.515.541.182 1.233.182.663 0 1.172-.196.51-.196.799-.538.29-.348.29-.798v-.008a1.11 1.11 0 0 0-.465-.922q-.464-.363-1.529-.581l-1.18-.232q-1.69-.342-2.458-1.089-.762-.756-.761-1.924v-.007q0-.937.517-1.641.525-.705 1.439-1.097.92-.399 2.108-.399 1.218 0 2.108.392.89.384 1.4 1.053.51.667.571 1.51l.008.094h-1.872l-.016-.087a1.34 1.34 0 0 0-.357-.719 1.9 1.9 0 0 0-.754-.493 3.1 3.1 0 0 0-1.103-.182q-.602 0-1.073.182-.473.174-.746.493-.267.32-.267.77v.007q0 .552.449.915.457.363 1.484.567l1.18.239q1.157.233 1.88.617.723.385 1.058.959.342.565.342 1.365v.007q0 1.016-.525 1.757-.518.74-1.484 1.147-.959.407-2.276.407M16.514 152.004l-2.706-10h1.874l1.734 7.505h.098l1.993-7.505h1.601l2.014 7.505h.098l1.728-7.505h1.86l-2.7 10h-1.692l-2.056-7.159h-.105l-2.042 7.159z"
20739
- }))), _defs$1 || (_defs$1 = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("filter", {
20740
- id: "direct-dial-plate_svg__b",
20741
- width: 276.285,
20742
- height: 276.285,
20743
- x: 8.406,
20744
- y: 8.41,
20745
- colorInterpolationFilters: "sRGB",
20746
- filterUnits: "userSpaceOnUse"
20747
- }, /*#__PURE__*/React__namespace.createElement("feFlood", {
20748
- floodOpacity: 0,
20749
- result: "BackgroundImageFix"
20750
- }), /*#__PURE__*/React__namespace.createElement("feColorMatrix", {
20751
- "in": "SourceAlpha",
20752
- result: "hardAlpha",
20753
- values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
20754
- }), /*#__PURE__*/React__namespace.createElement("feOffset", null), /*#__PURE__*/React__namespace.createElement("feGaussianBlur", {
20755
- stdDeviation: 2
20756
- }), /*#__PURE__*/React__namespace.createElement("feComposite", {
20757
- in2: "hardAlpha",
20758
- operator: "out"
20759
- }), /*#__PURE__*/React__namespace.createElement("feColorMatrix", {
20760
- values: "0 0 0 0 0.0683333 0 0 0 0 0.103468 0 0 0 0 0.133333 0 0 0 0.25 0"
20761
- }), /*#__PURE__*/React__namespace.createElement("feBlend", {
20762
- in2: "BackgroundImageFix",
20763
- result: "effect1_dropShadow_10512_51195"
20764
- }), /*#__PURE__*/React__namespace.createElement("feBlend", {
20765
- "in": "SourceGraphic",
20766
- in2: "effect1_dropShadow_10512_51195",
20767
- result: "shape"
20768
- })), /*#__PURE__*/React__namespace.createElement("filter", {
20769
- id: "direct-dial-plate_svg__c",
20770
- width: 291,
20771
- height: 291,
20772
- x: 1.049,
20773
- y: 1.053,
20774
- colorInterpolationFilters: "sRGB",
20775
- filterUnits: "userSpaceOnUse"
20776
- }, /*#__PURE__*/React__namespace.createElement("feFlood", {
20777
- floodOpacity: 0,
20778
- result: "BackgroundImageFix"
20779
- }), /*#__PURE__*/React__namespace.createElement("feColorMatrix", {
20780
- "in": "SourceAlpha",
20781
- result: "hardAlpha",
20782
- values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
20783
- }), /*#__PURE__*/React__namespace.createElement("feOffset", null), /*#__PURE__*/React__namespace.createElement("feGaussianBlur", {
20784
- stdDeviation: 2.5
20785
- }), /*#__PURE__*/React__namespace.createElement("feComposite", {
20786
- in2: "hardAlpha",
20787
- operator: "out"
20788
- }), /*#__PURE__*/React__namespace.createElement("feColorMatrix", {
20789
- values: "0 0 0 0 0.0683333 0 0 0 0 0.103468 0 0 0 0 0.133333 0 0 0 0.5 0"
20790
- }), /*#__PURE__*/React__namespace.createElement("feBlend", {
20791
- in2: "BackgroundImageFix",
20792
- result: "effect1_dropShadow_10512_51195"
20793
- }), /*#__PURE__*/React__namespace.createElement("feBlend", {
20794
- "in": "SourceGraphic",
20795
- in2: "effect1_dropShadow_10512_51195",
20796
- result: "shape"
20797
- })), /*#__PURE__*/React__namespace.createElement("clipPath", {
20798
- id: "direct-dial-plate_svg__a"
20799
- }, /*#__PURE__*/React__namespace.createElement("path", {
20800
- fill: "#fff",
20801
- d: "M.549 292.553v-292h292v292z"
20802
- })))));
20803
- };
20804
-
20805
- var _g, _defs;
20806
- function _extends$3() { return _extends$3 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$3.apply(null, arguments); }
20807
- var SvgOption = function SvgOption(props) {
20808
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$3({
20809
- xmlns: "http://www.w3.org/2000/svg",
20810
- width: 22,
20811
- height: 18,
20812
- fill: "none"
20813
- }, props), _g || (_g = /*#__PURE__*/React__namespace.createElement("g", {
20814
- filter: "url(#option_svg__a)"
20815
- }, /*#__PURE__*/React__namespace.createElement("mask", {
20816
- id: "option_svg__b",
20817
- width: 18,
20818
- height: 15,
20819
- x: 2,
20820
- y: 0.612,
20821
- fill: "#000",
20822
- maskUnits: "userSpaceOnUse"
20823
- }, /*#__PURE__*/React__namespace.createElement("path", {
20824
- fill: "#fff",
20825
- d: "M2 .612h18v15H2z"
20826
- }), /*#__PURE__*/React__namespace.createElement("path", {
20827
- d: "M4 4.39a1 1 0 0 1 1.599-.801l4.419 3.302h7.27v1.992H10.32L5.6 12.412A1 1 0 0 1 4 11.61z"
20828
- })), /*#__PURE__*/React__namespace.createElement("path", {
20829
- fill: "currentColor",
20830
- d: "M4 4.39a1 1 0 0 1 1.599-.801l4.419 3.302h7.27v1.992H10.32L5.6 12.412A1 1 0 0 1 4 11.61z"
20831
- }), /*#__PURE__*/React__namespace.createElement("path", {
20832
- fill: "#F5F6F8",
20833
- d: "M5.599 3.589 4.4 5.19zm4.419 3.302L8.82 8.493l.533.398h.665zm7.27 0h2v-2h-2zm0 1.992v2h2v-2zm-6.968 0v-2h-.665l-.532.398zM5.6 12.412l1.196 1.603.001-.001zM4 11.61H2v.001zm0-7.22h2a1 1 0 0 1-1.599.8L5.6 3.59l1.197-1.602C4.818.509 2 1.919 2 4.39zm1.599-.801L4.402 5.19 8.82 8.493l1.198-1.602 1.197-1.603-4.42-3.301zm4.419 3.302v2h7.27v-4h-7.27zm7.27 0h-2v1.992h4V6.89zm0 1.992v-2H10.32v4h6.967zm-6.968 0L9.123 7.28 4.4 10.81 5.6 12.411l1.197 1.602 4.722-3.53zM5.6 12.412l-1.197-1.603a1 1 0 0 1 1.598.8l-2 .001-2 .001c0 2.466 2.815 3.882 4.795 2.404zM4 11.61h2V4.39H2v7.22z",
20834
- mask: "url(#option_svg__b)"
20835
- }))), _defs || (_defs = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("filter", {
20836
- id: "option_svg__a",
20837
- width: 21.287,
20838
- height: 17.232,
20839
- x: 0,
20840
- y: 0.384,
20841
- colorInterpolationFilters: "sRGB",
20842
- filterUnits: "userSpaceOnUse"
20843
- }, /*#__PURE__*/React__namespace.createElement("feFlood", {
20844
- floodOpacity: 0,
20845
- result: "BackgroundImageFix"
20846
- }), /*#__PURE__*/React__namespace.createElement("feColorMatrix", {
20847
- "in": "SourceAlpha",
20848
- result: "hardAlpha",
20849
- values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
20850
- }), /*#__PURE__*/React__namespace.createElement("feOffset", {
20851
- dy: 1
20852
- }), /*#__PURE__*/React__namespace.createElement("feGaussianBlur", {
20853
- stdDeviation: 1
20854
- }), /*#__PURE__*/React__namespace.createElement("feComposite", {
20855
- in2: "hardAlpha",
20856
- operator: "out"
20857
- }), /*#__PURE__*/React__namespace.createElement("feColorMatrix", {
20858
- values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"
20859
- }), /*#__PURE__*/React__namespace.createElement("feBlend", {
20860
- in2: "BackgroundImageFix",
20861
- result: "effect1_dropShadow_13071_1578"
20862
- }), /*#__PURE__*/React__namespace.createElement("feBlend", {
20863
- "in": "SourceGraphic",
20864
- in2: "effect1_dropShadow_13071_1578",
20865
- result: "shape"
20866
- })))));
20867
- };
20868
-
20869
- // json中返回的是多选方向的加值,所以需要拆开
20870
- function convertDirectionToParams(value) {
20871
- const A = 1 << 0; // bit0 = 1
20872
- const B = 1 << 1; // bit1 = 2
20873
- const C = 1 << 2; // bit2 = 4
20874
- const D = 1 << 3; // bit3 = 8
20875
- const E = 1 << 4; // bit4 = 16
20876
- const F = 1 << 5; // bit5 = 32
20877
- const directions = [];
20878
- // 检查每个位标志是否被设置
20879
- if (value & A)
20880
- directions.push(A);
20881
- if (value & B)
20882
- directions.push(B);
20883
- if (value & C)
20884
- directions.push(C);
20885
- if (value & D)
20886
- directions.push(D);
20887
- if (value & E)
20888
- directions.push(E);
20889
- if (value & F)
20890
- directions.push(F);
20891
- return directions;
20892
- }
20893
-
20894
- const DEFAULT_LIST = [
20895
- {
20896
- value: 1 << 0,
20897
- text: 'A',
20898
- selected: false,
20899
- },
20900
- {
20901
- value: 1 << 1,
20902
- text: 'B',
20903
- selected: false,
20904
- },
20905
- {
20906
- value: 1 << 2,
20907
- text: 'C',
20908
- selected: false,
20909
- },
20910
- {
20911
- value: 1 << 3,
20912
- text: 'D',
20913
- selected: false,
20914
- },
20915
- {
20916
- value: 1 << 4,
20917
- text: 'E',
20918
- selected: false,
20919
- },
20920
- {
20921
- value: 1 << 5,
20922
- text: 'F',
20923
- selected: false,
20924
- },
20925
- ];
20926
- const MowDirection_L = (props) => {
20927
- const { value, angleValue, optionAngle = 45, zIndex = 10000, onChange,
20928
- // children,
20929
- } = props;
20930
- const [angle, setAngle] = React.useState(0);
20931
- const lineList = React.useMemo(() => {
20932
- return DEFAULT_LIST.map((item) => ({
20933
- ...item,
20934
- selected: convertDirectionToParams(value).includes(item.value),
20935
- }));
20936
- }, [value]);
20937
- // const [lineList, setLineList] = useState<LineItem[]>([
20938
- // {
20939
- // value: 1 << 0,
20940
- // text: 'A',
20941
- // selected: false,
20942
- // },
20943
- // {
20944
- // value: 1 << 1,
20945
- // text: 'B',
20946
- // selected: false,
20947
- // },
20948
- // {
20949
- // value: 1 << 2,
20950
- // text: 'C',
20951
- // selected: false,
20952
- // },
20953
- // {
20954
- // value: 1 << 3,
20955
- // text: 'D',
20956
- // selected: false,
20957
- // },
20958
- // {
20959
- // value: 1 << 4,
20960
- // text: 'E',
20961
- // selected: false,
20962
- // },
20963
- // {
20964
- // value: 1 << 5,
20965
- // text: 'F',
20966
- // selected: false,
20967
- // },
20968
- // ]);
20969
- const hitRectAngle = React.useMemo(() => {
20970
- const direction = lineList
20971
- ?.filter((item) => item?.selected)
20972
- ?.reduce((pre, line) => {
20973
- return pre + line.value;
20974
- }, 0);
20975
- const angles = getSelectAngles(direction)?.map((item) => item + angleValue);
20976
- return angles?.includes(optionAngle);
20977
- }, [lineList, angleValue, optionAngle]);
20978
- const allSelect = React.useMemo(() => {
20979
- return lineList?.every((item) => item?.selected);
20980
- }, [lineList]);
20981
- React.useEffect(() => {
20982
- setAngle(angleValue);
20983
- }, [angleValue]);
20984
- console.log('hitRectAngle-->', hitRectAngle);
20985
- const onLineClick = (index) => {
20986
- const newLine = lineList.map((line, i) => {
20987
- if (i === index) {
20988
- return {
20989
- ...line,
20990
- selected: !line.selected,
20991
- };
20992
- }
20993
- return { ...line };
20994
- });
20995
- onChange?.(newLine
20996
- ?.filter((item) => item?.selected)
20997
- .reduce((pre, line) => {
20998
- return pre + line.value;
20999
- }, 0));
21000
- };
21001
- return (jsxRuntime.jsx("div", { className: styles$2.commonModalContainer, style: { zIndex }, children: jsxRuntime.jsx("div", { className: styles$2.commonModalContent, children: jsxRuntime.jsxs("div", { className: styles$2.content, children: [jsxRuntime.jsx("div", { className: styles$2.directDialPlateBox, children: jsxRuntime.jsxs("div", { className: styles$2.directDialPlate, children: [jsxRuntime.jsx(SvgDirectDialPlate, {}), jsxRuntime.jsx("div", { className: styles$2.directLineMain, style: {
21002
- transform: `rotate(${angle}deg)`,
21003
- }, children: lineList.map((line, index) => (jsxRuntime.jsxs("div", { className: styles$2.directLineContent, style: {
21004
- transform: `translate(-50%, -50%) rotate(${30 * index}deg)`,
21005
- }, children: [jsxRuntime.jsx("div", { className: styles$2.directLineText, style: {
21006
- color: line.selected ? '#FF996C' : '#B3B4C3',
21007
- }, children: line.text }), jsxRuntime.jsx(DirectionLine, { className: styles$2.directLine, selected: line.selected, onClick: () => onLineClick(index) }), jsxRuntime.jsx("div", { className: styles$2.directLineText, style: {
21008
- transform: 'rotate(180deg)',
21009
- color: line.selected ? '#FF996C' : '#B3B4C3',
21010
- }, children: line.text })] }, line.value))) }), jsxRuntime.jsx("div", { className: classNames(styles$2.directCenterCircle, {
21011
- [styles$2.active]: allSelect && hitRectAngle,
21012
- }) })] }) }), jsxRuntime.jsxs("div", { className: styles$2.directOption, style: {
21013
- transform: `rotate(${optionAngle}deg)`,
21014
- color: hitRectAngle ? '#FF996C' : '#B3B4C3',
21015
- }, children: [jsxRuntime.jsx("div", { className: styles$2.leftTop, children: jsxRuntime.jsx(SvgOption, {}) }), jsxRuntime.jsx("div", { className: styles$2.rightBottom, children: jsxRuntime.jsx(SvgOption, {}) })] })] }) }) }));
21016
- };
21017
-
21018
- const BoundarySvgRender = React.memo(({ mapJson, id, maxWidth = 300 }) => {
21019
- const svgElementData = React.useMemo(() => {
21020
- const data = UnifiedMapDataProcessor.processMapData(mapJson, DEFAULT_STYLES) || {};
21021
- return data;
21022
- }, [mapJson, DEFAULT_STYLES]);
21023
- const boundaryInfo = React.useMemo(() => {
21024
- const boundary = svgElementData.boundary.find((item) => item.id === id);
21025
- return boundary;
21026
- }, [id, svgElementData]);
21027
- // 计算当前boundary的viewBox
21028
- const boundaryViewBox = React.useMemo(() => {
21029
- if (!boundaryInfo?.points || boundaryInfo.points.length === 0) {
21030
- return null;
21031
- }
21032
- // 计算边界
21033
- let minX = Infinity;
21034
- let minY = Infinity;
21035
- let maxX = -Infinity;
21036
- let maxY = -Infinity;
21037
- boundaryInfo.points.forEach((point) => {
21038
- minX = Math.min(minX, point[0]);
21039
- minY = Math.min(minY, point[1]);
21040
- maxX = Math.max(maxX, point[0]);
21041
- maxY = Math.max(maxY, point[1]);
21042
- });
21043
- // 添加边距
21044
- const padding = 50;
21045
- const width = maxX - minX + padding * 2;
21046
- const height = maxY - minY + padding * 2;
21047
- return {
21048
- x: minX - padding,
21049
- y: minY - padding,
21050
- width,
21051
- height,
21052
- };
21053
- }, [boundaryInfo]);
21054
- const style = React.useMemo(() => {
21055
- if (boundaryViewBox?.width > boundaryViewBox?.height) {
21056
- return {
21057
- width: maxWidth,
21058
- height: maxWidth * (boundaryViewBox.height / boundaryViewBox.width),
21059
- };
21060
- }
21061
- return {
21062
- width: maxWidth * (boundaryViewBox.height / boundaryViewBox.width),
21063
- height: maxWidth,
21064
- };
21065
- }, [boundaryViewBox, maxWidth]);
21066
- return (jsxRuntime.jsxs("div", { style: {
21067
- position: 'relative',
21068
- width: style.width,
21069
- height: style.height,
21070
- margin: '0 auto',
21071
- }, children: [jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: `${boundaryViewBox.x} ${boundaryViewBox.y} ${boundaryViewBox.width} ${boundaryViewBox.height}`, width: `${style.width}px`, height: `${style.height}px`, style: { position: 'absolute', inset: 0, pointerEvents: 'none' }, children: Object.keys(svgElementData)?.map((key) => {
21072
- return svgElementData[key]?.map((element) => {
21073
- if (key === DataType.VISION_OFF)
21074
- return null;
21075
- return (jsxRuntime.jsx(GElement, { type: key, data: svgElementData[key], children: jsxRuntime.jsx(SvgElement, { type: key, data: element, onSelect: () => { }, onCancel: () => { } }, element.id) }, key));
21076
- });
21077
- }) }), jsxRuntime.jsx(CharginPile, { mapData: mapJson, mapConfig: DEFAULT_STYLES, viewBox: boundaryViewBox || null, rotation: 0 })] }));
21078
- });
21079
-
21080
- const DirectionModal = ({ directionInfo, open, setOpen, zoneName, optionAngle, onChange, }) => {
21081
- const { mapJson, mapConfig } = useCommonContext();
21082
- const { editMapInfo } = useMapEditContext();
21083
- const [directions, setDirections] = React.useState(ALL_DIRECTION_SELECTED);
21084
- const [angle, setAngle] = React.useState(MIN_DIRECTION_ANGLE);
21085
- const canSetDefault = React.useMemo(() => {
21086
- const angles = getSelectAngles(directions)?.map((item) => item + angle);
21087
- const hitRectAngle = angles?.includes(optionAngle);
21088
- return directions !== ALL_DIRECTION_SELECTED || !hitRectAngle;
21089
- }, [directions, angle]);
21090
- const canSave = React.useMemo(() => {
21091
- return directions !== directionInfo?.direction || angle !== directionInfo?.angle;
21092
- }, [directions, angle, directionInfo]);
21093
- React.useEffect(() => {
21094
- if (!open)
21095
- return;
21096
- setDirections(directionInfo.direction);
21097
- setAngle(directionInfo.angle);
21098
- }, [directionInfo, open]);
21099
- const resetDirection = () => {
21100
- setDirections(ALL_DIRECTION_SELECTED);
21101
- const defaultAngle = getDefaultAngle(optionAngle);
21102
- console.log('defaultAngle=>', defaultAngle, optionAngle);
21103
- if (defaultAngle) {
21104
- setAngle(defaultAngle);
21105
- }
21106
- };
21107
- const handleCancel = React.useCallback(() => {
21108
- if (!canSave) {
21109
- setOpen(false);
21110
- return;
21111
- }
21112
- antd.Modal.confirm({
21113
- icon: null,
21114
- centered: true,
21115
- title: 'Exit editing',
21116
- content: 'Changes you made will not be saved. Are you sure you want to exit editing the mowing direction?',
21117
- onOk: () => {
21118
- setOpen(false);
21119
- },
21120
- okText: 'Exit',
21121
- cancelText: 'Continue editing',
21122
- });
21123
- }, [canSave, setOpen]);
21124
- console.log('directionInfo=>', directionInfo, mapJson);
21125
- return (jsxRuntime.jsx(CustomModal, { maskClosable: false, titleCenter: true, title: `${zoneName} mowing direction`, open: open, width: 600, onCancel: handleCancel, onOk: () => {
21126
- onChange?.(directions, angle);
21127
- setOpen(false);
21128
- }, okText: "Confirm", cancelText: "Cancel", okButtonProps: { disabled: !canSave }, afterClose: () => {
21129
- setDirections(ALL_DIRECTION_SELECTED);
21130
- setAngle(MIN_DIRECTION_ANGLE);
21131
- }, children: jsxRuntime.jsxs("div", { className: styles$3.directions, children: [jsxRuntime.jsx("div", { className: styles$3.default, children: jsxRuntime.jsx(antd.Button, { disabled: !canSetDefault, variant: "link", color: "primary", onClick: resetDirection, children: "Default" }) }), jsxRuntime.jsx("div", { className: styles$3.tips, children: "\u4E00\u4E2A\u7B80\u77ED\u7684\u8BF4\u660E\uFF0C\u5E0C\u671B\u80FD\u5145\u5F53\u7B80\u5355\u7684\u6559\u7A0B\uFF0C\u9700\u8981\u53EF\u5FC3\u6839\u636EC\u7AEF\u5DF2\u6709\u7684\u6574\u5408\u4E00\u4E0B" }), jsxRuntime.jsxs("div", { className: styles$3.optimal, children: [jsxRuntime.jsx("div", { children: "*" }), jsxRuntime.jsx(SvgOption, {}), jsxRuntime.jsx("div", { className: styles$3.text, children: "Optimal direction" })] }), jsxRuntime.jsxs("div", { className: styles$3.content, children: [jsxRuntime.jsx("div", { className: styles$3.background, children: jsxRuntime.jsx(BoundarySvgRender, { mapJson: mapJson, id: editMapInfo.selectElement.id }) }), jsxRuntime.jsx("div", { className: styles$3.luppan, children: jsxRuntime.jsx(MowDirection_L, { value: directions, angleValue: angle, optionAngle: optionAngle, onChange: (value) => {
21132
- console.log('valie=>', value);
21133
- if (!value)
21134
- return antd.message.warning('Choose at least one mowing direction');
21135
- setDirections(value);
21136
- } }) })] }), jsxRuntime.jsx("div", { className: styles$3.slideTip, children: "\u7528\u6237\u8FD8\u53EF\u4EE5\u901A\u8FC7\u6ED1\u8F68\u5FAE\u8C03\u5272\u8349\u65B9\u5411\uFF08\u975E\u5FC5\u987B\uFF09" }), jsxRuntime.jsx("div", { className: styles$3.slider, children: jsxRuntime.jsx(antd.Slider, { tooltip: {
21137
- formatter: (value) => `${value}°`,
21138
- }, min: MIN_DIRECTION_ANGLE, max: MAX_DIRECTION_ANGLE, value: angle, onChange: (value) => setAngle(value) }) })] }) }));
21139
- };
21140
-
21141
- const BoundaryInfo = ({ onHandleDelete }) => {
21142
- const { unitType, heightOptions, globalHeight } = useCommonContext();
21143
- const { editMapInfo, setEditMapInfo } = useMapEditContext();
21144
- const nameValue = editMapInfo.selectElement?.name;
21145
- const onHandleFocus = () => { };
21146
- const [open, setOpen] = React.useState(false);
21147
- const [heightOpen, setHeightOpen] = React.useState(false);
21148
- const [directionOpen, setDirectionOpen] = React.useState(false);
21149
- const sizeValue = React.useMemo(() => {
21150
- const points = editMapInfo.selectElement?.points?.map((item) => [
21151
- item[0] / SCALE_FACTOR,
21152
- item[1] / SCALE_FACTOR,
21153
- ]);
21154
- const { area: areaValue, perimeter: perimeterValue } = calculatePolygonAreaAndPerimeter(points) || {};
21155
- const formatArea = convertAreaByUnits(areaValue);
21156
- const formatPerimeter = convertDistanceByUnits(perimeterValue);
21157
- return {
21158
- area: formatArea.value,
21159
- perimeter: formatPerimeter.value,
21160
- };
21161
- }, [editMapInfo.selectElement]);
21162
- const edgeMowingValue = React.useMemo(() => {
21163
- return {
21164
- edgeMowing: editMapInfo?.selectElement?.edgeMowing,
21165
- obstacleMowEdge: editMapInfo?.selectElement?.obstacleMowEdge,
21166
- };
21167
- }, [editMapInfo.selectElement]);
21168
- const heightValue = React.useMemo(() => {
21169
- return {
21170
- isFlowGlobal: editMapInfo?.selectElement?.isFlowGlobal,
21171
- cuttingHeight: editMapInfo?.selectElement?.cuttingHeight,
21172
- };
21173
- }, [editMapInfo.selectElement]);
21174
- const directionInfo = React.useMemo(() => {
21175
- return {
21176
- direction: editMapInfo?.selectElement?.direction,
21177
- angle: editMapInfo?.selectElement?.angle,
21178
- };
21179
- }, [editMapInfo.selectElement?.direction, editMapInfo.selectElement?.angle]);
21180
- const optionAngle = React.useMemo(() => {
21181
- return editMapInfo?.selectElement?.recBaseAngle;
21182
- }, [editMapInfo.selectElement?.recBaseAngle]);
21183
- console.log('height---->', editMapInfo?.selectElement, heightValue, edgeMowingValue);
21184
- return (jsxRuntime.jsxs("div", { className: styles$9.boundaryInfo, children: [jsxRuntime.jsx(Header, { handleDelete: onHandleDelete, handleFocus: onHandleFocus, type: editMapInfo.elementType }), jsxRuntime.jsx("div", { className: styles$9.nameEdit, children: jsxRuntime.jsx(NameEdit, { title: "Boundary name", name: nameValue, onChange: (name) => {
21185
- setEditMapInfo({
21186
- ...editMapInfo,
21187
- isShowDrag: false,
21188
- selectElement: {
21189
- ...editMapInfo.selectElement,
21190
- name: name,
21191
- },
21192
- });
21193
- } }) }), jsxRuntime.jsx("div", { className: styles$9.border }), jsxRuntime.jsxs("div", { className: styles$9.otherEdit, children: [jsxRuntime.jsx(Item, { children: jsxRuntime.jsxs("div", { className: styles$9.otherItem, children: [jsxRuntime.jsx("div", { className: styles$9.label, children: "Cutting height" }), jsxRuntime.jsx("div", { className: styles$9.value, children: generateHeightStr(heightValue?.cuttingHeight, unitType, true) }), jsxRuntime.jsx("div", { className: styles$9.icon, onClick: () => {
21194
- setHeightOpen(true);
21195
- }, children: jsxRuntime.jsx(SvgArrow, {}) })] }) }), jsxRuntime.jsx(Item, { children: jsxRuntime.jsxs("div", { className: styles$9.otherItem, children: [jsxRuntime.jsx("div", { className: styles$9.label, children: "Mowing direction" }), jsxRuntime.jsx("div", { className: styles$9.value }), jsxRuntime.jsx("div", { className: styles$9.icon, onClick: () => {
21196
- setDirectionOpen(true);
21197
- }, children: jsxRuntime.jsx(SvgArrow, {}) })] }) }), jsxRuntime.jsx(Item, { children: jsxRuntime.jsxs("div", { className: styles$9.otherItem, children: [jsxRuntime.jsx("div", { className: styles$9.label, children: "Edge mowing" }), jsxRuntime.jsx("div", { className: styles$9.value }), jsxRuntime.jsx("div", { className: styles$9.icon, onClick: () => {
21198
- setOpen(true);
21199
- }, children: jsxRuntime.jsx(SvgArrow, {}) })] }) })] }), jsxRuntime.jsx("div", { className: styles$9.border }), jsxRuntime.jsxs("div", { className: styles$9.areaInfo, children: [jsxRuntime.jsxs("div", { className: styles$9.areaItem, children: [jsxRuntime.jsx("div", { className: styles$9.label, children: "Area:" }), jsxRuntime.jsx("div", { className: styles$9.value, children: sizeValue?.area })] }), jsxRuntime.jsxs("div", { className: styles$9.areaItem, children: [jsxRuntime.jsx("div", { className: styles$9.label, children: "Perimeter:" }), jsxRuntime.jsx("div", { className: styles$9.value, children: sizeValue?.perimeter })] })] }), jsxRuntime.jsx(MowingEdgeModal, { value: edgeMowingValue, onChange: (value) => {
21200
- setEditMapInfo({
21201
- ...editMapInfo,
21202
- selectElement: {
21203
- ...editMapInfo.selectElement,
21204
- edgeMowing: value.edgeMowing ? 1 : 0,
21205
- obstacleMowEdge: value.obstacleMowEdge ? 1 : 0,
21206
- },
21207
- });
21208
- }, open: open, setOpen: setOpen }), jsxRuntime.jsx(HeightModal, { zoneName: editMapInfo.selectElement?.name, heightOptions: heightOptions, globalHeight: globalHeight, open: heightOpen, setOpen: setHeightOpen, value: heightValue, onChange: (value) => {
21209
- setEditMapInfo({
21210
- ...editMapInfo,
21211
- selectElement: {
21212
- ...editMapInfo.selectElement,
21213
- cuttingHeight: value.cuttingHeight,
21214
- isFlowGlobal: value.isFlowGlobal,
21215
- },
21216
- });
21217
- } }), jsxRuntime.jsx(DirectionModal, { directionInfo: directionInfo, optionAngle: optionAngle, open: directionOpen, setOpen: setDirectionOpen, zoneName: editMapInfo.selectElement?.name, onChange: (direction, angle) => {
21218
- setEditMapInfo({
21219
- ...editMapInfo,
21220
- selectElement: {
21221
- ...editMapInfo.selectElement,
21222
- direction,
21223
- angle,
21224
- },
21225
- });
21226
- } })] }));
21227
- };
21228
-
21229
- var css_248z$1 = ".index-module_timePeriod__EkVZl {\n display: flex;\n flex-direction: column;\n}\n.index-module_timePeriod__EkVZl .index-module_timePeriodHeader__CgJGW {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding: 4px 0;\n}\n.index-module_timePeriod__EkVZl .index-module_timePeriodHeader__CgJGW .index-module_timePeriodTitle__lnYno {\n font-weight: 400;\n font-size: 14px;\n line-height: 16px;\n color: rgb(0, 0, 0);\n}\n.index-module_timePeriod__EkVZl .index-module_timePeriodHeader__CgJGW .index-module_timePeriodHandle__pjDTA {\n margin-left: auto;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n}\n.index-module_timePeriod__EkVZl .index-module_timePeriodContent__pTqdW {\n margin-top: 4px;\n}\n.index-module_timePeriod__EkVZl .index-module_timePeriodContent__pTqdW .index-module_timePeriodRadioItem__3rd-r {\n line-height: 28px;\n}";
21230
- var styles$1 = {"timePeriod":"index-module_timePeriod__EkVZl","timePeriodHeader":"index-module_timePeriodHeader__CgJGW","timePeriodTitle":"index-module_timePeriodTitle__lnYno","timePeriodHandle":"index-module_timePeriodHandle__pjDTA","timePeriodContent":"index-module_timePeriodContent__pTqdW","timePeriodRadioItem":"index-module_timePeriodRadioItem__3rd-r"};
21231
- styleInject(css_248z$1);
21232
-
21233
- var RadioValue;
21234
- (function (RadioValue) {
21235
- RadioValue[RadioValue["LONG_TIME"] = 0] = "LONG_TIME";
21236
- RadioValue[RadioValue["SHORT_TIME"] = 1] = "SHORT_TIME";
21237
- })(RadioValue || (RadioValue = {}));
21238
- const TimePeriod = ({ value, onChange }) => {
21239
- // eslint-disable-next-line no-undef
21240
- const [date, setDate] = React.useState();
21241
- const [open, setOpen] = React.useState(false);
21242
- const [radioValue, setRadioValue] = React.useState(RadioValue.LONG_TIME);
21243
- console.log('time period->', date, radioValue);
21244
- React.useEffect(() => {
21245
- if (!open && date?.length !== 2) {
21246
- setRadioValue(RadioValue.LONG_TIME);
21247
- }
21248
- }, [open]);
21249
- return (jsxRuntime.jsxs("div", { className: styles$1.timePeriod, children: [jsxRuntime.jsxs("div", { className: styles$1.timePeriodHeader, children: [jsxRuntime.jsx("div", { className: styles$1.timePeriodTitle, children: "Enabled" }), jsxRuntime.jsx("div", { className: styles$1.timePeriodHandle, children: jsxRuntime.jsx(antd.Switch, { checked: value.status === 1, onChange: (checked) => {
21250
- onChange({
21251
- ...value,
21252
- status: checked ? 1 : 0,
21253
- start_timestamp: checked ? value.start_timestamp : 0,
21254
- end_timestamp: checked ? value.end_timestamp : 0,
21255
- });
21256
- } }) })] }), jsxRuntime.jsx("div", { className: styles$1.timePeriodContent, children: jsxRuntime.jsxs(antd.Radio.Group, { value: radioValue, onChange: (e) => {
21257
- setRadioValue(e.target.value);
21258
- if (e.target.value === RadioValue.LONG_TIME) {
21259
- setDate(null);
21260
- onChange({
21261
- ...value,
21262
- start_timestamp: 0,
21263
- end_timestamp: 0,
21264
- });
21265
- }
21266
- else if (e.target.value === RadioValue.SHORT_TIME) {
21267
- setOpen(true);
21268
- // onChange({
21269
- // ...value,
21270
- // startTimestamp: dayjs().add(30, 'minute').unix(),
21271
- // endTimestamp: dayjs().add(1, 'hour').unix(),
21272
- // });
21273
- }
21274
- }, style: { display: 'flex', flexDirection: 'column', gap: '4px' }, children: [jsxRuntime.jsx(antd.Radio, { value: RadioValue.LONG_TIME, children: jsxRuntime.jsx("div", { className: styles$1.timePeriodRadioItem, children: "Always" }) }), jsxRuntime.jsx(antd.Radio, { value: RadioValue.SHORT_TIME, children: jsxRuntime.jsx("div", { className: styles$1.timePeriodRadioItem, children: jsxRuntime.jsx(antd.DatePicker.RangePicker, { open: open, value: date ? date : undefined, disabled: radioValue === RadioValue.LONG_TIME, showTime: { format: 'HH:mm' }, format: "MM/DD/YYYY HH:mm", preserveInvalidOnBlur: true, onOpenChange: (open) => {
21275
- setOpen(open);
21276
- }, onChange: (dateValue, dateString) => {
21277
- setDate(dateValue);
21278
- if (dateValue?.length === 2) {
21279
- onChange({
21280
- status: RadioValue.SHORT_TIME,
21281
- start_timestamp: dateValue[0].unix(),
21282
- end_timestamp: dateValue[1].unix(),
21283
- });
21284
- }
21285
- } }) }) })] }) })] }));
21286
- };
21287
-
21288
- const ObstacleInfo = ({ onHandleDelete }) => {
21289
- const { editMapInfo, setEditMapInfo } = useMapEditContext();
21290
- const nameValue = editMapInfo.selectElement?.name;
21291
- console.log('obstacle->', editMapInfo.selectElement);
21292
- const timePeriodValue = React.useMemo(() => {
21293
- if (!editMapInfo.selectElement)
21294
- return null;
21295
- const status = editMapInfo.selectElement?.status;
21296
- const start_timestamp = editMapInfo.selectElement?.start_timestamp;
21297
- const end_timestamp = editMapInfo.selectElement?.end_timestamp;
21298
- return {
21299
- status,
21300
- start_timestamp,
21301
- end_timestamp,
21302
- };
21303
- }, [editMapInfo.selectElement]);
21304
- const sizeValue = React.useMemo(() => {
21305
- const points = editMapInfo.selectElement?.points?.map((item) => [
21306
- item[0] / SCALE_FACTOR,
21307
- item[1] / SCALE_FACTOR,
21308
- ]);
21309
- const { area: areaValue, perimeter: perimeterValue } = calculatePolygonAreaAndPerimeter(points) || {};
21310
- const formatArea = convertAreaByUnits(areaValue);
21311
- const formatPerimeter = convertDistanceByUnits(perimeterValue);
21312
- return {
21313
- area: formatArea.value,
21314
- perimeter: formatPerimeter.value,
21315
- };
21316
- }, [editMapInfo.selectElement]);
21317
- return (jsxRuntime.jsxs("div", { className: styles$9.obstacleInfo, children: [jsxRuntime.jsx(Header, { handleDelete: () => {
21318
- onHandleDelete();
21319
- }, handleFocus: () => { }, type: editMapInfo.elementType }), jsxRuntime.jsx("div", { className: styles$9.nameEdit, children: jsxRuntime.jsx(NameEdit, { title: "Obstacle name", name: nameValue, onChange: (name) => {
21320
- setEditMapInfo({
21321
- ...editMapInfo,
21322
- isShowDrag: false,
21323
- selectElement: {
21324
- ...editMapInfo.selectElement,
21325
- name: name,
21326
- },
21327
- });
21328
- } }) }), jsxRuntime.jsx("div", { className: styles$9.border }), jsxRuntime.jsx("div", { className: styles$9.timePeriod, children: jsxRuntime.jsx(TimePeriod, { value: timePeriodValue, onChange: (value) => {
21329
- setEditMapInfo({
21330
- ...editMapInfo,
21331
- isShowDrag: editMapInfo?.isShowDrag || false,
21332
- selectElement: {
21333
- ...editMapInfo.selectElement,
21334
- status: value.status,
21335
- start_timestamp: value.start_timestamp,
21336
- end_timestamp: value.end_timestamp,
21337
- },
21338
- });
21339
- } }) }), jsxRuntime.jsx("div", { className: styles$9.border }), jsxRuntime.jsxs("div", { className: styles$9.areaInfo, children: [jsxRuntime.jsxs("div", { className: styles$9.areaItem, children: [jsxRuntime.jsx("div", { className: styles$9.label, children: "Area:" }), jsxRuntime.jsx("div", { className: styles$9.value, children: sizeValue?.area })] }), jsxRuntime.jsxs("div", { className: styles$9.areaItem, children: [jsxRuntime.jsx("div", { className: styles$9.label, children: "Perimeter:" }), jsxRuntime.jsx("div", { className: styles$9.value, children: sizeValue?.perimeter })] })] })] }));
21340
- };
21341
-
21342
- const DoodleInfo = ({ onHandleDelete }) => {
21343
- const { editMapInfo, setEditMapInfo } = useMapEditContext();
21344
- const options = React.useMemo(() => {
21345
- return new Array(30).fill(0).map((_, index) => {
21346
- return {
21347
- label: `${index + 1}day`,
21348
- value: index + 1,
21349
- };
21350
- });
21351
- }, []);
21352
- const isCreate = React.useMemo(() => {
21353
- return editMapInfo?.createMode;
21354
- }, [editMapInfo?.createMode]);
21355
- const doodleInfo = React.useMemo(() => {
21356
- if (!editMapInfo.selectElement)
21357
- return null;
21358
- const create_ts = editMapInfo?.selectElement?.create_ts;
21359
- const expiration_ts = editMapInfo.selectElement.expiration_ts;
21360
- const diff = expiration_ts - create_ts;
21361
- const day = Math.floor(diff / (60 * 60 * 24));
21362
- return {
21363
- day: day,
21364
- };
21365
- }, [editMapInfo?.selectElement]);
21366
- const remainDay = React.useMemo(() => {
21367
- if (!editMapInfo.selectElement)
21368
- return null;
21369
- const expiration_ts = editMapInfo.selectElement.expiration_ts;
21370
- const diff = expiration_ts - Date.now() / 1000;
21371
- return Math.floor(diff / (60 * 60 * 24));
21372
- }, [editMapInfo?.selectElement]);
21373
- const sizeValue = React.useMemo(() => {
21374
- if (!editMapInfo.selectElement || !editMapInfo.selectElement.svg)
21375
- return '';
21376
- const svg = editMapInfo.selectElement?.svg;
21377
- const scale = editMapInfo.selectElement.scale;
21378
- const parseSvg = SvgParserNative.parseSvg(svg);
21379
- const width = (parseSvg.width * scale) / SCALE_FACTOR;
21380
- const height = (parseSvg.height * scale) / SCALE_FACTOR;
21381
- console.log('parseSvg->', editMapInfo, parseSvg);
21382
- return `${width.toFixed(1)} m x ${height.toFixed(1)} m`;
21383
- }, [editMapInfo.selectElement]);
21384
- const handleChange = React.useCallback((day) => {
21385
- setEditMapInfo((pre) => {
21386
- return {
21387
- ...pre,
21388
- selectElement: {
21389
- ...pre.selectElement,
21390
- create_ts: Date.now() / 1000,
21391
- expiration_ts: Date.now() / 1000 + day * 24 * 60 * 60,
21392
- },
21393
- };
21394
- });
21395
- }, [editMapInfo.selectElement]);
21396
- console.log('doodleInfo->', doodleInfo);
21397
- return (jsxRuntime.jsxs("div", { className: styles$9.doodleInfo, children: [jsxRuntime.jsx(Header, { handleDelete: () => {
21398
- onHandleDelete();
21399
- }, handleFocus: () => { }, type: editMapInfo.elementType }), jsxRuntime.jsx("div", { className: styles$9.border }), isCreate ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Item, { children: jsxRuntime.jsxs("div", { className: styles$9.time, children: [jsxRuntime.jsxs("div", { className: styles$9.exist, children: [jsxRuntime.jsx("div", { className: styles$9.label, children: "Preserve doodle for" }), jsxRuntime.jsx("div", { className: styles$9.value, children: jsxRuntime.jsx(antd.Select, { defaultValue: doodleInfo?.day, style: { width: 80 }, onChange: (value) => handleChange(value), options: options }) })] }), doodleInfo?.day >= 14 && (jsxRuntime.jsx("div", { className: styles$9.tip, children: "* If the doodle lasts over 14 days, the grass may grow too tall for the mower to mow later." }))] }) }), jsxRuntime.jsx("div", { className: styles$9.border }), jsxRuntime.jsx("div", { className: styles$9.areaInfo, children: jsxRuntime.jsxs("div", { className: styles$9.areaItem, children: [jsxRuntime.jsx("div", { className: styles$9.label, children: "Size:" }), jsxRuntime.jsx("div", { className: styles$9.value, children: sizeValue })] }) })] })) : (jsxRuntime.jsxs("div", { className: styles$9.areaInfo, children: [jsxRuntime.jsxs("div", { className: styles$9.areaItem, children: [jsxRuntime.jsx("div", { className: styles$9.label, children: "Remaining time:" }), jsxRuntime.jsxs("div", { className: styles$9.value, children: [remainDay, " day"] })] }), jsxRuntime.jsxs("div", { className: styles$9.areaItem, children: [jsxRuntime.jsx("div", { className: styles$9.label, children: "Size:" }), jsxRuntime.jsx("div", { className: styles$9.value, children: sizeValue })] })] }))] }));
21400
- };
21401
-
21402
- const VisionOffInfo = ({ onHandleDelete }) => {
21403
- const { editMapInfo, setEditMapInfo } = useMapEditContext();
21404
- const sizeValue = React.useMemo(() => {
21405
- if (!editMapInfo.selectElement)
21406
- return '';
21407
- const points = editMapInfo.selectElement?.points;
21408
- const [width, height] = calculateRectangleDimensions(points);
21409
- const formatWidth = convertDistanceByUnits(width / SCALE_FACTOR);
21410
- const formatHeight = convertDistanceByUnits(height / SCALE_FACTOR);
21411
- return `${formatWidth.value} x ${formatHeight.value}`;
21412
- }, [editMapInfo.selectElement]);
21413
- return (jsxRuntime.jsxs("div", { className: "visionOffInfo", children: [jsxRuntime.jsx(Header, { handleDelete: () => {
21414
- onHandleDelete?.();
21415
- }, handleFocus: () => { }, type: DataType.VISION_OFF }), jsxRuntime.jsx("div", { className: styles$9.border }), jsxRuntime.jsx("div", { className: styles$9.areaInfo, children: jsxRuntime.jsxs("div", { className: styles$9.areaItem, children: [jsxRuntime.jsx("div", { className: styles$9.label, children: "Size:" }), jsxRuntime.jsx("div", { className: styles$9.value, children: sizeValue })] }) })] }));
21416
- };
21417
-
21418
- var _path$2, _path2$1;
21419
- function _extends$2() { return _extends$2 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$2.apply(null, arguments); }
21420
- var SvgUndo = function SvgUndo(props) {
21421
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$2({
21422
- xmlns: "http://www.w3.org/2000/svg",
21423
- width: 24,
21424
- height: 24,
21425
- fill: "none"
21426
- }, props), _path$2 || (_path$2 = /*#__PURE__*/React__namespace.createElement("path", {
21427
- stroke: "currentColor",
21428
- strokeLinecap: "round",
21429
- strokeLinejoin: "round",
21430
- strokeWidth: 2,
21431
- d: "M4.329 7.821h10.506a5.581 5.581 0 0 1 0 11.163h-5.27"
21432
- })), _path2$1 || (_path2$1 = /*#__PURE__*/React__namespace.createElement("path", {
21433
- stroke: "currentColor",
21434
- strokeLinecap: "round",
21435
- strokeLinejoin: "round",
21436
- strokeWidth: 2,
21437
- d: "m7.293 3.607-4.39 4.215 4.39 4.316"
21438
- })));
21439
- };
21440
-
21441
- var _path$1, _path2;
21442
- function _extends$1() { return _extends$1 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$1.apply(null, arguments); }
21443
- var SvgRedo = function SvgRedo(props) {
21444
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$1({
21445
- xmlns: "http://www.w3.org/2000/svg",
21446
- width: 24,
21447
- height: 24,
21448
- fill: "none"
21449
- }, props), _path$1 || (_path$1 = /*#__PURE__*/React__namespace.createElement("path", {
21450
- stroke: "currentColor",
21451
- strokeLinecap: "round",
21452
- strokeLinejoin: "round",
21453
- strokeWidth: 2,
21454
- d: "M19.672 7.821H9.165a5.581 5.581 0 1 0 0 11.163h5.27"
21455
- })), _path2 || (_path2 = /*#__PURE__*/React__namespace.createElement("path", {
21456
- stroke: "currentColor",
21457
- strokeLinecap: "round",
21458
- strokeLinejoin: "round",
21459
- strokeWidth: 2,
21460
- d: "m16.708 3.607 4.389 4.215-4.39 4.315"
21461
- })));
21462
- };
21463
-
21464
- const HandleElementInfo = () => {
21465
- const { svgElementDatas } = useSvgEditContext();
21466
- const { checkDoodle } = useCheckElement();
21467
- const { undo, redo } = useHistoryHandle();
21468
- const { editMapInfo, setEditMapInfo, onHandleStopRecord, onHandleCompleteRecord, onHandleDeleteElement, onUpdateBoundary, } = useMapEditContext();
21469
- const currentType = React.useMemo(() => {
21470
- return DATE_TYPE_MAP.find((item) => item.type === editMapInfo.elementType);
21471
- }, [editMapInfo.elementType]);
21472
- const isUndoDisabled = React.useMemo(() => {
21473
- if (editMapInfo?.elementType === DataType.OBSTACLE &&
21474
- editMapInfo?.createMode === CreateStatus.CREATING) {
21475
- return !(editMapInfo?.currentHistoryIndex > 0 && editMapInfo?.historyList?.length);
21476
- }
21477
- else {
21478
- return !(editMapInfo?.currentHistoryIndex > 0 && editMapInfo?.historyList?.length);
21479
- }
21480
- }, [
21481
- editMapInfo?.currentHistoryIndex,
21482
- editMapInfo?.historyList,
21483
- editMapInfo?.createMode,
21484
- editMapInfo?.elementType,
21485
- ]);
21486
- const idRedoDisabled = React.useMemo(() => {
21487
- return !(editMapInfo?.currentHistoryIndex < editMapInfo?.historyList?.length - 1 &&
21488
- editMapInfo?.historyList?.length);
21489
- }, [editMapInfo?.currentHistoryIndex, editMapInfo?.historyList]);
21490
- const handleUndo = React.useCallback((e) => {
21491
- e.stopPropagation();
21492
- e.preventDefault();
21493
- if (isUndoDisabled)
21494
- return;
21495
- undo();
21496
- }, [undo, isUndoDisabled]);
21497
- const handleRedo = React.useCallback((e) => {
21498
- e.stopPropagation();
21499
- e.preventDefault();
21500
- if (idRedoDisabled)
21501
- return;
21502
- redo();
21503
- }, [redo, idRedoDisabled]);
21504
- const renderElementData = React.useCallback((element) => {
21505
- if (!editMapInfo.selectElement)
21506
- return null;
21507
- const data = {
21508
- doodle: undefined,
21509
- visionOffAreas: undefined,
21510
- obstacle: undefined,
21511
- boundary: undefined,
21512
- };
21513
- if (element?.type === DataType.DOODLE) {
21514
- const doodleData = {
21515
- center: element.center,
21516
- direction: element.direction,
21517
- scale: element.scale,
21518
- svg: element.svg,
21519
- expiration_ts: element.expiration_ts,
21520
- create_ts: element.create_ts,
21521
- };
21522
- if (element?.id) {
21523
- doodleData.id = element?.id;
21524
- }
21525
- data.doodle = JSON.stringify([doodleData]);
21526
- }
21527
- if (element?.type === DataType.VISION_OFF) {
21528
- const visionOffArea = svgElementDatas?.[DataType.VISION_OFF]
21529
- ?.filter((item) => item.id !== element.id)
21530
- ?.map((item) => ({
21531
- id: item.id,
21532
- points: restorePointsFormat(item.points),
21533
- })) || [];
21534
- const visionOffAreaData = [
21535
- ...visionOffArea,
21536
- {
21537
- id: element?.id,
21538
- points: restorePointsFormat(element.points),
21539
- },
21540
- ]?.map((item) => {
21541
- if (item?.id) {
21542
- return {
21543
- id: item.id,
21544
- points: item.points,
21545
- };
21546
- }
21547
- return {
21548
- points: item.points,
21549
- };
21550
- }) || [];
21551
- data.visionOffAreas = JSON.stringify(visionOffAreaData);
21552
- }
21553
- if (element?.type === DataType.OBSTACLE) {
21554
- data.obstacle = {
21555
- name: element?.name,
21556
- status: element?.status ?? 1,
21557
- end_timestamp: element?.end_timestamp,
21558
- start_timestamp: element?.start_timestamp,
21559
- points: restorePointsFormat(element.points),
21560
- };
21561
- if (element?.id) {
21562
- data.obstacle.id = element?.id;
21563
- }
21564
- }
21565
- if (element?.type === DataType.BOUNDARY) {
21566
- data.boundary = {
21567
- cuttingHeight: element?.cuttingHeight,
21568
- isFlowGlobal: element?.isFlowGlobal,
21569
- angle: element?.angle,
21570
- direction: element?.direction,
21571
- name: element?.name,
21572
- edgeMowing: element?.edgeMowing,
21573
- edgeVision: element?.edgeVision,
21574
- obstacleMowEdge: element?.obstacleMowEdge,
21575
- };
21576
- if (element?.id) {
21577
- data.boundary.id = element?.id;
21578
- }
21579
- }
21580
- return data;
21581
- }, [editMapInfo.selectElement]);
21582
- const handleSave = React.useCallback(() => {
21583
- const params = renderElementData(editMapInfo?.selectElement);
21584
- const isObstacle = editMapInfo?.selectElement?.type === DataType.OBSTACLE;
21585
- const hasNotEnoughPoints = params?.obstacle?.points?.length < 3;
21586
- const isDoodle = editMapInfo?.selectElement?.type === DataType.DOODLE;
21587
- const doodleResult = checkDoodle();
21588
- if (isDoodle && !doodleResult?.isValid) {
21589
- antd.message.error('Keep more distance from boundaries, off-limit island and other doodles');
21590
- return;
21591
- }
21592
- if (isObstacle && hasNotEnoughPoints) {
21593
- antd.message.error('Save failed, please draw a closed shape');
21594
- return;
21595
- }
21596
- console.log('save->', editMapInfo, params);
21597
- if (editMapInfo?.selectElement?.type === DataType.BOUNDARY) {
21598
- onUpdateBoundary?.(params)?.then(() => {
21599
- setEditMapInfo({
21600
- ...editMapInfo,
21601
- createMode: null,
21602
- elementType: null,
21603
- selectElement: null,
21604
- isShowDrag: false,
21605
- });
21606
- }, (errorText) => {
21607
- antd.message.error('Save failed, please try again');
21608
- });
21609
- }
21610
- else {
21611
- onHandleCompleteRecord?.(params)?.then(() => {
21612
- setEditMapInfo({
21613
- ...editMapInfo,
21614
- createMode: null,
21615
- elementType: null,
21616
- selectElement: null,
21617
- isShowDrag: false,
21618
- });
21619
- }, (errorText) => {
21620
- antd.message.error('Save failed, please try again');
21621
- });
21622
- }
21623
- }, [editMapInfo.selectElement, onUpdateBoundary, onHandleCompleteRecord]);
21624
- const handleCancel = React.useCallback(() => {
21625
- const name = DATE_TYPE_MAP.find((item) => item.type === editMapInfo.elementType)?.label;
21626
- antd.Modal.confirm({
21627
- icon: null,
21628
- centered: true,
21629
- title: 'Quit editing',
21630
- content: `Changes you made will not be saved. Are you sure you want to quit editing the ${name}?`,
21631
- okText: 'Quit',
21632
- cancelText: 'Keep editing',
21633
- onOk: () => {
21634
- onHandleStopRecord?.()?.then(() => {
21635
- setEditMapInfo({
21636
- ...editMapInfo,
21637
- createMode: null,
21638
- elementType: null,
21639
- selectElement: null,
21640
- isShowDrag: false,
21641
- });
21642
- });
21643
- },
21644
- });
21645
- }, [editMapInfo]);
21646
- const handleDelete = React.useCallback(() => {
21647
- console.log('handleDelete 1->', editMapInfo);
21648
- antd.Modal.confirm({
21649
- icon: null,
21650
- title: 'Delete',
21651
- content: 'Are you sure you want to delete this element?',
21652
- okText: 'Delete',
21653
- cancelText: 'Cancel',
21654
- onOk: () => {
21655
- onHandleStopRecord?.()?.then(() => {
21656
- console.log('handleDelete 2->', editMapInfo, onHandleDeleteElement);
21657
- if (editMapInfo?.selectElement?.id) {
21658
- onHandleDeleteElement?.({
21659
- id: editMapInfo.selectElement?.id,
21660
- type: editMapInfo.elementType,
21661
- })?.then(() => {
21662
- setEditMapInfo({
21663
- ...editMapInfo,
21664
- createMode: null,
21665
- elementType: null,
21666
- selectElement: null,
21667
- isShowDrag: false,
21668
- });
21669
- }, (errorText) => {
21670
- antd.message.error('Save failed, please try again');
21671
- });
21672
- }
21673
- else {
21674
- setEditMapInfo({
21675
- ...editMapInfo,
21676
- createMode: null,
21677
- elementType: null,
21678
- selectElement: null,
21679
- isShowDrag: false,
21680
- });
21681
- }
21682
- }, (errorText) => {
21683
- antd.message.error('Save failed, please try again');
21684
- });
21685
- },
21686
- });
21687
- }, [editMapInfo?.selectElement, onHandleDeleteElement, onHandleStopRecord]);
21688
- if (!editMapInfo.selectElement)
21689
- return null;
21690
- console.log('handleElementInfo->', editMapInfo, currentType);
21691
- return (jsxRuntime.jsxs("div", { className: styles$9.handleElementInfo, children: [editMapInfo?.elementType !== DataType.BOUNDARY ? (jsxRuntime.jsxs("div", { className: styles$9.undoAndRedo, children: [jsxRuntime.jsx("div", { className: classNames(styles$9.undo, { [styles$9.disabled]: isUndoDisabled }), onClick: handleUndo, children: jsxRuntime.jsx(SvgUndo, {}) }), jsxRuntime.jsx("div", { className: classNames(styles$9.redo, { [styles$9.disabled]: idRedoDisabled }), onClick: handleRedo, children: jsxRuntime.jsx(SvgRedo, {}) })] })) : null, editMapInfo?.elementType === DataType.BOUNDARY && (jsxRuntime.jsx(BoundaryInfo, { onHandleDelete: handleDelete })), editMapInfo?.elementType === DataType.OBSTACLE && (jsxRuntime.jsx(ObstacleInfo, { onHandleDelete: handleDelete })), editMapInfo?.elementType === DataType.DOODLE && jsxRuntime.jsx(DoodleInfo, { onHandleDelete: handleDelete }), editMapInfo?.elementType === DataType.VISION_OFF && (jsxRuntime.jsx(VisionOffInfo, { onHandleDelete: handleDelete })), jsxRuntime.jsx("div", { className: styles$9.border }), jsxRuntime.jsx("div", { className: styles$9.handle, children: jsxRuntime.jsxs(antd.Space, { size: 12, children: [jsxRuntime.jsx(antd.Button, { variant: "outlined", color: "default", onClick: () => {
21692
- handleCancel();
21693
- }, children: "Cancel" }), jsxRuntime.jsx(antd.Button, { variant: "solid", color: "primary", onClick: handleSave, children: "Save" })] }) })] }));
21694
- };
21695
-
21696
- var _path;
21697
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
21698
- var SvgMobileAddPoint = function SvgMobileAddPoint(props) {
21699
- return /*#__PURE__*/React__namespace.createElement("svg", _extends({
21700
- xmlns: "http://www.w3.org/2000/svg",
21701
- width: 36,
21702
- height: 36,
21703
- fill: "none"
21704
- }, props), _path || (_path = /*#__PURE__*/React__namespace.createElement("path", {
21705
- stroke: "#fff",
21706
- strokeLinecap: "round",
21707
- strokeLinejoin: "round",
21708
- strokeWidth: 3,
21709
- d: "M6 12V9a3 3 0 0 1 3-3h3M6 24v3a3 3 0 0 0 3 3h3M24 6h3a3 3 0 0 1 3 3v3m-6 18h3a3 3 0 0 0 3-3v-3m-16.5-6h9M18 13.5v9"
21710
- })));
21711
- };
21712
-
21713
- var css_248z = ".index-module_crosshair__etey6 {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 40px;\n height: 40px;\n pointer-events: none;\n z-index: 99999;\n display: flex;\n justify-content: center;\n align-items: center;\n}";
21714
- var styles = {"crosshair":"index-module_crosshair__etey6"};
21715
- styleInject(css_248z);
21716
-
21717
- /**
21718
- * 十字准心组件
21719
- * 相对于父容器居中显示
21720
- */
21721
- const Crosshair = () => {
21722
- const { platform } = useCommonContext();
21723
- const { editMapInfo } = useMapEditContext();
21724
- const isVisible = React.useMemo(() => {
21725
- if (platform === PlatformType.H5 &&
21726
- editMapInfo?.mobileMode === MobileEditMode.CREATE &&
21727
- editMapInfo?.elementType === DataType.OBSTACLE) {
21728
- return true;
21729
- }
21730
- return false;
21731
- }, [platform, editMapInfo]);
21732
- return isVisible ? (jsxRuntime.jsx("div", { className: styles.crosshair, children: jsxRuntime.jsx(SvgMobileAddPoint, {}) })) : null;
21733
- };
21734
-
21735
- // 验证GPS坐标是否有效
21736
- const isValidGpsCoordinate = (coordinate) => {
21737
- if (!coordinate || coordinate.length < 2)
21738
- return false;
21739
- const [lng, lat] = coordinate;
21740
- // 检查是否为有效的GPS坐标范围,且不是原点(0,0)
21741
- return (lng >= -180 &&
21742
- lng <= 180 &&
21743
- lat >= -90 &&
21744
- lat <= 90 &&
21745
- !(Math.abs(lng) < 0.001 && Math.abs(lat) < 0.001) // 排除接近(0,0)的坐标
21746
- );
21747
- };
21748
- // 旋转坐标点
21749
- const rotateCoordinate = (point, center, angleRadians) => {
21750
- const [x, y] = point;
21751
- const [cx, cy] = center;
21752
- // 将点移动到原点
21753
- const dx = x - cx;
21754
- const dy = y - cy;
21755
- // 应用旋转矩阵
21756
- const cos = Math.cos(angleRadians);
21757
- const sin = Math.sin(angleRadians);
21758
- const rotatedX = dx * cos - dy * sin;
21759
- const rotatedY = dx * sin + dy * cos;
21760
- // 移回原位置
21761
- return [rotatedX + cx, rotatedY + cy];
20016
+ // 旋转坐标点
20017
+ const rotateCoordinate = (point, center, angleRadians) => {
20018
+ const [x, y] = point;
20019
+ const [cx, cy] = center;
20020
+ // 将点移动到原点
20021
+ const dx = x - cx;
20022
+ const dy = y - cy;
20023
+ // 应用旋转矩阵
20024
+ const cos = Math.cos(angleRadians);
20025
+ const sin = Math.sin(angleRadians);
20026
+ const rotatedX = dx * cos - dy * sin;
20027
+ const rotatedY = dx * sin + dy * cos;
20028
+ // 移回原位置
20029
+ return [rotatedX + cx, rotatedY + cy];
21762
20030
  };
21763
20031
  // 获取有效的GPS边界
21764
20032
  const getValidGpsBounds = (mapData, rotation = 0) => {
@@ -21816,7 +20084,7 @@ const defaultMapConfig = DEFAULT_STYLES;
21816
20084
  // 地图渲染器组件
21817
20085
  const MowerMapRenderer = React.forwardRef(({ sn, platform = PlatformType.WEB, edger = false, unitType = UnitsType.Imperial, language = 'en', onlyRead = false, mapConfig,
21818
20086
  // pathConfig,
21819
- modelType, mapRef, mapJson, pathJson, realTimeData, antennaConfig, onMapLoad, onPathLoad, onError, className, style, googleMapInstance: _googleMapInstance, dragMap = false, dragCallbacks, defaultTransform, debug: _debug = false, doodleList = [], editMap = false, unStructMapData, disabledObstacles = false, onHandleEnterRecord, onHandleCompleteRecord, onHandleStopRecord, onHandleDeleteElement, onSaveBoundaryData, onSaveMap, onEditInfoMapChange, onUpdateBoundary, heightOptions, globalHeight, onHandleEvent, }, ref) => {
20087
+ modelType, mapRef, mapJson, pathJson, realTimeData, antennaConfig, onMapLoad, onPathLoad, onError, className, style, googleMapInstance: _googleMapInstance, dragMap = false, dragCallbacks, defaultTransform, debug: _debug = false, doodleList = [], editMap = false, unStructMapData, disabledObstacles = false, onHandleEnterRecord, onHandleCompleteRecord, onHandleStopRecord, onHandleDeleteElement, onSaveBoundaryData, onSaveMap, onEditInfoMapChange, onUpdateBoundary, heightOptions, globalHeight, onHandleEvent, onSelectElement, }, ref) => {
21820
20088
  const [currentError, setCurrentError] = React.useState(null);
21821
20089
  const overlayRef = React.useRef(null);
21822
20090
  // const mapRef = useMap();
@@ -21864,7 +20132,10 @@ modelType, mapRef, mapJson, pathJson, realTimeData, antennaConfig, onMapLoad, on
21864
20132
  return {
21865
20133
  minDistance,
21866
20134
  editMapInfo,
21867
- setEditMapInfo,
20135
+ setEditMapInfo: (editMapInfo) => {
20136
+ setEditMapInfo(editMapInfo);
20137
+ onEditInfoMapChange?.(editMapInfo);
20138
+ },
21868
20139
  onHandleEnterRecord,
21869
20140
  onHandleCompleteRecord,
21870
20141
  onHandleStopRecord,
@@ -21873,6 +20144,7 @@ modelType, mapRef, mapJson, pathJson, realTimeData, antennaConfig, onMapLoad, on
21873
20144
  onHandleDeleteElement,
21874
20145
  onUpdateBoundary,
21875
20146
  onHandleEvent,
20147
+ onSelectElement,
21876
20148
  };
21877
20149
  }, [
21878
20150
  minDistance,
@@ -21885,6 +20157,7 @@ modelType, mapRef, mapJson, pathJson, realTimeData, antennaConfig, onMapLoad, on
21885
20157
  onSaveMap,
21886
20158
  onUpdateBoundary,
21887
20159
  onHandleEvent,
20160
+ onSelectElement,
21888
20161
  ]);
21889
20162
  // 合并配置
21890
20163
  const mergedMapConfig = React.useMemo(() => {
@@ -22278,6 +20551,10 @@ modelType, mapRef, mapJson, pathJson, realTimeData, antennaConfig, onMapLoad, on
22278
20551
  addDoodle: (doodle) => svgEditMapRef.current?.addDoodle(doodle),
22279
20552
  // 检查doodle
22280
20553
  checkDoodle: () => svgEditMapRef.current?.checkDoodle?.(),
20554
+ // 增加元素(web)
20555
+ addElement: (type, item) => svgEditMapRef.current?.addElement(type, item),
20556
+ // 保存元素
20557
+ saveElement: (type, item) => svgEditMapRef.current?.saveElement(type, item),
22281
20558
  }));
22282
20559
  /**
22283
20560
  * 根据割草机的位置更新路径
@@ -22292,7 +20569,7 @@ modelType, mapRef, mapJson, pathJson, realTimeData, antennaConfig, onMapLoad, on
22292
20569
  }
22293
20570
  // console.log('mowerrender------->', svgViewBox);
22294
20571
  // 使用goole maps自定义叠加层,返回debug信息(如果启用)
22295
- return (jsxRuntime.jsx(CommonContextProvider, { value: commonValue, children: jsxRuntime.jsx(SvgEditContextProvider, { value: svgEditValue, children: jsxRuntime.jsxs(MapEditContextProvider, { value: mapEditValue, children: [platform !== PlatformType.H5 && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(AddEntry, { disabledObstacles: disabledObstacles, doodleList: doodleList, editMap: editMap }), jsxRuntime.jsx(HandleElementInfo, { editMapInfo: editMapInfo, setEditMapInfo: setEditMapInfo })] })), platform === PlatformType.H5 && jsxRuntime.jsx(Crosshair, {}), jsxRuntime.jsxs(OverlayViewF, { onLoad: (lay) => {
20572
+ return (jsxRuntime.jsx(CommonContextProvider, { value: commonValue, children: jsxRuntime.jsx(SvgEditContextProvider, { value: svgEditValue, children: jsxRuntime.jsxs(MapEditContextProvider, { value: mapEditValue, children: [platform !== PlatformType.H5 && (jsxRuntime.jsx(jsxRuntime.Fragment, {})), platform === PlatformType.H5 && jsxRuntime.jsx(Crosshair, {}), jsxRuntime.jsxs(OverlayViewF, { onLoad: (lay) => {
22296
20573
  setOverlay(lay);
22297
20574
  }, onDraw: (style) => {
22298
20575
  const layout = Object.keys(style).reduce((pre, cur) => {
@@ -22310,9 +20587,93 @@ modelType, mapRef, mapJson, pathJson, realTimeData, antennaConfig, onMapLoad, on
22310
20587
  });
22311
20588
  MowerMapRenderer.displayName = 'MowerMapRenderer';
22312
20589
 
20590
+ const BoundarySvgRender = React.memo(({ mapJson, id, maxWidth = 300 }) => {
20591
+ const svgElementData = React.useMemo(() => {
20592
+ const data = UnifiedMapDataProcessor.processMapData(mapJson, DEFAULT_STYLES) || {};
20593
+ return data;
20594
+ }, [mapJson, DEFAULT_STYLES]);
20595
+ const boundaryInfo = React.useMemo(() => {
20596
+ const boundary = svgElementData.boundary.find((item) => item.id === id);
20597
+ return boundary;
20598
+ }, [id, svgElementData]);
20599
+ // 计算当前boundary的viewBox
20600
+ const boundaryViewBox = React.useMemo(() => {
20601
+ if (!boundaryInfo?.points || boundaryInfo.points.length === 0) {
20602
+ return null;
20603
+ }
20604
+ // 计算边界
20605
+ let minX = Infinity;
20606
+ let minY = Infinity;
20607
+ let maxX = -Infinity;
20608
+ let maxY = -Infinity;
20609
+ boundaryInfo.points.forEach((point) => {
20610
+ minX = Math.min(minX, point[0]);
20611
+ minY = Math.min(minY, point[1]);
20612
+ maxX = Math.max(maxX, point[0]);
20613
+ maxY = Math.max(maxY, point[1]);
20614
+ });
20615
+ // 添加边距
20616
+ const padding = 50;
20617
+ const width = maxX - minX + padding * 2;
20618
+ const height = maxY - minY + padding * 2;
20619
+ return {
20620
+ x: minX - padding,
20621
+ y: minY - padding,
20622
+ width,
20623
+ height,
20624
+ };
20625
+ }, [boundaryInfo]);
20626
+ const style = React.useMemo(() => {
20627
+ if (boundaryViewBox?.width > boundaryViewBox?.height) {
20628
+ return {
20629
+ width: maxWidth,
20630
+ height: maxWidth * (boundaryViewBox.height / boundaryViewBox.width),
20631
+ };
20632
+ }
20633
+ return {
20634
+ width: maxWidth * (boundaryViewBox.height / boundaryViewBox.width),
20635
+ height: maxWidth,
20636
+ };
20637
+ }, [boundaryViewBox, maxWidth]);
20638
+ return (jsxRuntime.jsxs("div", { style: {
20639
+ position: 'relative',
20640
+ width: style.width,
20641
+ height: style.height,
20642
+ margin: '0 auto',
20643
+ }, children: [jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: `${boundaryViewBox.x} ${boundaryViewBox.y} ${boundaryViewBox.width} ${boundaryViewBox.height}`, width: `${style.width}px`, height: `${style.height}px`, style: { position: 'absolute', inset: 0, pointerEvents: 'none' }, children: Object.keys(svgElementData)?.map((key) => {
20644
+ return svgElementData[key]?.map((element) => {
20645
+ if (key === exports.DataType.VISION_OFF)
20646
+ return null;
20647
+ return (jsxRuntime.jsx(GElement, { type: key, data: svgElementData[key], children: jsxRuntime.jsx(SvgElement, { type: key, data: element, onSelect: () => { }, onCancel: () => { } }, element.id) }, key));
20648
+ });
20649
+ }) }), jsxRuntime.jsx(CharginPile, { mapData: mapJson, mapConfig: DEFAULT_STYLES, viewBox: boundaryViewBox || null, rotation: 0 })] }));
20650
+ });
20651
+
20652
+ exports.ALL_DIRECTION_SELECTED = ALL_DIRECTION_SELECTED;
20653
+ exports.AntennaData = AntennaData;
20654
+ exports.AntennaDataBuilder = AntennaDataBuilder;
20655
+ exports.BaseData = BaseData;
20656
+ exports.BoundaryData = BoundaryData;
22313
20657
  exports.BoundarySvgRender = BoundarySvgRender;
20658
+ exports.ChannelData = ChannelData;
20659
+ exports.ChargingPileData = ChargingPileData;
20660
+ exports.DoodleData = DoodleData;
20661
+ exports.MAX_DIRECTION_ANGLE = MAX_DIRECTION_ANGLE;
20662
+ exports.MIN_DIRECTION_ANGLE = MIN_DIRECTION_ANGLE;
22314
20663
  exports.MapDataProcessor = MapDataProcessor;
22315
20664
  exports.MowerMapRenderer = MowerMapRenderer;
20665
+ exports.ObstacleData = ObstacleData;
20666
+ exports.PathData = PathData;
22316
20667
  exports.PathDataProcessor = PathDataProcessor;
20668
+ exports.SCALE_FACTOR = SCALE_FACTOR;
20669
+ exports.SvgParserNative = SvgParserNative;
20670
+ exports.UnifiedMapDataProcessor = UnifiedMapDataProcessor;
20671
+ exports.VisionOffData = VisionOffData;
22317
20672
  exports.calculateMapGpsCenter = calculateMapGpsCenter;
22318
20673
  exports.estimateGpsFromMapBounds = estimateGpsFromMapBounds;
20674
+ exports.initBoundary = initBoundary;
20675
+ exports.initChannel = initChannel;
20676
+ exports.initDoodle = initDoodle;
20677
+ exports.initObstacle = initObstacle;
20678
+ exports.initVisionOff = initVisionOff;
20679
+ exports.restorePointsFormat = restorePointsFormat;