@fleet-frontend/mower-maps 0.2.0-beta.7 → 0.2.0-beta.9
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.
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +33 -35
- package/dist/index.js +85 -87
- package/dist/render/MowerMapRenderer.d.ts.map +1 -1
- package/dist/render/boundaryLabels/useBoundaryLabels.d.ts.map +1 -1
- package/dist/render/svgElement/ChannelClipPath/index.d.ts.map +1 -1
- package/dist/types/renderer.d.ts +3 -1
- package/dist/types/renderer.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export { default as MowerMapRenderer } from './render/MowerMapRenderer';
|
|
2
2
|
export { default as BoundarySvgRender } from './render/BoundarySvgRender';
|
|
3
3
|
export type { MapConfig, AntennaConfig, MowerPositionConfig, MowerMapRendererProps, MowerMapRendererRef, DragState, DragCallbacks, } from './types/renderer';
|
|
4
|
+
export { PlatformType } from './types/renderer';
|
|
4
5
|
export type { PathConfig } from './types/processor';
|
|
5
|
-
export {
|
|
6
|
+
export { CreateStatus, MobileEditMode, RecordTypeEnum, RecordFunctionEnum, } from './context/mapEdit';
|
|
7
|
+
export type { EditMapInfo, ElementRecordParams } from './context/mapEdit';
|
|
6
8
|
export type { MapData, SubMap, MapElement, BoundaryData, ObstacleData, VisionOffData, DoodleData, TunnelData, } from './types';
|
|
7
9
|
export type { MapBounds, Point } from './types/utils';
|
|
8
10
|
export { MapDataProcessor, PathDataProcessor } from './processor';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAExE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAG1E,YAAY,EACV,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,SAAS,EACT,aAAa,GACd,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAExE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAG1E,YAAY,EACV,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,SAAS,EACT,aAAa,GACd,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG1E,YAAY,EACV,OAAO,EACP,MAAM,EACN,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,EACV,UAAU,GACX,MAAM,SAAS,CAAC;AAGjB,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAElE,YAAY,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,aAAa,CAAC;AAEhE,cAAc,aAAa,CAAC;AAG5B,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/index.esm.js
CHANGED
|
@@ -291,7 +291,7 @@ function initObstacle() {
|
|
|
291
291
|
const obstacle = {
|
|
292
292
|
id: null,
|
|
293
293
|
area: 0,
|
|
294
|
-
name: '
|
|
294
|
+
name: 'off-imit island',
|
|
295
295
|
status: 1,
|
|
296
296
|
end_timestamp: 0,
|
|
297
297
|
start_timestamp: 0,
|
|
@@ -14756,7 +14756,7 @@ const useBoundaryLabels = ({ mapData, pathData, unitType, viewBox, mowPartitionD
|
|
|
14756
14756
|
}
|
|
14757
14757
|
}, [mapData, pathData, realTimeData]);
|
|
14758
14758
|
const items = useMemo(() => {
|
|
14759
|
-
console.log('boundartItme->', viewBox, mapData)
|
|
14759
|
+
// console.log('boundartItme->', viewBox, mapData)
|
|
14760
14760
|
if (!mapData || !viewBox)
|
|
14761
14761
|
return [];
|
|
14762
14762
|
// 构建边界数据
|
|
@@ -14799,7 +14799,7 @@ const useBoundaryLabels = ({ mapData, pathData, unitType, viewBox, mowPartitionD
|
|
|
14799
14799
|
function computePolygonCentroid(points) {
|
|
14800
14800
|
if (!points || points.length < 3)
|
|
14801
14801
|
return null;
|
|
14802
|
-
const valid = points.filter(p => p.length >= 2);
|
|
14802
|
+
const valid = points.filter((p) => p.length >= 2);
|
|
14803
14803
|
if (valid.length < 3)
|
|
14804
14804
|
return null;
|
|
14805
14805
|
const polygon = [...valid];
|
|
@@ -16282,11 +16282,11 @@ const BoundaryElement = ({ data }) => {
|
|
|
16282
16282
|
*/
|
|
16283
16283
|
const strokeWidth = useMemo(() => {
|
|
16284
16284
|
// 如果是h5选中的情况下,边界需要加粗
|
|
16285
|
-
if (
|
|
16285
|
+
if (editMapInfo?.selectElement?.id === data.id) {
|
|
16286
16286
|
return dp2px((style.lineWidth || 3) * 2);
|
|
16287
16287
|
}
|
|
16288
16288
|
return dp2px(style.lineWidth || 3);
|
|
16289
|
-
}, [
|
|
16289
|
+
}, [style, editMapInfo]);
|
|
16290
16290
|
/**
|
|
16291
16291
|
* 点击边界的回调
|
|
16292
16292
|
*/
|
|
@@ -16351,7 +16351,7 @@ const ChannelElement = ({ data }) => {
|
|
|
16351
16351
|
* @returns
|
|
16352
16352
|
*/
|
|
16353
16353
|
const useHistoryHandle = (props) => {
|
|
16354
|
-
const { maxHistoryCount =
|
|
16354
|
+
const { maxHistoryCount = 16 } = {};
|
|
16355
16355
|
const { setEditMapInfo } = useMapEditContext();
|
|
16356
16356
|
// redo
|
|
16357
16357
|
const redo = () => {
|
|
@@ -16386,7 +16386,12 @@ const useHistoryHandle = (props) => {
|
|
|
16386
16386
|
const addHistory = useCallback((history) => {
|
|
16387
16387
|
// 添加历史记录的时候,应该把当前的索引之后的所有历史记录都清空
|
|
16388
16388
|
setEditMapInfo((prev) => {
|
|
16389
|
-
console.log(
|
|
16389
|
+
// console.log(
|
|
16390
|
+
// 'addHistory->',
|
|
16391
|
+
// JSON.stringify(prev?.historyList),
|
|
16392
|
+
// prev?.historyList,
|
|
16393
|
+
// prev.currentHistoryIndex
|
|
16394
|
+
// );
|
|
16390
16395
|
if (!prev?.historyList || prev?.historyList?.length === 0) {
|
|
16391
16396
|
return {
|
|
16392
16397
|
...prev,
|
|
@@ -16395,13 +16400,13 @@ const useHistoryHandle = (props) => {
|
|
|
16395
16400
|
};
|
|
16396
16401
|
}
|
|
16397
16402
|
let newHistoryList = prev.historyList.slice(0, prev.currentHistoryIndex + 1);
|
|
16398
|
-
console.log('newHistoryList->', JSON.stringify(newHistoryList), newHistoryList);
|
|
16403
|
+
// console.log('newHistoryList->', JSON.stringify(newHistoryList), newHistoryList);
|
|
16399
16404
|
// 保持历史记录的条数不超过maxHistoryCount
|
|
16400
16405
|
if (newHistoryList.length >= maxHistoryCount) {
|
|
16401
16406
|
newHistoryList.shift();
|
|
16402
16407
|
}
|
|
16403
16408
|
newHistoryList = [...newHistoryList, history];
|
|
16404
|
-
console.log('newHistoryList result->', JSON.stringify(newHistoryList), newHistoryList);
|
|
16409
|
+
// console.log('newHistoryList result->', JSON.stringify(newHistoryList), newHistoryList);
|
|
16405
16410
|
return {
|
|
16406
16411
|
...prev,
|
|
16407
16412
|
historyList: newHistoryList,
|
|
@@ -17249,7 +17254,7 @@ const VisionOffTransformWrapper = ({ data, isSelected = false, onSelect, onCance
|
|
|
17249
17254
|
const infoBoxX = centerX - infoBoxWidth / 2; // 居中对齐
|
|
17250
17255
|
const scale = (isWeb ? 2 : 1) * overlayScale;
|
|
17251
17256
|
const offsetLeft = 10 * scale;
|
|
17252
|
-
return (jsxs(Fragment, { children: [jsx("polygon", { points: selectionBoxPoints.map((point) => `${point.x},${point.y}`).join(' '), fill: "none", stroke: "#
|
|
17257
|
+
return (jsxs(Fragment, { children: [jsx("polygon", { points: selectionBoxPoints.map((point) => `${point.x},${point.y}`).join(' '), fill: "none", stroke: "#9EA6BA", strokeWidth: "2", strokeDasharray: "5,5", vectorEffect: "non-scaling-stroke", style: { cursor: 'move' }, ...(platform === PlatformType.H5
|
|
17253
17258
|
? {
|
|
17254
17259
|
onTouchStart: createReactEventHandler((e) => {
|
|
17255
17260
|
handleMouseDownWithDisabled(e);
|
|
@@ -17300,7 +17305,7 @@ const VisionOffTransformWrapper = ({ data, isSelected = false, onSelect, onCance
|
|
|
17300
17305
|
color: 'white',
|
|
17301
17306
|
fontWeight: '400',
|
|
17302
17307
|
// transform: `translate(0, ${50 * overlayScale}px) scale(${overlayScale})`,
|
|
17303
|
-
}, children: [dimensions.height, "m \u00D7 ", dimensions.width, "m"] }) }))] }));
|
|
17308
|
+
}, children: [dimensions.height, " m \u00D7 ", dimensions.width, " m"] }) }))] }));
|
|
17304
17309
|
})()] }));
|
|
17305
17310
|
};
|
|
17306
17311
|
|
|
@@ -18088,7 +18093,7 @@ const DoodleTransformWrapper = ({ data, isSelected = false, isSelectedWithoutOpe
|
|
|
18088
18093
|
color: 'white',
|
|
18089
18094
|
fontWeight: '400',
|
|
18090
18095
|
// transform: `translate(0, ${50 * overlayScale}px) scale(${overlayScale})`,
|
|
18091
|
-
}, children: [jsxs("div", { children: [dimensions.
|
|
18096
|
+
}, children: [jsxs("div", { children: [dimensions.width, " m \u00D7 ", dimensions.height, " m"] }), jsxs("div", { style: {
|
|
18092
18097
|
display: 'flex',
|
|
18093
18098
|
alignItems: 'center',
|
|
18094
18099
|
justifyContent: 'center',
|
|
@@ -18371,23 +18376,19 @@ var classnamesExports = classnames.exports;
|
|
|
18371
18376
|
var classNames = /*@__PURE__*/getDefaultExportFromCjs(classnamesExports);
|
|
18372
18377
|
|
|
18373
18378
|
const ChannelClipPath = React__default.memo(() => {
|
|
18374
|
-
const {
|
|
18379
|
+
const { svgViewBox } = useCommonContext();
|
|
18380
|
+
const { svgElementDatas } = useSvgEditContext();
|
|
18375
18381
|
const boundaryData = svgElementDatas?.[DataType.BOUNDARY] || [];
|
|
18376
18382
|
const [minX, minY, maxX, maxY] = useMemo(() => {
|
|
18377
|
-
const baseVal =
|
|
18383
|
+
const baseVal = svgViewBox;
|
|
18378
18384
|
return [
|
|
18379
18385
|
baseVal?.x || 0,
|
|
18380
18386
|
baseVal?.y || 0,
|
|
18381
18387
|
baseVal?.x + (baseVal?.width || 0),
|
|
18382
18388
|
baseVal?.y + (baseVal?.height || 0),
|
|
18383
18389
|
];
|
|
18384
|
-
}, [
|
|
18385
|
-
|
|
18386
|
-
svgRef?.viewBox.baseVal?.y,
|
|
18387
|
-
svgRef?.viewBox.baseVal?.width,
|
|
18388
|
-
svgRef?.viewBox.baseVal?.height,
|
|
18389
|
-
]);
|
|
18390
|
-
console.log('boundaryData---->', svgRef?.viewBox.baseVal);
|
|
18390
|
+
}, [svgViewBox]);
|
|
18391
|
+
console.log('boundaryData---->', svgViewBox);
|
|
18391
18392
|
/**
|
|
18392
18393
|
* 判断多边形是否为逆时针方向
|
|
18393
18394
|
* 使用叉积法计算多边形的有向面积
|
|
@@ -18547,6 +18548,7 @@ const ChannelClipPath = React__default.memo(() => {
|
|
|
18547
18548
|
if (partitionCoords.length >= 3) {
|
|
18548
18549
|
// 判断方向并构建路径
|
|
18549
18550
|
const isclockwise = isCounterclockwise(partitionCoords);
|
|
18551
|
+
console.log('partitionCoords===', partitionCoords, isclockwise);
|
|
18550
18552
|
const partitionPath = buildPathData(partitionCoords, isclockwise);
|
|
18551
18553
|
baseD += ` ${partitionPath}`;
|
|
18552
18554
|
}
|
|
@@ -20112,10 +20114,7 @@ modelType, mapRef, mapJson, pathJson, realTimeData, antennaConfig, onMapLoad, on
|
|
|
20112
20114
|
return {
|
|
20113
20115
|
minDistance,
|
|
20114
20116
|
editMapInfo,
|
|
20115
|
-
setEditMapInfo
|
|
20116
|
-
setEditMapInfo(editMapInfo);
|
|
20117
|
-
onEditInfoMapChange?.(editMapInfo);
|
|
20118
|
-
},
|
|
20117
|
+
setEditMapInfo,
|
|
20119
20118
|
onHandleEnterRecord,
|
|
20120
20119
|
onHandleCompleteRecord,
|
|
20121
20120
|
onHandleStopRecord,
|
|
@@ -20428,15 +20427,14 @@ modelType, mapRef, mapJson, pathJson, realTimeData, antennaConfig, onMapLoad, on
|
|
|
20428
20427
|
// 基于固定的参考zoom级别计算overlayScale
|
|
20429
20428
|
const zoomDiff = currentZoom - REFERENCE_ZOOM;
|
|
20430
20429
|
const scale = Math.pow(2, -zoomDiff); // 负数实现反向缩放
|
|
20431
|
-
|
|
20432
|
-
|
|
20433
|
-
|
|
20434
|
-
else if (scale > 4) {
|
|
20435
|
-
|
|
20436
|
-
}
|
|
20437
|
-
|
|
20438
|
-
|
|
20439
|
-
}
|
|
20430
|
+
setOverlayScale(scale < 1 ? 1 : scale);
|
|
20431
|
+
// if (scale < 1) {
|
|
20432
|
+
// setOverlayScale(1);
|
|
20433
|
+
// } else if (scale > 4) {
|
|
20434
|
+
// setOverlayScale(4);
|
|
20435
|
+
// } else {
|
|
20436
|
+
// setOverlayScale(scale);
|
|
20437
|
+
// }
|
|
20440
20438
|
};
|
|
20441
20439
|
// 使用lodash throttle进行节流处理: 100ms内只执行一次
|
|
20442
20440
|
const handleZoomChanged = throttle$2(updateScale, 50);
|
|
@@ -20629,4 +20627,4 @@ const BoundarySvgRender = React__default.memo(({ mapJson, id, maxWidth = 300 })
|
|
|
20629
20627
|
}) }), jsx(CharginPile, { mapData: mapJson, mapConfig: DEFAULT_STYLES, viewBox: boundaryViewBox || null, rotation: 0 })] }));
|
|
20630
20628
|
});
|
|
20631
20629
|
|
|
20632
|
-
export { ALL_DIRECTION_SELECTED, AntennaData, AntennaDataBuilder, BaseData, BoundaryData, BoundarySvgRender, ChannelData, ChargingPileData, CreateStatus, DataType, DoodleData, MAX_DIRECTION_ANGLE, MIN_DIRECTION_ANGLE, MapDataProcessor, MobileEditMode, MowerMapRenderer, ObstacleData, PathData, PathDataProcessor, RecordFunctionEnum, RecordTypeEnum, RenderType, SCALE_FACTOR, SvgParserNative, UnifiedMapDataProcessor, VisionOffData, calculateMapGpsCenter, estimateGpsFromMapBounds, initBoundary, initChannel, initDoodle, initObstacle, initVisionOff, restorePointsFormat };
|
|
20630
|
+
export { ALL_DIRECTION_SELECTED, AntennaData, AntennaDataBuilder, BaseData, BoundaryData, BoundarySvgRender, ChannelData, ChargingPileData, CreateStatus, DataType, DoodleData, MAX_DIRECTION_ANGLE, MIN_DIRECTION_ANGLE, MapDataProcessor, MobileEditMode, MowerMapRenderer, ObstacleData, PathData, PathDataProcessor, PlatformType, RecordFunctionEnum, RecordTypeEnum, RenderType, SCALE_FACTOR, SvgParserNative, UnifiedMapDataProcessor, VisionOffData, calculateMapGpsCenter, estimateGpsFromMapBounds, initBoundary, initChannel, initDoodle, initObstacle, initVisionOff, restorePointsFormat };
|
package/dist/index.js
CHANGED
|
@@ -311,7 +311,7 @@ function initObstacle() {
|
|
|
311
311
|
const obstacle = {
|
|
312
312
|
id: null,
|
|
313
313
|
area: 0,
|
|
314
|
-
name: '
|
|
314
|
+
name: 'off-imit island',
|
|
315
315
|
status: 1,
|
|
316
316
|
end_timestamp: 0,
|
|
317
317
|
start_timestamp: 0,
|
|
@@ -7997,11 +7997,11 @@ class SvgParserNative {
|
|
|
7997
7997
|
}
|
|
7998
7998
|
SvgParserNative.cache = new Map();
|
|
7999
7999
|
|
|
8000
|
-
|
|
8000
|
+
exports.PlatformType = void 0;
|
|
8001
8001
|
(function (PlatformType) {
|
|
8002
8002
|
PlatformType["WEB"] = "web";
|
|
8003
8003
|
PlatformType["H5"] = "h5";
|
|
8004
|
-
})(PlatformType || (PlatformType = {}));
|
|
8004
|
+
})(exports.PlatformType || (exports.PlatformType = {}));
|
|
8005
8005
|
|
|
8006
8006
|
/**
|
|
8007
8007
|
* 触摸事件工具函数
|
|
@@ -8039,7 +8039,7 @@ const normalizeTouchEvent = (event) => {
|
|
|
8039
8039
|
* 根据平台获取正确的事件类型
|
|
8040
8040
|
*/
|
|
8041
8041
|
const getEventTypes = (platform) => {
|
|
8042
|
-
if (platform === PlatformType.H5) {
|
|
8042
|
+
if (platform === exports.PlatformType.H5) {
|
|
8043
8043
|
return {
|
|
8044
8044
|
start: 'touchstart',
|
|
8045
8045
|
move: 'touchmove',
|
|
@@ -14069,7 +14069,7 @@ const useCurrentMowingDataStore = create((set) => ({
|
|
|
14069
14069
|
|
|
14070
14070
|
const CommonContext = React.createContext({
|
|
14071
14071
|
sn: '',
|
|
14072
|
-
platform: PlatformType.WEB,
|
|
14072
|
+
platform: exports.PlatformType.WEB,
|
|
14073
14073
|
svgViewBox: null,
|
|
14074
14074
|
unitType: UnitsType.Metric,
|
|
14075
14075
|
mapRef: null,
|
|
@@ -14776,7 +14776,7 @@ const useBoundaryLabels = ({ mapData, pathData, unitType, viewBox, mowPartitionD
|
|
|
14776
14776
|
}
|
|
14777
14777
|
}, [mapData, pathData, realTimeData]);
|
|
14778
14778
|
const items = React.useMemo(() => {
|
|
14779
|
-
console.log('boundartItme->', viewBox, mapData)
|
|
14779
|
+
// console.log('boundartItme->', viewBox, mapData)
|
|
14780
14780
|
if (!mapData || !viewBox)
|
|
14781
14781
|
return [];
|
|
14782
14782
|
// 构建边界数据
|
|
@@ -14819,7 +14819,7 @@ const useBoundaryLabels = ({ mapData, pathData, unitType, viewBox, mowPartitionD
|
|
|
14819
14819
|
function computePolygonCentroid(points) {
|
|
14820
14820
|
if (!points || points.length < 3)
|
|
14821
14821
|
return null;
|
|
14822
|
-
const valid = points.filter(p => p.length >= 2);
|
|
14822
|
+
const valid = points.filter((p) => p.length >= 2);
|
|
14823
14823
|
if (valid.length < 3)
|
|
14824
14824
|
return null;
|
|
14825
14825
|
const polygon = [...valid];
|
|
@@ -16170,7 +16170,7 @@ const PolygonElement = ({ points, fillColor = 'rgba(0, 0, 0, 0.1)', fillOpacity
|
|
|
16170
16170
|
renderCoordinates.map((coord, index) => {
|
|
16171
16171
|
const nextCoord = renderCoordinates[(index + 1) % renderCoordinates.length];
|
|
16172
16172
|
const isDashPath = coord[2] === 1;
|
|
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
|
|
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 === exports.PlatformType.H5
|
|
16174
16174
|
? {
|
|
16175
16175
|
onTouchStart: createReactEventHandler((e) => handleEdgeClick(e, index)),
|
|
16176
16176
|
}
|
|
@@ -16220,7 +16220,7 @@ const PolygonElement = ({ points, fillColor = 'rgba(0, 0, 0, 0.1)', fillOpacity
|
|
|
16220
16220
|
setTimeout(() => {
|
|
16221
16221
|
isDoubleClickingRef.current = false;
|
|
16222
16222
|
}, 300);
|
|
16223
|
-
if (platform === PlatformType.H5) {
|
|
16223
|
+
if (platform === exports.PlatformType.H5) {
|
|
16224
16224
|
if (onVertexDelete && coordinates.length > 3) {
|
|
16225
16225
|
onVertexDelete(idx);
|
|
16226
16226
|
}
|
|
@@ -16230,7 +16230,7 @@ const PolygonElement = ({ points, fillColor = 'rgba(0, 0, 0, 0.1)', fillOpacity
|
|
|
16230
16230
|
if (editMode || (createMode && completed)) {
|
|
16231
16231
|
setTooltipIndex(idx);
|
|
16232
16232
|
}
|
|
16233
|
-
}, ...(platform === PlatformType.H5
|
|
16233
|
+
}, ...(platform === exports.PlatformType.H5
|
|
16234
16234
|
? {
|
|
16235
16235
|
onTouchStart: createReactEventHandler((e) => {
|
|
16236
16236
|
// 拖拽逻辑:编辑模式或创建完成后
|
|
@@ -16302,17 +16302,17 @@ const BoundaryElement = ({ data }) => {
|
|
|
16302
16302
|
*/
|
|
16303
16303
|
const strokeWidth = React.useMemo(() => {
|
|
16304
16304
|
// 如果是h5选中的情况下,边界需要加粗
|
|
16305
|
-
if (
|
|
16305
|
+
if (editMapInfo?.selectElement?.id === data.id) {
|
|
16306
16306
|
return dp2px((style.lineWidth || 3) * 2);
|
|
16307
16307
|
}
|
|
16308
16308
|
return dp2px(style.lineWidth || 3);
|
|
16309
|
-
}, [
|
|
16309
|
+
}, [style, editMapInfo]);
|
|
16310
16310
|
/**
|
|
16311
16311
|
* 点击边界的回调
|
|
16312
16312
|
*/
|
|
16313
16313
|
const onPathClick = React.useCallback(() => {
|
|
16314
16314
|
onSelectElement?.(exports.DataType.BOUNDARY);
|
|
16315
|
-
if (platform === PlatformType.H5) {
|
|
16315
|
+
if (platform === exports.PlatformType.H5) {
|
|
16316
16316
|
// 对于地块来说,如果当前有元素是在编辑和创建模式下,则不进行选中
|
|
16317
16317
|
if (editMapInfo.mobileMode === exports.MobileEditMode.EDIT ||
|
|
16318
16318
|
editMapInfo.mobileMode === exports.MobileEditMode.CREATE) {
|
|
@@ -16371,7 +16371,7 @@ const ChannelElement = ({ data }) => {
|
|
|
16371
16371
|
* @returns
|
|
16372
16372
|
*/
|
|
16373
16373
|
const useHistoryHandle = (props) => {
|
|
16374
|
-
const { maxHistoryCount =
|
|
16374
|
+
const { maxHistoryCount = 16 } = {};
|
|
16375
16375
|
const { setEditMapInfo } = useMapEditContext();
|
|
16376
16376
|
// redo
|
|
16377
16377
|
const redo = () => {
|
|
@@ -16406,7 +16406,12 @@ const useHistoryHandle = (props) => {
|
|
|
16406
16406
|
const addHistory = React.useCallback((history) => {
|
|
16407
16407
|
// 添加历史记录的时候,应该把当前的索引之后的所有历史记录都清空
|
|
16408
16408
|
setEditMapInfo((prev) => {
|
|
16409
|
-
console.log(
|
|
16409
|
+
// console.log(
|
|
16410
|
+
// 'addHistory->',
|
|
16411
|
+
// JSON.stringify(prev?.historyList),
|
|
16412
|
+
// prev?.historyList,
|
|
16413
|
+
// prev.currentHistoryIndex
|
|
16414
|
+
// );
|
|
16410
16415
|
if (!prev?.historyList || prev?.historyList?.length === 0) {
|
|
16411
16416
|
return {
|
|
16412
16417
|
...prev,
|
|
@@ -16415,13 +16420,13 @@ const useHistoryHandle = (props) => {
|
|
|
16415
16420
|
};
|
|
16416
16421
|
}
|
|
16417
16422
|
let newHistoryList = prev.historyList.slice(0, prev.currentHistoryIndex + 1);
|
|
16418
|
-
console.log('newHistoryList->', JSON.stringify(newHistoryList), newHistoryList);
|
|
16423
|
+
// console.log('newHistoryList->', JSON.stringify(newHistoryList), newHistoryList);
|
|
16419
16424
|
// 保持历史记录的条数不超过maxHistoryCount
|
|
16420
16425
|
if (newHistoryList.length >= maxHistoryCount) {
|
|
16421
16426
|
newHistoryList.shift();
|
|
16422
16427
|
}
|
|
16423
16428
|
newHistoryList = [...newHistoryList, history];
|
|
16424
|
-
console.log('newHistoryList result->', JSON.stringify(newHistoryList), newHistoryList);
|
|
16429
|
+
// console.log('newHistoryList result->', JSON.stringify(newHistoryList), newHistoryList);
|
|
16425
16430
|
return {
|
|
16426
16431
|
...prev,
|
|
16427
16432
|
historyList: newHistoryList,
|
|
@@ -16483,7 +16488,7 @@ const ObstacleElement = ({ data }) => {
|
|
|
16483
16488
|
const strokeWidth = React.useMemo(() => {
|
|
16484
16489
|
// 如果是h5选中的情况下,禁区只有在start模式下才需要加粗
|
|
16485
16490
|
// 其他模式展示的是其他的样式
|
|
16486
|
-
if (platform === PlatformType.H5 &&
|
|
16491
|
+
if (platform === exports.PlatformType.H5 &&
|
|
16487
16492
|
editMapInfo?.selectElement?.id === data.id &&
|
|
16488
16493
|
editMapInfo.mobileMode === exports.MobileEditMode.START) {
|
|
16489
16494
|
return (style.lineWidth || 2) * 3;
|
|
@@ -16491,7 +16496,7 @@ const ObstacleElement = ({ data }) => {
|
|
|
16491
16496
|
return style.lineWidth || 2;
|
|
16492
16497
|
}, [platform, style, editMapInfo]);
|
|
16493
16498
|
const onPathClick = React.useCallback(() => {
|
|
16494
|
-
if (platform === PlatformType.H5) {
|
|
16499
|
+
if (platform === exports.PlatformType.H5) {
|
|
16495
16500
|
// h5编辑模式下,禁区只有在start模式下才需要选中
|
|
16496
16501
|
if (editMapInfo.mobileMode === exports.MobileEditMode.EDIT ||
|
|
16497
16502
|
editMapInfo.mobileMode === exports.MobileEditMode.CREATE) {
|
|
@@ -16527,18 +16532,18 @@ const ObstacleElement = ({ data }) => {
|
|
|
16527
16532
|
});
|
|
16528
16533
|
}, [disabledObstacles, data, onHandleEnterRecord, editMapInfo]);
|
|
16529
16534
|
const editMode = React.useMemo(() => {
|
|
16530
|
-
if (platform === PlatformType.H5) {
|
|
16535
|
+
if (platform === exports.PlatformType.H5) {
|
|
16531
16536
|
return (editMapInfo?.mobileMode === exports.MobileEditMode.EDIT &&
|
|
16532
16537
|
editMapInfo?.selectElement?.id === data.id);
|
|
16533
16538
|
}
|
|
16534
16539
|
return editMapInfo?.selectElement?.id === data.id;
|
|
16535
16540
|
}, [editMapInfo, data, platform]);
|
|
16536
16541
|
return (jsxRuntime.jsx(PolygonElement, { points: currentPoints, fillColor: style.fillColor, fillOpacity: style.fillOpacity, strokeColor: style.lineColor, strokeWidth: strokeWidth, editMode: editMode, showPoints: editMapInfo?.selectElement?.id === data.id, onPathClick: onPathClick, onPolygonClick: () => {
|
|
16537
|
-
if (platform === PlatformType.H5) {
|
|
16542
|
+
if (platform === exports.PlatformType.H5) {
|
|
16538
16543
|
onPathClick();
|
|
16539
16544
|
}
|
|
16540
16545
|
}, onVertexDelete: (vertexIndex) => handleCreateVertexDelete(vertexIndex), onCoordinatesChange: (coordinates) => {
|
|
16541
|
-
if (platform === PlatformType.H5 && editMapInfo.mobileMode === exports.MobileEditMode.CREATE) {
|
|
16546
|
+
if (platform === exports.PlatformType.H5 && editMapInfo.mobileMode === exports.MobileEditMode.CREATE) {
|
|
16542
16547
|
return;
|
|
16543
16548
|
}
|
|
16544
16549
|
setEditMapInfo((prev) => ({
|
|
@@ -17144,7 +17149,7 @@ const VisionOffTransformWrapper = ({ data, isSelected = false, onSelect, onCance
|
|
|
17144
17149
|
}, [data, currentPoints]);
|
|
17145
17150
|
const style = data.style || {};
|
|
17146
17151
|
const strokeWidth = React.useMemo(() => {
|
|
17147
|
-
if (platform === PlatformType.H5) {
|
|
17152
|
+
if (platform === exports.PlatformType.H5) {
|
|
17148
17153
|
if (editMapInfo?.mobileMode === exports.MobileEditMode.START &&
|
|
17149
17154
|
editMapInfo?.selectElement?.id === data.id) {
|
|
17150
17155
|
return (style.lineWidth || 2) * 2;
|
|
@@ -17160,7 +17165,7 @@ const VisionOffTransformWrapper = ({ data, isSelected = false, onSelect, onCance
|
|
|
17160
17165
|
// 添加全局事件监听(支持触摸和鼠标事件)
|
|
17161
17166
|
React.useEffect(() => {
|
|
17162
17167
|
if (isDragging || isRotating || isScaling) {
|
|
17163
|
-
if (platform === PlatformType.H5) {
|
|
17168
|
+
if (platform === exports.PlatformType.H5) {
|
|
17164
17169
|
// H5平台使用触摸事件
|
|
17165
17170
|
const cleanup = addEventListeners(document, {
|
|
17166
17171
|
onMove: (event) => {
|
|
@@ -17241,10 +17246,10 @@ const VisionOffTransformWrapper = ({ data, isSelected = false, onSelect, onCance
|
|
|
17241
17246
|
return (jsxRuntime.jsxs("g", { ref: containerRef, className: `vision-off-transform-wrapper ${className} ${isSelected ? 'selected' : ''}`, "data-transform-wrapper": "true", children: [jsxRuntime.jsx(PolygonElement, { points: visionOffData?.points, fillColor: style.fillColor, fillOpacity: style.fillOpacity, strokeColor: style.lineColor, strokeWidth: strokeWidth, editMode: false, onPathClick: () => {
|
|
17242
17247
|
onSelect?.();
|
|
17243
17248
|
}, onPolygonClick: () => {
|
|
17244
|
-
if (platform === PlatformType.H5) {
|
|
17249
|
+
if (platform === exports.PlatformType.H5) {
|
|
17245
17250
|
onSelect?.();
|
|
17246
17251
|
}
|
|
17247
|
-
} }), isSelected && currentPoints.length === 4 && (jsxRuntime.jsx("polygon", { points: currentPoints.map((point) => `${point.x},${point.y}`).join(' '), fill: "transparent", stroke: "none", style: { cursor: 'move' }, ...(platform === PlatformType.H5
|
|
17252
|
+
} }), isSelected && currentPoints.length === 4 && (jsxRuntime.jsx("polygon", { points: currentPoints.map((point) => `${point.x},${point.y}`).join(' '), fill: "transparent", stroke: "none", style: { cursor: 'move' }, ...(platform === exports.PlatformType.H5
|
|
17248
17253
|
? {
|
|
17249
17254
|
onTouchStart: createReactEventHandler((e) => {
|
|
17250
17255
|
handleMouseDownWithDisabled(e);
|
|
@@ -17269,7 +17274,7 @@ const VisionOffTransformWrapper = ({ data, isSelected = false, onSelect, onCance
|
|
|
17269
17274
|
const infoBoxX = centerX - infoBoxWidth / 2; // 居中对齐
|
|
17270
17275
|
const scale = (isWeb ? 2 : 1) * overlayScale;
|
|
17271
17276
|
const offsetLeft = 10 * scale;
|
|
17272
|
-
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polygon", { points: selectionBoxPoints.map((point) => `${point.x},${point.y}`).join(' '), fill: "none", stroke: "#
|
|
17277
|
+
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polygon", { points: selectionBoxPoints.map((point) => `${point.x},${point.y}`).join(' '), fill: "none", stroke: "#9EA6BA", strokeWidth: "2", strokeDasharray: "5,5", vectorEffect: "non-scaling-stroke", style: { cursor: 'move' }, ...(platform === exports.PlatformType.H5
|
|
17273
17278
|
? {
|
|
17274
17279
|
onTouchStart: createReactEventHandler((e) => {
|
|
17275
17280
|
handleMouseDownWithDisabled(e);
|
|
@@ -17277,7 +17282,7 @@ const VisionOffTransformWrapper = ({ data, isSelected = false, onSelect, onCance
|
|
|
17277
17282
|
}
|
|
17278
17283
|
: {
|
|
17279
17284
|
onMouseDown: handleMouseDownWithDisabled,
|
|
17280
|
-
}) }), isWeb ? undefined : (jsxRuntime.jsx("g", { className: "control-point cancel-point", ...(platform === PlatformType.H5
|
|
17285
|
+
}) }), isWeb ? undefined : (jsxRuntime.jsx("g", { className: "control-point cancel-point", ...(platform === exports.PlatformType.H5
|
|
17281
17286
|
? {
|
|
17282
17287
|
onTouchStart: createReactEventHandler((e) => {
|
|
17283
17288
|
handleCancel(e);
|
|
@@ -17285,7 +17290,7 @@ const VisionOffTransformWrapper = ({ data, isSelected = false, onSelect, onCance
|
|
|
17285
17290
|
}
|
|
17286
17291
|
: {
|
|
17287
17292
|
onMouseDown: handleCancel,
|
|
17288
|
-
}), transform: `translate(${selectionBoxPoints[0].x}, ${selectionBoxPoints[0].y})`, children: jsxRuntime.jsx("g", { style: { cursor: 'pointer' }, transformOrigin: "center", transform: `translate(-${offsetLeft}, -${offsetLeft}) scale(${scale})`, children: jsxRuntime.jsx(SvgTransformDelete, {}) }) })), jsxRuntime.jsx("g", { className: "control-point rotate-point", ...(platform === PlatformType.H5
|
|
17293
|
+
}), transform: `translate(${selectionBoxPoints[0].x}, ${selectionBoxPoints[0].y})`, children: jsxRuntime.jsx("g", { style: { cursor: 'pointer' }, transformOrigin: "center", transform: `translate(-${offsetLeft}, -${offsetLeft}) scale(${scale})`, children: jsxRuntime.jsx(SvgTransformDelete, {}) }) })), jsxRuntime.jsx("g", { className: "control-point rotate-point", ...(platform === exports.PlatformType.H5
|
|
17289
17294
|
? {
|
|
17290
17295
|
onTouchStart: createReactEventHandler((e) => {
|
|
17291
17296
|
handleRotateStartWithDisabled(e);
|
|
@@ -17293,7 +17298,7 @@ const VisionOffTransformWrapper = ({ data, isSelected = false, onSelect, onCance
|
|
|
17293
17298
|
}
|
|
17294
17299
|
: {
|
|
17295
17300
|
onMouseDown: handleRotateStartWithDisabled,
|
|
17296
|
-
}), transform: `translate(${selectionBoxPoints[3].x}, ${selectionBoxPoints[3].y})`, children: jsxRuntime.jsx("g", { style: { cursor: 'pointer' }, transformOrigin: "center", transform: `translate(-${offsetLeft}, -${offsetLeft}) scale(${scale})`, children: jsxRuntime.jsx(SvgTransformRotate, {}) }) }), jsxRuntime.jsx("g", { className: "control-point move-point", ...(platform === PlatformType.H5
|
|
17301
|
+
}), transform: `translate(${selectionBoxPoints[3].x}, ${selectionBoxPoints[3].y})`, children: jsxRuntime.jsx("g", { style: { cursor: 'pointer' }, transformOrigin: "center", transform: `translate(-${offsetLeft}, -${offsetLeft}) scale(${scale})`, children: jsxRuntime.jsx(SvgTransformRotate, {}) }) }), jsxRuntime.jsx("g", { className: "control-point move-point", ...(platform === exports.PlatformType.H5
|
|
17297
17302
|
? {
|
|
17298
17303
|
onTouchStart: createReactEventHandler((e) => {
|
|
17299
17304
|
handleMouseDownWithDisabled(e);
|
|
@@ -17301,7 +17306,7 @@ const VisionOffTransformWrapper = ({ data, isSelected = false, onSelect, onCance
|
|
|
17301
17306
|
}
|
|
17302
17307
|
: {
|
|
17303
17308
|
onMouseDown: handleMouseDownWithDisabled,
|
|
17304
|
-
}), transform: `translate(${selectionBoxPoints[1].x}, ${selectionBoxPoints[1].y})`, children: jsxRuntime.jsx("g", { style: { cursor: 'pointer' }, transformOrigin: "center", transform: `translate(-${offsetLeft}, -${offsetLeft}) scale(${scale})`, children: jsxRuntime.jsx(SvgTransformTranslate, {}) }) }), jsxRuntime.jsx("g", { className: "control-point scale-point", ...(platform === PlatformType.H5
|
|
17309
|
+
}), transform: `translate(${selectionBoxPoints[1].x}, ${selectionBoxPoints[1].y})`, children: jsxRuntime.jsx("g", { style: { cursor: 'pointer' }, transformOrigin: "center", transform: `translate(-${offsetLeft}, -${offsetLeft}) scale(${scale})`, children: jsxRuntime.jsx(SvgTransformTranslate, {}) }) }), jsxRuntime.jsx("g", { className: "control-point scale-point", ...(platform === exports.PlatformType.H5
|
|
17305
17310
|
? {
|
|
17306
17311
|
onTouchStart: createReactEventHandler((e) => {
|
|
17307
17312
|
handleScaleStartWithDisabled(e);
|
|
@@ -17320,7 +17325,7 @@ const VisionOffTransformWrapper = ({ data, isSelected = false, onSelect, onCance
|
|
|
17320
17325
|
color: 'white',
|
|
17321
17326
|
fontWeight: '400',
|
|
17322
17327
|
// transform: `translate(0, ${50 * overlayScale}px) scale(${overlayScale})`,
|
|
17323
|
-
}, children: [dimensions.height, "m \u00D7 ", dimensions.width, "m"] }) }))] }));
|
|
17328
|
+
}, children: [dimensions.height, " m \u00D7 ", dimensions.width, " m"] }) }))] }));
|
|
17324
17329
|
})()] }));
|
|
17325
17330
|
};
|
|
17326
17331
|
|
|
@@ -17329,7 +17334,7 @@ const VisionOffElement = ({ data, onSelect }) => {
|
|
|
17329
17334
|
const { addHistory } = useHistoryHandle();
|
|
17330
17335
|
const { platform } = useCommonContext();
|
|
17331
17336
|
const isSelected = React.useMemo(() => {
|
|
17332
|
-
if (platform === PlatformType.H5) {
|
|
17337
|
+
if (platform === exports.PlatformType.H5) {
|
|
17333
17338
|
// h5编辑模式下,想要展示操作框,需要是选中并且非start模式
|
|
17334
17339
|
return (editMapInfo?.mobileMode !== exports.MobileEditMode.START &&
|
|
17335
17340
|
editMapInfo?.selectElement?.id === data.id &&
|
|
@@ -17338,7 +17343,7 @@ const VisionOffElement = ({ data, onSelect }) => {
|
|
|
17338
17343
|
return editMapInfo?.selectElement?.id === data.id;
|
|
17339
17344
|
}, [editMapInfo, data, platform]);
|
|
17340
17345
|
const handleSelect = React.useCallback(() => {
|
|
17341
|
-
if (platform === PlatformType.H5) {
|
|
17346
|
+
if (platform === exports.PlatformType.H5) {
|
|
17342
17347
|
// h5编辑模式下,
|
|
17343
17348
|
// start模式可以任意选
|
|
17344
17349
|
// create或者是edit模式的话,只有选中的是visionOff的时候才能选中
|
|
@@ -17389,7 +17394,7 @@ const VisionOffElement = ({ data, onSelect }) => {
|
|
|
17389
17394
|
});
|
|
17390
17395
|
}, [data, onHandleEnterRecord, platform, editMapInfo]);
|
|
17391
17396
|
const onCancel = React.useCallback(() => {
|
|
17392
|
-
if (platform === PlatformType.H5) {
|
|
17397
|
+
if (platform === exports.PlatformType.H5) {
|
|
17393
17398
|
// 在h5中,这里的取消其实对应的是删除元素
|
|
17394
17399
|
const allVisionOffPoints = editMapInfo.allVisionOffPoints || [];
|
|
17395
17400
|
const newAllVisionOffPoints = allVisionOffPoints.filter((item) => item.id !== editMapInfo?.selectElement?.id);
|
|
@@ -17412,7 +17417,7 @@ const VisionOffElement = ({ data, onSelect }) => {
|
|
|
17412
17417
|
}, [editMapInfo]);
|
|
17413
17418
|
const visionOffData = React.useMemo(() => {
|
|
17414
17419
|
// console.log('------->', editMapInfo?.selectElement, data);
|
|
17415
|
-
if (platform === PlatformType.H5) {
|
|
17420
|
+
if (platform === exports.PlatformType.H5) {
|
|
17416
17421
|
return { ...data, style: data.style };
|
|
17417
17422
|
}
|
|
17418
17423
|
else {
|
|
@@ -17424,7 +17429,7 @@ const VisionOffElement = ({ data, onSelect }) => {
|
|
|
17424
17429
|
}, [data, editMapInfo?.selectElement]);
|
|
17425
17430
|
const onDragEnd = React.useCallback((points) => {
|
|
17426
17431
|
console.log('VisionOffElement: onDragEnd', points);
|
|
17427
|
-
if (platform === PlatformType.H5) {
|
|
17432
|
+
if (platform === exports.PlatformType.H5) {
|
|
17428
17433
|
// 在h5中,需要更新的是allVisionOffPoints
|
|
17429
17434
|
const allVisionOffPoints = editMapInfo.allVisionOffPoints || [];
|
|
17430
17435
|
const newAllVisionOffPoints = allVisionOffPoints.map((item) => {
|
|
@@ -17466,7 +17471,7 @@ const VisionOffElement = ({ data, onSelect }) => {
|
|
|
17466
17471
|
},
|
|
17467
17472
|
});
|
|
17468
17473
|
}, [editMapInfo]);
|
|
17469
|
-
return (jsxRuntime.jsx(VisionOffTransformWrapper, { isSelected: isSelected, data: visionOffData, onSelect: handleSelect, onCancel: onCancel, onDragEnd: onDragEnd, showInfo: platform === PlatformType.H5 }));
|
|
17474
|
+
return (jsxRuntime.jsx(VisionOffTransformWrapper, { isSelected: isSelected, data: visionOffData, onSelect: handleSelect, onCancel: onCancel, onDragEnd: onDragEnd, showInfo: platform === exports.PlatformType.H5 }));
|
|
17470
17475
|
};
|
|
17471
17476
|
|
|
17472
17477
|
// 操作类型常量
|
|
@@ -17795,7 +17800,7 @@ const DoodleTransform = ({ data, isSelected: _isSelected, onSelect }) => {
|
|
|
17795
17800
|
const { editMapInfo } = useMapEditContext();
|
|
17796
17801
|
const { platform } = useCommonContext();
|
|
17797
17802
|
const canSelect = React.useMemo(() => {
|
|
17798
|
-
if (platform === PlatformType.H5) {
|
|
17803
|
+
if (platform === exports.PlatformType.H5) {
|
|
17799
17804
|
return editMapInfo?.elementType === exports.DataType.DOODLE;
|
|
17800
17805
|
}
|
|
17801
17806
|
return editMapInfo?.elementType;
|
|
@@ -17889,7 +17894,7 @@ const DoodleTransformWrapper = ({ data, isSelected = false, isSelectedWithoutOpe
|
|
|
17889
17894
|
// 添加全局事件监听(支持触摸和鼠标事件)
|
|
17890
17895
|
React.useEffect(() => {
|
|
17891
17896
|
if (isDragging || isRotating || isScaling) {
|
|
17892
|
-
if (platform === PlatformType.H5) {
|
|
17897
|
+
if (platform === exports.PlatformType.H5) {
|
|
17893
17898
|
// H5平台使用触摸事件
|
|
17894
17899
|
const cleanup = addEventListeners(document, {
|
|
17895
17900
|
onMove: (event) => {
|
|
@@ -17973,7 +17978,7 @@ const DoodleTransformWrapper = ({ data, isSelected = false, isSelectedWithoutOpe
|
|
|
17973
17978
|
const infoBoxWidth = 140 * overlayScale; // 信息框宽度
|
|
17974
17979
|
const infoBoxHeight = 100 * overlayScale; // 信息框高度
|
|
17975
17980
|
const infoBoxX = centerX - infoBoxWidth / 2; // 居中对齐
|
|
17976
|
-
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polygon", { points: selectionBoxPoints.map((point) => `${point.x},${point.y}`).join(' '), fill: "none", stroke: "#B2B4B9", strokeWidth: "2", strokeDasharray: "5,5", vectorEffect: "non-scaling-stroke", style: { cursor: 'move' }, ...(platform === PlatformType.H5
|
|
17981
|
+
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polygon", { points: selectionBoxPoints.map((point) => `${point.x},${point.y}`).join(' '), fill: "none", stroke: "#B2B4B9", strokeWidth: "2", strokeDasharray: "5,5", vectorEffect: "non-scaling-stroke", style: { cursor: 'move' }, ...(platform === exports.PlatformType.H5
|
|
17977
17982
|
? {
|
|
17978
17983
|
onTouchStart: createReactEventHandler((e) => {
|
|
17979
17984
|
handleMouseDownWithDisabled(e);
|
|
@@ -18029,7 +18034,7 @@ const DoodleTransformWrapper = ({ data, isSelected = false, isSelectedWithoutOpe
|
|
|
18029
18034
|
// 创建一个覆盖整个 doodle 区域的矩形
|
|
18030
18035
|
const width = maxX - minX;
|
|
18031
18036
|
const height = maxY - minY;
|
|
18032
|
-
return (jsxRuntime.jsx("rect", { x: minX, y: minY, width: width, height: height, fill: "transparent", stroke: "none", style: { cursor: 'move' }, ...(platform === PlatformType.H5
|
|
18037
|
+
return (jsxRuntime.jsx("rect", { x: minX, y: minY, width: width, height: height, fill: "transparent", stroke: "none", style: { cursor: 'move' }, ...(platform === exports.PlatformType.H5
|
|
18033
18038
|
? {
|
|
18034
18039
|
onTouchStart: createReactEventHandler((e) => {
|
|
18035
18040
|
handleMouseDownWithDisabled(e);
|
|
@@ -18054,7 +18059,7 @@ const DoodleTransformWrapper = ({ data, isSelected = false, isSelectedWithoutOpe
|
|
|
18054
18059
|
const infoBoxX = centerX - infoBoxWidth / 2; // 居中对齐
|
|
18055
18060
|
const scale = (isWeb ? 2 : 1) * overlayScale;
|
|
18056
18061
|
const offsetLeft = 10 * scale;
|
|
18057
|
-
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polygon", { points: selectionBoxPoints.map((point) => `${point.x},${point.y}`).join(' '), fill: "none", stroke: "#9EA6BA", strokeWidth: "2", strokeDasharray: "5,5", vectorEffect: "non-scaling-stroke", style: { cursor: 'move' }, ...(platform === PlatformType.H5
|
|
18062
|
+
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("polygon", { points: selectionBoxPoints.map((point) => `${point.x},${point.y}`).join(' '), fill: "none", stroke: "#9EA6BA", strokeWidth: "2", strokeDasharray: "5,5", vectorEffect: "non-scaling-stroke", style: { cursor: 'move' }, ...(platform === exports.PlatformType.H5
|
|
18058
18063
|
? {
|
|
18059
18064
|
onTouchStart: createReactEventHandler((e) => {
|
|
18060
18065
|
handleMouseDownWithDisabled(e);
|
|
@@ -18062,7 +18067,7 @@ const DoodleTransformWrapper = ({ data, isSelected = false, isSelectedWithoutOpe
|
|
|
18062
18067
|
}
|
|
18063
18068
|
: {
|
|
18064
18069
|
onMouseDown: handleMouseDownWithDisabled,
|
|
18065
|
-
}) }), isWeb ? undefined : (jsxRuntime.jsx("g", { className: "control-point cancel-point", ...(platform === PlatformType.H5
|
|
18070
|
+
}) }), isWeb ? undefined : (jsxRuntime.jsx("g", { className: "control-point cancel-point", ...(platform === exports.PlatformType.H5
|
|
18066
18071
|
? {
|
|
18067
18072
|
onTouchStart: createReactEventHandler((e) => {
|
|
18068
18073
|
handleCancel(e);
|
|
@@ -18070,7 +18075,7 @@ const DoodleTransformWrapper = ({ data, isSelected = false, isSelectedWithoutOpe
|
|
|
18070
18075
|
}
|
|
18071
18076
|
: {
|
|
18072
18077
|
onMouseDown: handleCancel,
|
|
18073
|
-
}), transform: `translate(${selectionBoxPoints[0].x}, ${selectionBoxPoints[0].y})`, children: jsxRuntime.jsx("g", { style: { cursor: 'pointer' }, transformOrigin: "center", transform: `translate(-${offsetLeft}, -${offsetLeft}) scale(${scale})`, children: jsxRuntime.jsx(SvgTransformDelete, {}) }) })), jsxRuntime.jsx("g", { className: "control-point rotate-point", ...(platform === PlatformType.H5
|
|
18078
|
+
}), transform: `translate(${selectionBoxPoints[0].x}, ${selectionBoxPoints[0].y})`, children: jsxRuntime.jsx("g", { style: { cursor: 'pointer' }, transformOrigin: "center", transform: `translate(-${offsetLeft}, -${offsetLeft}) scale(${scale})`, children: jsxRuntime.jsx(SvgTransformDelete, {}) }) })), jsxRuntime.jsx("g", { className: "control-point rotate-point", ...(platform === exports.PlatformType.H5
|
|
18074
18079
|
? {
|
|
18075
18080
|
onTouchStart: createReactEventHandler((e) => {
|
|
18076
18081
|
handleRotateStartWithDisabled(e);
|
|
@@ -18078,7 +18083,7 @@ const DoodleTransformWrapper = ({ data, isSelected = false, isSelectedWithoutOpe
|
|
|
18078
18083
|
}
|
|
18079
18084
|
: {
|
|
18080
18085
|
onMouseDown: handleRotateStartWithDisabled,
|
|
18081
|
-
}), transform: `translate(${selectionBoxPoints[3].x}, ${selectionBoxPoints[3].y})`, children: jsxRuntime.jsx("g", { style: { cursor: 'pointer' }, transformOrigin: "center", transform: `translate(-${offsetLeft}, -${offsetLeft}) scale(${scale})`, children: jsxRuntime.jsx(SvgTransformRotate, {}) }) }), jsxRuntime.jsx("g", { className: "control-point move-point", ...(platform === PlatformType.H5
|
|
18086
|
+
}), transform: `translate(${selectionBoxPoints[3].x}, ${selectionBoxPoints[3].y})`, children: jsxRuntime.jsx("g", { style: { cursor: 'pointer' }, transformOrigin: "center", transform: `translate(-${offsetLeft}, -${offsetLeft}) scale(${scale})`, children: jsxRuntime.jsx(SvgTransformRotate, {}) }) }), jsxRuntime.jsx("g", { className: "control-point move-point", ...(platform === exports.PlatformType.H5
|
|
18082
18087
|
? {
|
|
18083
18088
|
onTouchStart: createReactEventHandler((e) => {
|
|
18084
18089
|
handleMouseDownWithDisabled(e);
|
|
@@ -18086,7 +18091,7 @@ const DoodleTransformWrapper = ({ data, isSelected = false, isSelectedWithoutOpe
|
|
|
18086
18091
|
}
|
|
18087
18092
|
: {
|
|
18088
18093
|
onMouseDown: handleMouseDownWithDisabled,
|
|
18089
|
-
}), transform: `translate(${selectionBoxPoints[1].x}, ${selectionBoxPoints[1].y})`, children: jsxRuntime.jsx("g", { style: { cursor: 'pointer' }, transformOrigin: "center", transform: `translate(-${offsetLeft}, -${offsetLeft}) scale(${scale})`, children: jsxRuntime.jsx(SvgTransformTranslate, {}) }) }), jsxRuntime.jsx("g", { className: "control-point scale-point", ...(platform === PlatformType.H5
|
|
18094
|
+
}), transform: `translate(${selectionBoxPoints[1].x}, ${selectionBoxPoints[1].y})`, children: jsxRuntime.jsx("g", { style: { cursor: 'pointer' }, transformOrigin: "center", transform: `translate(-${offsetLeft}, -${offsetLeft}) scale(${scale})`, children: jsxRuntime.jsx(SvgTransformTranslate, {}) }) }), jsxRuntime.jsx("g", { className: "control-point scale-point", ...(platform === exports.PlatformType.H5
|
|
18090
18095
|
? {
|
|
18091
18096
|
onTouchStart: createReactEventHandler((e) => {
|
|
18092
18097
|
handleScaleStartWithDisabled(e);
|
|
@@ -18108,7 +18113,7 @@ const DoodleTransformWrapper = ({ data, isSelected = false, isSelectedWithoutOpe
|
|
|
18108
18113
|
color: 'white',
|
|
18109
18114
|
fontWeight: '400',
|
|
18110
18115
|
// transform: `translate(0, ${50 * overlayScale}px) scale(${overlayScale})`,
|
|
18111
|
-
}, children: [jsxRuntime.jsxs("div", { children: [dimensions.
|
|
18116
|
+
}, children: [jsxRuntime.jsxs("div", { children: [dimensions.width, " m \u00D7 ", dimensions.height, " m"] }), jsxRuntime.jsxs("div", { style: {
|
|
18112
18117
|
display: 'flex',
|
|
18113
18118
|
alignItems: 'center',
|
|
18114
18119
|
justifyContent: 'center',
|
|
@@ -18122,7 +18127,7 @@ const DoodleElement = ({ data }) => {
|
|
|
18122
18127
|
const { addHistory } = useHistoryHandle();
|
|
18123
18128
|
const { platform, doodleList } = useCommonContext();
|
|
18124
18129
|
const isSelected = React.useMemo(() => {
|
|
18125
|
-
if (platform === PlatformType.H5) {
|
|
18130
|
+
if (platform === exports.PlatformType.H5) {
|
|
18126
18131
|
if (editMapInfo.mobileMode !== exports.MobileEditMode.START &&
|
|
18127
18132
|
editMapInfo?.selectElement?.id === data.id) {
|
|
18128
18133
|
return true;
|
|
@@ -18155,7 +18160,7 @@ const DoodleElement = ({ data }) => {
|
|
|
18155
18160
|
return minLength / svgMinLength;
|
|
18156
18161
|
}, [doodleList, originData]);
|
|
18157
18162
|
const isSelectedWithoutOperation = React.useMemo(() => {
|
|
18158
|
-
if (platform === PlatformType.H5) {
|
|
18163
|
+
if (platform === exports.PlatformType.H5) {
|
|
18159
18164
|
if (editMapInfo.mobileMode === exports.MobileEditMode.START &&
|
|
18160
18165
|
editMapInfo?.selectElement?.id === data.id) {
|
|
18161
18166
|
return true;
|
|
@@ -18168,7 +18173,7 @@ const DoodleElement = ({ data }) => {
|
|
|
18168
18173
|
}, [data]);
|
|
18169
18174
|
const handleTransformChange = (transform) => { };
|
|
18170
18175
|
const handleSelect = React.useCallback(() => {
|
|
18171
|
-
if (platform === PlatformType.H5) {
|
|
18176
|
+
if (platform === exports.PlatformType.H5) {
|
|
18172
18177
|
// h5编辑模式下,
|
|
18173
18178
|
// 如果是创建,只能选择新建的doodle
|
|
18174
18179
|
if (editMapInfo.mobileMode === exports.MobileEditMode.CREATE ||
|
|
@@ -18213,7 +18218,7 @@ const DoodleElement = ({ data }) => {
|
|
|
18213
18218
|
});
|
|
18214
18219
|
}, [data, onHandleEnterRecord, platform, editMapInfo]);
|
|
18215
18220
|
const handleCancel = React.useCallback(() => {
|
|
18216
|
-
if (platform === PlatformType.H5) {
|
|
18221
|
+
if (platform === exports.PlatformType.H5) {
|
|
18217
18222
|
setEditMapInfo((prev) => ({
|
|
18218
18223
|
...prev,
|
|
18219
18224
|
selectElement: null,
|
|
@@ -18261,7 +18266,7 @@ const DoodleElement = ({ data }) => {
|
|
|
18261
18266
|
},
|
|
18262
18267
|
});
|
|
18263
18268
|
}, [transformedElements]);
|
|
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 }));
|
|
18269
|
+
return (jsxRuntime.jsx(DoodleTransformWrapper, { data: originData, onTransformChange: handleTransformChange, isSelected: isSelected, isSelectedWithoutOperation: isSelectedWithoutOperation, onSelect: handleSelect, onCancel: handleCancel, onDragEnd: handleDragEnd, showInfo: platform === exports.PlatformType.H5, onClickInfo: handleClickInfo, minScale: minScale }));
|
|
18265
18270
|
};
|
|
18266
18271
|
|
|
18267
18272
|
const SvgElement = React.memo(({ type, data, interactive = false }) => {
|
|
@@ -18280,7 +18285,7 @@ const SvgElement = React.memo(({ type, data, interactive = false }) => {
|
|
|
18280
18285
|
return jsxRuntime.jsx(ObstacleElement, { data: data });
|
|
18281
18286
|
}
|
|
18282
18287
|
else if (type === 'visionOff') {
|
|
18283
|
-
if (platform === PlatformType.H5 &&
|
|
18288
|
+
if (platform === exports.PlatformType.H5 &&
|
|
18284
18289
|
(editMapInfo.mobileMode === exports.MobileEditMode.CREATE ||
|
|
18285
18290
|
editMapInfo.mobileMode === exports.MobileEditMode.EDIT) &&
|
|
18286
18291
|
editMapInfo.elementType === exports.DataType.VISION_OFF) {
|
|
@@ -18391,23 +18396,19 @@ var classnamesExports = classnames.exports;
|
|
|
18391
18396
|
var classNames = /*@__PURE__*/getDefaultExportFromCjs(classnamesExports);
|
|
18392
18397
|
|
|
18393
18398
|
const ChannelClipPath = React.memo(() => {
|
|
18394
|
-
const {
|
|
18399
|
+
const { svgViewBox } = useCommonContext();
|
|
18400
|
+
const { svgElementDatas } = useSvgEditContext();
|
|
18395
18401
|
const boundaryData = svgElementDatas?.[exports.DataType.BOUNDARY] || [];
|
|
18396
18402
|
const [minX, minY, maxX, maxY] = React.useMemo(() => {
|
|
18397
|
-
const baseVal =
|
|
18403
|
+
const baseVal = svgViewBox;
|
|
18398
18404
|
return [
|
|
18399
18405
|
baseVal?.x || 0,
|
|
18400
18406
|
baseVal?.y || 0,
|
|
18401
18407
|
baseVal?.x + (baseVal?.width || 0),
|
|
18402
18408
|
baseVal?.y + (baseVal?.height || 0),
|
|
18403
18409
|
];
|
|
18404
|
-
}, [
|
|
18405
|
-
|
|
18406
|
-
svgRef?.viewBox.baseVal?.y,
|
|
18407
|
-
svgRef?.viewBox.baseVal?.width,
|
|
18408
|
-
svgRef?.viewBox.baseVal?.height,
|
|
18409
|
-
]);
|
|
18410
|
-
console.log('boundaryData---->', svgRef?.viewBox.baseVal);
|
|
18410
|
+
}, [svgViewBox]);
|
|
18411
|
+
console.log('boundaryData---->', svgViewBox);
|
|
18411
18412
|
/**
|
|
18412
18413
|
* 判断多边形是否为逆时针方向
|
|
18413
18414
|
* 使用叉积法计算多边形的有向面积
|
|
@@ -18567,6 +18568,7 @@ const ChannelClipPath = React.memo(() => {
|
|
|
18567
18568
|
if (partitionCoords.length >= 3) {
|
|
18568
18569
|
// 判断方向并构建路径
|
|
18569
18570
|
const isclockwise = isCounterclockwise(partitionCoords);
|
|
18571
|
+
console.log('partitionCoords===', partitionCoords, isclockwise);
|
|
18570
18572
|
const partitionPath = buildPathData(partitionCoords, isclockwise);
|
|
18571
18573
|
baseD += ` ${partitionPath}`;
|
|
18572
18574
|
}
|
|
@@ -19748,7 +19750,7 @@ const SvgEditMap = React.forwardRef(({ mapJson, mapConfig, editMap, onEditInfoMa
|
|
|
19748
19750
|
newDoodle.scale = minLength / svgMinLength;
|
|
19749
19751
|
newDoodle.direction = 0;
|
|
19750
19752
|
newDoodle.center = restorePoint(centerPoint);
|
|
19751
|
-
if (platform === PlatformType.H5) {
|
|
19753
|
+
if (platform === exports.PlatformType.H5) {
|
|
19752
19754
|
setEditMapInfo((prev) => ({
|
|
19753
19755
|
...prev,
|
|
19754
19756
|
currentHistoryIndex: 0,
|
|
@@ -19873,7 +19875,7 @@ const SvgEditMap = React.forwardRef(({ mapJson, mapConfig, editMap, onEditInfoMa
|
|
|
19873
19875
|
transform: 'translate(-50%, -50%)',
|
|
19874
19876
|
// cursor: createMode ? 'crosshair' : editMode ? 'default' : 'move',
|
|
19875
19877
|
// pointerEvents: 'auto', // 关键:允许接收鼠标事件
|
|
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)
|
|
19878
|
+
}, xmlns: "http://www.w3.org/2000/svg", "shape-rendering": "geometricPrecision", "text-rendering": "geometricPrecision", "image-rendering": "optimizeQuality", ref: svgRef, onClick: editMapInfo.createMode && platform !== exports.PlatformType.H5 ? onSvgClick : undefined, onMouseMove: editMapInfo.createMode && platform !== exports.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)
|
|
19877
19879
|
?.sort?.((a, b) => {
|
|
19878
19880
|
if (a === exports.DataType.BOUNDARY || b === exports.DataType.BOUNDARY) {
|
|
19879
19881
|
return 0;
|
|
@@ -19885,7 +19887,7 @@ const SvgEditMap = React.forwardRef(({ mapJson, mapConfig, editMap, onEditInfoMa
|
|
|
19885
19887
|
?.map((key) => {
|
|
19886
19888
|
const elements = svgElementDatas[key] || [];
|
|
19887
19889
|
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));
|
|
19888
|
-
}), platform === PlatformType.WEB &&
|
|
19890
|
+
}), platform === exports.PlatformType.WEB &&
|
|
19889
19891
|
editMapInfo.createMode &&
|
|
19890
19892
|
editMapInfo.elementType !== exports.DataType.DOODLE &&
|
|
19891
19893
|
editMapInfo.elementType !== exports.DataType.VISION_OFF &&
|
|
@@ -19895,7 +19897,7 @@ const SvgEditMap = React.forwardRef(({ mapJson, mapConfig, editMap, onEditInfoMa
|
|
|
19895
19897
|
// 创建模式下的坐标变化(拖拽时)
|
|
19896
19898
|
// 实时更新当前绘制的多边形
|
|
19897
19899
|
updatePoints(newCoords.map((coord) => ({ x: coord[0], y: coord[1] })));
|
|
19898
|
-
}, svgRef: svgRef })), platform === PlatformType.WEB &&
|
|
19900
|
+
}, svgRef: svgRef })), platform === exports.PlatformType.WEB &&
|
|
19899
19901
|
editMapInfo.createMode &&
|
|
19900
19902
|
editMapInfo.elementType === exports.DataType.VISION_OFF &&
|
|
19901
19903
|
(points.length > 0 || editMapInfo?.selectElement?.points?.length > 0) && (jsxRuntime.jsx(VisionOffElement, { data: {
|
|
@@ -19905,9 +19907,9 @@ const SvgEditMap = React.forwardRef(({ mapJson, mapConfig, editMap, onEditInfoMa
|
|
|
19905
19907
|
lineColor: createElementStyle.lineColor,
|
|
19906
19908
|
lineWidth: createElementStyle.lineWidth,
|
|
19907
19909
|
},
|
|
19908
|
-
} })), platform === PlatformType.WEB &&
|
|
19910
|
+
} })), platform === exports.PlatformType.WEB &&
|
|
19909
19911
|
editMapInfo.createMode &&
|
|
19910
|
-
editMapInfo?.selectElement?.svg && (jsxRuntime.jsx(DoodleElement, { data: { ...editMapInfo?.selectElement } })), platform === PlatformType.H5 &&
|
|
19912
|
+
editMapInfo?.selectElement?.svg && (jsxRuntime.jsx(DoodleElement, { data: { ...editMapInfo?.selectElement } })), platform === exports.PlatformType.H5 &&
|
|
19911
19913
|
editMapInfo.elementType === exports.DataType.OBSTACLE &&
|
|
19912
19914
|
editMapInfo.mobileMode === exports.MobileEditMode.CREATE && (jsxRuntime.jsx(CreateObstacleElement, { ref: pointManagerRef, styles: {
|
|
19913
19915
|
fillColor: '#FF7133',
|
|
@@ -19931,7 +19933,7 @@ const SvgEditMap = React.forwardRef(({ mapJson, mapConfig, editMap, onEditInfoMa
|
|
|
19931
19933
|
addHistory({
|
|
19932
19934
|
selectElement: { ...editMapInfo?.selectElement, points: new_points },
|
|
19933
19935
|
});
|
|
19934
|
-
} })), platform === PlatformType.H5 &&
|
|
19936
|
+
} })), platform === exports.PlatformType.H5 &&
|
|
19935
19937
|
editMapInfo.elementType === exports.DataType.VISION_OFF &&
|
|
19936
19938
|
(editMapInfo.mobileMode === exports.MobileEditMode.CREATE ||
|
|
19937
19939
|
editMapInfo.mobileMode === exports.MobileEditMode.EDIT) &&
|
|
@@ -19954,7 +19956,7 @@ const SvgEditMap = React.forwardRef(({ mapJson, mapConfig, editMap, onEditInfoMa
|
|
|
19954
19956
|
},
|
|
19955
19957
|
points: item.points,
|
|
19956
19958
|
id: item.id,
|
|
19957
|
-
} }))), platform === PlatformType.H5 &&
|
|
19959
|
+
} }))), platform === exports.PlatformType.H5 &&
|
|
19958
19960
|
editMapInfo.elementType === exports.DataType.DOODLE &&
|
|
19959
19961
|
editMapInfo.mobileMode === exports.MobileEditMode.CREATE &&
|
|
19960
19962
|
editMapInfo?.selectElement?.svg && (jsxRuntime.jsx(DoodleElement, { data: { ...editMapInfo?.selectElement } }))] }) }));
|
|
@@ -19990,7 +19992,7 @@ const Crosshair = () => {
|
|
|
19990
19992
|
const { platform } = useCommonContext();
|
|
19991
19993
|
const { editMapInfo } = useMapEditContext();
|
|
19992
19994
|
const isVisible = React.useMemo(() => {
|
|
19993
|
-
if (platform === PlatformType.H5 &&
|
|
19995
|
+
if (platform === exports.PlatformType.H5 &&
|
|
19994
19996
|
editMapInfo?.mobileMode === exports.MobileEditMode.CREATE &&
|
|
19995
19997
|
editMapInfo?.elementType === exports.DataType.OBSTACLE) {
|
|
19996
19998
|
return true;
|
|
@@ -20082,7 +20084,7 @@ const getValidGpsBounds = (mapData, rotation = 0) => {
|
|
|
20082
20084
|
// 默认配置
|
|
20083
20085
|
const defaultMapConfig = DEFAULT_STYLES;
|
|
20084
20086
|
// 地图渲染器组件
|
|
20085
|
-
const MowerMapRenderer = React.forwardRef(({ sn, platform = PlatformType.WEB, edger = false, unitType = UnitsType.Imperial, language = 'en', onlyRead = false, mapConfig,
|
|
20087
|
+
const MowerMapRenderer = React.forwardRef(({ sn, platform = exports.PlatformType.WEB, edger = false, unitType = UnitsType.Imperial, language = 'en', onlyRead = false, mapConfig,
|
|
20086
20088
|
// pathConfig,
|
|
20087
20089
|
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) => {
|
|
20088
20090
|
const [currentError, setCurrentError] = React.useState(null);
|
|
@@ -20132,10 +20134,7 @@ modelType, mapRef, mapJson, pathJson, realTimeData, antennaConfig, onMapLoad, on
|
|
|
20132
20134
|
return {
|
|
20133
20135
|
minDistance,
|
|
20134
20136
|
editMapInfo,
|
|
20135
|
-
setEditMapInfo
|
|
20136
|
-
setEditMapInfo(editMapInfo);
|
|
20137
|
-
onEditInfoMapChange?.(editMapInfo);
|
|
20138
|
-
},
|
|
20137
|
+
setEditMapInfo,
|
|
20139
20138
|
onHandleEnterRecord,
|
|
20140
20139
|
onHandleCompleteRecord,
|
|
20141
20140
|
onHandleStopRecord,
|
|
@@ -20448,15 +20447,14 @@ modelType, mapRef, mapJson, pathJson, realTimeData, antennaConfig, onMapLoad, on
|
|
|
20448
20447
|
// 基于固定的参考zoom级别计算overlayScale
|
|
20449
20448
|
const zoomDiff = currentZoom - REFERENCE_ZOOM;
|
|
20450
20449
|
const scale = Math.pow(2, -zoomDiff); // 负数实现反向缩放
|
|
20451
|
-
|
|
20452
|
-
|
|
20453
|
-
|
|
20454
|
-
else if (scale > 4) {
|
|
20455
|
-
|
|
20456
|
-
}
|
|
20457
|
-
|
|
20458
|
-
|
|
20459
|
-
}
|
|
20450
|
+
setOverlayScale(scale < 1 ? 1 : scale);
|
|
20451
|
+
// if (scale < 1) {
|
|
20452
|
+
// setOverlayScale(1);
|
|
20453
|
+
// } else if (scale > 4) {
|
|
20454
|
+
// setOverlayScale(4);
|
|
20455
|
+
// } else {
|
|
20456
|
+
// setOverlayScale(scale);
|
|
20457
|
+
// }
|
|
20460
20458
|
};
|
|
20461
20459
|
// 使用lodash throttle进行节流处理: 100ms内只执行一次
|
|
20462
20460
|
const handleZoomChanged = throttle$2(updateScale, 50);
|
|
@@ -20569,7 +20567,7 @@ modelType, mapRef, mapJson, pathJson, realTimeData, antennaConfig, onMapLoad, on
|
|
|
20569
20567
|
}
|
|
20570
20568
|
// console.log('mowerrender------->', svgViewBox);
|
|
20571
20569
|
// 使用goole maps自定义叠加层,返回debug信息(如果启用)
|
|
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) => {
|
|
20570
|
+
return (jsxRuntime.jsx(CommonContextProvider, { value: commonValue, children: jsxRuntime.jsx(SvgEditContextProvider, { value: svgEditValue, children: jsxRuntime.jsxs(MapEditContextProvider, { value: mapEditValue, children: [platform !== exports.PlatformType.H5 && (jsxRuntime.jsx(jsxRuntime.Fragment, {})), platform === exports.PlatformType.H5 && jsxRuntime.jsx(Crosshair, {}), jsxRuntime.jsxs(OverlayViewF, { onLoad: (lay) => {
|
|
20573
20571
|
setOverlay(lay);
|
|
20574
20572
|
}, onDraw: (style) => {
|
|
20575
20573
|
const layout = Object.keys(style).reduce((pre, cur) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MowerMapRenderer.d.ts","sourceRoot":"","sources":["../../src/render/MowerMapRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAcf,OAAO,EAGL,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AA6B3B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,MAAM,EAAE,GAAG,CAAC;KACb;CACF;AAgGD,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"MowerMapRenderer.d.ts","sourceRoot":"","sources":["../../src/render/MowerMapRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAcf,OAAO,EAGL,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AA6B3B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,MAAM,EAAE,GAAG,CAAC;KACb;CACF;AAgGD,eAAO,MAAM,gBAAgB,mGA0sB5B,CAAC;AAIF,eAAe,gBAAgB,CAAC;AAChC,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBoundaryLabels.d.ts","sourceRoot":"","sources":["../../../src/render/boundaryLabels/useBoundaryLabels.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useBoundaryLabels.d.ts","sourceRoot":"","sources":["../../../src/render/boundaryLabels/useBoundaryLabels.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,UAAU,wBAAwB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAChD,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,iBAAiB,GAAI,2EAO/B,wBAAwB;;;CA0F1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/render/svgElement/ChannelClipPath/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/render/svgElement/ChannelClipPath/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,QAAA,MAAM,eAAe,0EAiNnB,CAAC;AAEH,eAAe,eAAe,CAAC"}
|
package/dist/types/renderer.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { RobotStatus } from '../config';
|
|
|
5
5
|
import { RealTimeLocationType, RealTimePartitionType, RealTimeProcessType, RealTimeStatusType } from './realTime';
|
|
6
6
|
import { Point, UnitsType } from './utils';
|
|
7
7
|
import { DataType } from '@/processor/unified';
|
|
8
|
-
import { ClickEventType, EditMapInfo, ElementRecordParams } from '@/context/mapEdit';
|
|
8
|
+
import { ClickEventType, EditMapInfo, ElementRecordParams, MobileEditMode } from '@/context/mapEdit';
|
|
9
9
|
import { DoodleItem } from '../render/svgEditMap/components/AddEntry/components/DoodleModal';
|
|
10
10
|
export interface DragState {
|
|
11
11
|
x?: number;
|
|
@@ -181,6 +181,8 @@ export interface MowerMapRendererRef {
|
|
|
181
181
|
undoCreateObstaclePoint?: () => void;
|
|
182
182
|
getCreateObstaclePoints?: () => Point[];
|
|
183
183
|
getCreateObstaclePointCount?: () => number;
|
|
184
|
+
addVisionOffPoint?: () => void;
|
|
185
|
+
enterVisionOffEditMode?: (mode: MobileEditMode) => void;
|
|
184
186
|
addHistory?: (history: any) => void;
|
|
185
187
|
redo?: () => void;
|
|
186
188
|
undo?: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/types/renderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/types/renderer.ts"],"names":[],"mappings":"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"}
|