@fleet-frontend/mower-maps 0.2.6-beta.2 → 0.2.6-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.js +136 -195
- package/dist/index.js +136 -195
- package/dist/render/MowerPartitionPickerMap.d.ts +1 -1
- package/dist/render/MowerPartitionPickerMap.d.ts.map +1 -1
- package/dist/render/partitionPicker/constants.d.ts +34 -33
- package/dist/render/partitionPicker/constants.d.ts.map +1 -1
- package/dist/render/partitionPicker/hooks/useMapViewport.d.ts.map +1 -1
- package/dist/render/partitionPicker/layers/PartitionNameLabels.d.ts +1 -3
- package/dist/render/partitionPicker/layers/PartitionNameLabels.d.ts.map +1 -1
- package/dist/render/partitionPicker/layers/PartitionPickerGridSvg.d.ts.map +1 -1
- package/dist/render/partitionPicker/layers/PartitionPickerSvg.d.ts +1 -2
- package/dist/render/partitionPicker/layers/PartitionPickerSvg.d.ts.map +1 -1
- package/dist/render/partitionPicker/layers/SelectableBoundaryElement.d.ts +2 -4
- package/dist/render/partitionPicker/layers/SelectableBoundaryElement.d.ts.map +1 -1
- package/dist/render/partitionPicker/viewportUtils.d.ts +6 -7
- package/dist/render/partitionPicker/viewportUtils.d.ts.map +1 -1
- package/dist/render/svgElement/TransformWrapper/DoodleTransformWrapper/DoodleTransformWrapper.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -22956,9 +22956,9 @@ const VertexElement = React__default.memo(({ r, stroke, fill, ...props }) => {
|
|
|
22956
22956
|
});
|
|
22957
22957
|
|
|
22958
22958
|
var _path$1;
|
|
22959
|
-
function _extends$
|
|
22959
|
+
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); }
|
|
22960
22960
|
var SvgDelete = function SvgDelete(props) {
|
|
22961
|
-
return /*#__PURE__*/React.createElement("svg", _extends$
|
|
22961
|
+
return /*#__PURE__*/React.createElement("svg", _extends$5({
|
|
22962
22962
|
xmlns: "http://www.w3.org/2000/svg",
|
|
22963
22963
|
width: 16,
|
|
22964
22964
|
height: 16,
|
|
@@ -23548,15 +23548,13 @@ function computePolygonScreenWidthPx(points, viewBox, containerWidth, containerH
|
|
|
23548
23548
|
const scale = getViewBoxMeetScale(viewBox, containerWidth, containerHeight);
|
|
23549
23549
|
return mapWidth * scale;
|
|
23550
23550
|
}
|
|
23551
|
-
function scaleStrokeWidthForViewBox(
|
|
23552
|
-
const { containerWidth, containerHeight,
|
|
23551
|
+
function scaleStrokeWidthForViewBox(viewBox, options) {
|
|
23552
|
+
const { containerWidth, containerHeight, targetScreenStrokePx = 2 } = options;
|
|
23553
23553
|
const meetScale = getViewBoxMeetScale(viewBox, containerWidth, containerHeight);
|
|
23554
|
-
|
|
23555
|
-
|
|
23556
|
-
return baseStrokeWidth;
|
|
23554
|
+
if (meetScale <= 0 || !Number.isFinite(targetScreenStrokePx)) {
|
|
23555
|
+
return targetScreenStrokePx;
|
|
23557
23556
|
}
|
|
23558
|
-
|
|
23559
|
-
return targetScreenPx / meetScale;
|
|
23557
|
+
return targetScreenStrokePx / meetScale;
|
|
23560
23558
|
}
|
|
23561
23559
|
/** 屏幕拖拽像素 → viewBox 坐标增量(与 mapPointToContainerPercent 互逆,供 applyPan 使用) */
|
|
23562
23560
|
function containerDeltaToViewBoxDelta(deltaXPx, deltaYPx, viewBox, containerWidth, containerHeight, mapRotationDeg = 0) {
|
|
@@ -26274,15 +26272,15 @@ const useVisionOffTransform = (data, scaleConstraints
|
|
|
26274
26272
|
};
|
|
26275
26273
|
};
|
|
26276
26274
|
|
|
26277
|
-
var _g$
|
|
26278
|
-
function _extends$
|
|
26275
|
+
var _g$3, _defs$3;
|
|
26276
|
+
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); }
|
|
26279
26277
|
var SvgTransformDelete = function SvgTransformDelete(props) {
|
|
26280
|
-
return /*#__PURE__*/React.createElement("svg", _extends$
|
|
26278
|
+
return /*#__PURE__*/React.createElement("svg", _extends$4({
|
|
26281
26279
|
xmlns: "http://www.w3.org/2000/svg",
|
|
26282
26280
|
width: 20,
|
|
26283
26281
|
height: 20,
|
|
26284
26282
|
fill: "none"
|
|
26285
|
-
}, props), _g$
|
|
26283
|
+
}, props), _g$3 || (_g$3 = /*#__PURE__*/React.createElement("g", {
|
|
26286
26284
|
clipPath: "url(#transform-delete_svg__a)"
|
|
26287
26285
|
}, /*#__PURE__*/React.createElement("circle", {
|
|
26288
26286
|
cx: 10,
|
|
@@ -26305,7 +26303,7 @@ var SvgTransformDelete = function SvgTransformDelete(props) {
|
|
|
26305
26303
|
fill: "#fff",
|
|
26306
26304
|
rx: 0.8,
|
|
26307
26305
|
transform: "rotate(45 6.323 5.191)"
|
|
26308
|
-
}))), _defs$
|
|
26306
|
+
}))), _defs$3 || (_defs$3 = /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("linearGradient", {
|
|
26309
26307
|
id: "transform-delete_svg__b",
|
|
26310
26308
|
x1: 17.727,
|
|
26311
26309
|
x2: -1.215,
|
|
@@ -26325,15 +26323,15 @@ var SvgTransformDelete = function SvgTransformDelete(props) {
|
|
|
26325
26323
|
})))));
|
|
26326
26324
|
};
|
|
26327
26325
|
|
|
26328
|
-
var _g$
|
|
26329
|
-
function _extends$
|
|
26326
|
+
var _g$2, _defs$2;
|
|
26327
|
+
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); }
|
|
26330
26328
|
var SvgTransformRotate = function SvgTransformRotate(props) {
|
|
26331
|
-
return /*#__PURE__*/React.createElement("svg", _extends$
|
|
26329
|
+
return /*#__PURE__*/React.createElement("svg", _extends$3({
|
|
26332
26330
|
xmlns: "http://www.w3.org/2000/svg",
|
|
26333
26331
|
width: 21,
|
|
26334
26332
|
height: 20,
|
|
26335
26333
|
fill: "none"
|
|
26336
|
-
}, props), _g$
|
|
26334
|
+
}, props), _g$2 || (_g$2 = /*#__PURE__*/React.createElement("g", {
|
|
26337
26335
|
clipPath: "url(#transform-rotate_svg__a)"
|
|
26338
26336
|
}, /*#__PURE__*/React.createElement("path", {
|
|
26339
26337
|
fill: "url(#transform-rotate_svg__b)",
|
|
@@ -26341,7 +26339,7 @@ var SvgTransformRotate = function SvgTransformRotate(props) {
|
|
|
26341
26339
|
}), /*#__PURE__*/React.createElement("path", {
|
|
26342
26340
|
fill: "#fff",
|
|
26343
26341
|
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"
|
|
26344
|
-
}))), _defs$
|
|
26342
|
+
}))), _defs$2 || (_defs$2 = /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("linearGradient", {
|
|
26345
26343
|
id: "transform-rotate_svg__b",
|
|
26346
26344
|
x1: 17.84,
|
|
26347
26345
|
x2: -1.103,
|
|
@@ -26361,15 +26359,15 @@ var SvgTransformRotate = function SvgTransformRotate(props) {
|
|
|
26361
26359
|
})))));
|
|
26362
26360
|
};
|
|
26363
26361
|
|
|
26364
|
-
var _g$
|
|
26365
|
-
function _extends$
|
|
26362
|
+
var _g$1, _defs$1;
|
|
26363
|
+
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); }
|
|
26366
26364
|
var SvgTransformScale = function SvgTransformScale(props) {
|
|
26367
|
-
return /*#__PURE__*/React.createElement("svg", _extends$
|
|
26365
|
+
return /*#__PURE__*/React.createElement("svg", _extends$2({
|
|
26368
26366
|
xmlns: "http://www.w3.org/2000/svg",
|
|
26369
26367
|
width: 21,
|
|
26370
26368
|
height: 20,
|
|
26371
26369
|
fill: "none"
|
|
26372
|
-
}, props), _g$
|
|
26370
|
+
}, props), _g$1 || (_g$1 = /*#__PURE__*/React.createElement("g", {
|
|
26373
26371
|
clipPath: "url(#transform-scale_svg__a)"
|
|
26374
26372
|
}, /*#__PURE__*/React.createElement("path", {
|
|
26375
26373
|
fill: "url(#transform-scale_svg__b)",
|
|
@@ -26377,7 +26375,7 @@ var SvgTransformScale = function SvgTransformScale(props) {
|
|
|
26377
26375
|
}), /*#__PURE__*/React.createElement("path", {
|
|
26378
26376
|
fill: "#fff",
|
|
26379
26377
|
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"
|
|
26380
|
-
}))), _defs$
|
|
26378
|
+
}))), _defs$1 || (_defs$1 = /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("linearGradient", {
|
|
26381
26379
|
id: "transform-scale_svg__b",
|
|
26382
26380
|
x1: 17.84,
|
|
26383
26381
|
x2: -1.103,
|
|
@@ -26397,15 +26395,15 @@ var SvgTransformScale = function SvgTransformScale(props) {
|
|
|
26397
26395
|
})))));
|
|
26398
26396
|
};
|
|
26399
26397
|
|
|
26400
|
-
var _g
|
|
26401
|
-
function _extends$
|
|
26398
|
+
var _g, _defs;
|
|
26399
|
+
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); }
|
|
26402
26400
|
var SvgTransformTranslate = function SvgTransformTranslate(props) {
|
|
26403
|
-
return /*#__PURE__*/React.createElement("svg", _extends$
|
|
26401
|
+
return /*#__PURE__*/React.createElement("svg", _extends$1({
|
|
26404
26402
|
xmlns: "http://www.w3.org/2000/svg",
|
|
26405
26403
|
width: 20,
|
|
26406
26404
|
height: 20,
|
|
26407
26405
|
fill: "none"
|
|
26408
|
-
}, props), _g
|
|
26406
|
+
}, props), _g || (_g = /*#__PURE__*/React.createElement("g", {
|
|
26409
26407
|
clipPath: "url(#transform-translate_svg__a)"
|
|
26410
26408
|
}, /*#__PURE__*/React.createElement("circle", {
|
|
26411
26409
|
cx: 10,
|
|
@@ -26415,7 +26413,7 @@ var SvgTransformTranslate = function SvgTransformTranslate(props) {
|
|
|
26415
26413
|
}), /*#__PURE__*/React.createElement("path", {
|
|
26416
26414
|
fill: "#fff",
|
|
26417
26415
|
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"
|
|
26418
|
-
}))), _defs
|
|
26416
|
+
}))), _defs || (_defs = /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("linearGradient", {
|
|
26419
26417
|
id: "transform-translate_svg__b",
|
|
26420
26418
|
x1: 17.727,
|
|
26421
26419
|
x2: -1.215,
|
|
@@ -27089,97 +27087,6 @@ const useDoodleTransform = (data, onTransformChange, options) => {
|
|
|
27089
27087
|
};
|
|
27090
27088
|
};
|
|
27091
27089
|
|
|
27092
|
-
var _g$2, _defs$2;
|
|
27093
|
-
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); }
|
|
27094
|
-
var SvgDisabledRotate = function SvgDisabledRotate(props) {
|
|
27095
|
-
return /*#__PURE__*/React.createElement("svg", _extends$3({
|
|
27096
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
27097
|
-
width: 16,
|
|
27098
|
-
height: 16,
|
|
27099
|
-
fill: "none"
|
|
27100
|
-
}, props), _g$2 || (_g$2 = /*#__PURE__*/React.createElement("g", {
|
|
27101
|
-
clipPath: "url(#disabled-rotate_svg__a)"
|
|
27102
|
-
}, /*#__PURE__*/React.createElement("path", {
|
|
27103
|
-
fill: "#fff",
|
|
27104
|
-
d: "M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0"
|
|
27105
|
-
}), /*#__PURE__*/React.createElement("path", {
|
|
27106
|
-
fill: "#211F1F",
|
|
27107
|
-
fillOpacity: 0.4,
|
|
27108
|
-
d: "M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0"
|
|
27109
|
-
}), /*#__PURE__*/React.createElement("path", {
|
|
27110
|
-
fill: "#fff",
|
|
27111
|
-
fillOpacity: 0.7,
|
|
27112
|
-
d: "M9.192 11.775a4.36 4.36 0 0 1-5.277-3.93l-.013-.326v-.002a.655.655 0 0 1 1.31 0v.002a3.05 3.05 0 0 0 1.71 2.738l.208.091a3.05 3.05 0 0 0 1.781.147l.22-.057q.234-.07.451-.175l-.919-.354a.653.653 0 1 1 .47-1.22l2.033.782a.654.654 0 0 1 .251 1.047l.002.001a4.36 4.36 0 0 1-2.227 1.256M6.809 3.639a4.36 4.36 0 0 1 5.289 4.256v.002a.654.654 0 1 1-1.309 0v-.002a3.05 3.05 0 0 0-1.71-2.738l-.208-.091a3.05 3.05 0 0 0-1.781-.147l-.22.057a3 3 0 0 0-.451.175l.919.354a.654.654 0 0 1-.47 1.22l-2.033-.782a.654.654 0 0 1-.251-1.046l-.002-.002a4.36 4.36 0 0 1 2.227-1.256"
|
|
27113
|
-
}))), _defs$2 || (_defs$2 = /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
|
|
27114
|
-
id: "disabled-rotate_svg__a"
|
|
27115
|
-
}, /*#__PURE__*/React.createElement("path", {
|
|
27116
|
-
fill: "#fff",
|
|
27117
|
-
d: "M16 0H0v16h16z"
|
|
27118
|
-
})))));
|
|
27119
|
-
};
|
|
27120
|
-
|
|
27121
|
-
var _g$1, _defs$1;
|
|
27122
|
-
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); }
|
|
27123
|
-
var SvgDisabledScale = function SvgDisabledScale(props) {
|
|
27124
|
-
return /*#__PURE__*/React.createElement("svg", _extends$2({
|
|
27125
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
27126
|
-
width: 16,
|
|
27127
|
-
height: 16,
|
|
27128
|
-
fill: "none"
|
|
27129
|
-
}, props), _g$1 || (_g$1 = /*#__PURE__*/React.createElement("g", {
|
|
27130
|
-
clipPath: "url(#disabled-scale_svg__a)"
|
|
27131
|
-
}, /*#__PURE__*/React.createElement("path", {
|
|
27132
|
-
fill: "#fff",
|
|
27133
|
-
d: "M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0"
|
|
27134
|
-
}), /*#__PURE__*/React.createElement("path", {
|
|
27135
|
-
fill: "#211F1F",
|
|
27136
|
-
fillOpacity: 0.4,
|
|
27137
|
-
d: "M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0"
|
|
27138
|
-
}), /*#__PURE__*/React.createElement("path", {
|
|
27139
|
-
fill: "#fff",
|
|
27140
|
-
fillOpacity: 0.7,
|
|
27141
|
-
d: "M3.972 6.612a.64.64 0 0 0 1.28 0v-.437l4.554 4.554H9.41a.64.64 0 0 0 0 1.28h1.979a.64.64 0 0 0 .636-.606l.003-.036.001-1.98a.64.64 0 1 0-1.28.001v.474L6.158 5.27h.435a.64.64 0 0 0 0-1.28h-1.98a.64.64 0 0 0-.64.64z"
|
|
27142
|
-
}))), _defs$1 || (_defs$1 = /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
|
|
27143
|
-
id: "disabled-scale_svg__a"
|
|
27144
|
-
}, /*#__PURE__*/React.createElement("path", {
|
|
27145
|
-
fill: "#fff",
|
|
27146
|
-
d: "M0 16h16V0H0z"
|
|
27147
|
-
})))));
|
|
27148
|
-
};
|
|
27149
|
-
|
|
27150
|
-
var _g, _defs;
|
|
27151
|
-
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); }
|
|
27152
|
-
var SvgDisabledTranslate = function SvgDisabledTranslate(props) {
|
|
27153
|
-
return /*#__PURE__*/React.createElement("svg", _extends$1({
|
|
27154
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
27155
|
-
width: 16,
|
|
27156
|
-
height: 16,
|
|
27157
|
-
fill: "none"
|
|
27158
|
-
}, props), _g || (_g = /*#__PURE__*/React.createElement("g", {
|
|
27159
|
-
clipPath: "url(#disabled-translate_svg__a)"
|
|
27160
|
-
}, /*#__PURE__*/React.createElement("circle", {
|
|
27161
|
-
cx: 8,
|
|
27162
|
-
cy: 8,
|
|
27163
|
-
r: 8,
|
|
27164
|
-
fill: "#fff"
|
|
27165
|
-
}), /*#__PURE__*/React.createElement("circle", {
|
|
27166
|
-
cx: 8,
|
|
27167
|
-
cy: 8,
|
|
27168
|
-
r: 8,
|
|
27169
|
-
fill: "#211F1F",
|
|
27170
|
-
fillOpacity: 0.4
|
|
27171
|
-
}), /*#__PURE__*/React.createElement("path", {
|
|
27172
|
-
fill: "#fff",
|
|
27173
|
-
fillOpacity: 0.7,
|
|
27174
|
-
d: "M12.944 8.608a.64.64 0 0 0-.079-.97l-1.333-1.334a.64.64 0 0 0-.905.905l.305.305H8.564V5.136l.308.308a.642.642 0 0 0 .906-.906l-1.4-1.399a.64.64 0 0 0-.906 0q-.036.037-.064.08L6.075 4.55a.64.64 0 0 0 .905.905l.305-.304v2.362H4.91l.306-.306a.64.64 0 0 0-.904-.904l-1.4 1.4a.64.64 0 0 0 .077.97l1.334 1.333a.64.64 0 0 0 .906-.905l-.31-.309h2.367v2.38l-.304-.305a.64.64 0 1 0-.905.906l1.4 1.4a.64.64 0 0 0 .97-.08l1.332-1.333a.64.64 0 0 0-.905-.905l-.309.308v-2.37h2.385l-.31.309a.64.64 0 1 0 .905.904z"
|
|
27175
|
-
}))), _defs || (_defs = /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
|
|
27176
|
-
id: "disabled-translate_svg__a"
|
|
27177
|
-
}, /*#__PURE__*/React.createElement("path", {
|
|
27178
|
-
fill: "#fff",
|
|
27179
|
-
d: "M16 0H0v16h16z"
|
|
27180
|
-
})))));
|
|
27181
|
-
};
|
|
27182
|
-
|
|
27183
27090
|
var css_248z$6 = ".index-module_doodleHover__jIZHV path {\n fill: #00B3A1;\n}";
|
|
27184
27091
|
var styles$6 = {"doodleHover":"index-module_doodleHover__jIZHV"};
|
|
27185
27092
|
styleInject(css_248z$6);
|
|
@@ -27378,8 +27285,7 @@ const DoodleTransformWrapper = ({ data, isSelected = false, isSelectedWithoutOpe
|
|
|
27378
27285
|
const infoBoxWidth = 300 * overlayScale; // 信息框宽度
|
|
27379
27286
|
const infoBoxHeight = 40 * overlayScale; // 信息框高度
|
|
27380
27287
|
const infoBoxX = centerX - infoBoxWidth / 2; // 居中对齐
|
|
27381
|
-
const circleScale = platform === PlatformType.H5 ? 1.5 * overlayScale :
|
|
27382
|
-
const disacledScale = circleScale * 1.2;
|
|
27288
|
+
const circleScale = platform === PlatformType.H5 ? 1.5 * overlayScale : 2 * overlayScale;
|
|
27383
27289
|
return (jsxs(Fragment, { children: [jsx("polygon", { points: selectionBoxPoints.map((point) => `${point.x},${point.y}`).join(' '), fill: "none", stroke: "#B2B4B9", strokeWidth: "2", strokeDasharray: "5,5", vectorEffect: "non-scaling-stroke", ...(platform === PlatformType.H5
|
|
27384
27290
|
? {
|
|
27385
27291
|
onTouchStart: createReactEventHandler((e) => {
|
|
@@ -27388,7 +27294,7 @@ const DoodleTransformWrapper = ({ data, isSelected = false, isSelectedWithoutOpe
|
|
|
27388
27294
|
}
|
|
27389
27295
|
: {
|
|
27390
27296
|
// onMouseDown: handleMouseDownWithDisabled,
|
|
27391
|
-
}) }), jsx("
|
|
27297
|
+
}) }), jsx("circle", { cx: selectionBoxPoints[0].x, cy: selectionBoxPoints[0].y, r: 10 * circleScale, fill: "#B2B4B9", stroke: "none" }), jsx("circle", { cx: selectionBoxPoints[3].x, cy: selectionBoxPoints[3].y, r: 10 * circleScale, fill: "#B2B4B9", stroke: "none" }), jsx("circle", { cx: selectionBoxPoints[1].x, cy: selectionBoxPoints[1].y, r: 10 * circleScale, fill: "#B2B4B9", stroke: "none" }), jsx("circle", { cx: selectionBoxPoints[2].x, cy: selectionBoxPoints[2].y, r: 10 * circleScale, fill: "#B2B4B9", stroke: "none" }), platform === PlatformType.H5 && (jsx("foreignObject", { x: infoBoxX, y: infoBoxY, width: infoBoxWidth, height: infoBoxHeight, style: { textAlign: 'center' }, onClick: () => {
|
|
27392
27298
|
onClickInfo?.();
|
|
27393
27299
|
}, children: jsx("div", { style: {
|
|
27394
27300
|
padding: `5px ${10 * overlayScale}px`,
|
|
@@ -27408,7 +27314,7 @@ const DoodleTransformWrapper = ({ data, isSelected = false, isSelectedWithoutOpe
|
|
|
27408
27314
|
justifyContent: 'center',
|
|
27409
27315
|
gap: '10px',
|
|
27410
27316
|
color: '#325069',
|
|
27411
|
-
}, children: jsxs("div", { children: [locale?.['map.renderer.
|
|
27317
|
+
}, children: jsxs("div", { children: [locale?.['map.renderer.remainTime'] || 'Remaining time', ": ", remainingTime] }) }) }) }))] }));
|
|
27412
27318
|
};
|
|
27413
27319
|
useEffect(() => {
|
|
27414
27320
|
const isMove = isDragging || isRotating || isScaling;
|
|
@@ -30844,15 +30750,27 @@ const BoundarySvgRender = React__default.memo(({ mapJson, unStructMapData, id, m
|
|
|
30844
30750
|
});
|
|
30845
30751
|
|
|
30846
30752
|
/** ChannelClipPath 等内容裁剪使用的 SVG 坐标边距(与用户传入的屏幕 padding 无关) */
|
|
30847
|
-
const PARTITION_PICKER_CONTENT_CLIP_PADDING =
|
|
30753
|
+
const PARTITION_PICKER_CONTENT_CLIP_PADDING = 0;
|
|
30848
30754
|
/** H5:子区域屏幕宽度超过该值才展示名称标签(px) */
|
|
30849
|
-
const H5_PARTITION_LABEL_MIN_SCREEN_WIDTH_PX =
|
|
30755
|
+
const H5_PARTITION_LABEL_MIN_SCREEN_WIDTH_PX = 92;
|
|
30850
30756
|
/** H5:名称气泡总宽度(px) */
|
|
30851
|
-
const H5_PARTITION_LABEL_WIDTH_PX =
|
|
30852
|
-
/**
|
|
30853
|
-
const
|
|
30854
|
-
/**
|
|
30855
|
-
const
|
|
30757
|
+
const H5_PARTITION_LABEL_WIDTH_PX = 92;
|
|
30758
|
+
/** Web:序号徽章与名称标签间距(px) */
|
|
30759
|
+
const WEB_SELECTION_ORDER_GAP_PX = 8;
|
|
30760
|
+
/** H5:序号徽章与名称标签间距(px) */
|
|
30761
|
+
const H5_SELECTION_ORDER_GAP_PX = 4;
|
|
30762
|
+
/** Standalone:充电桩图标最小屏幕尺寸(px),缩小全图 fit 时避免过小;放大时随 viewBox 同比缩放 */
|
|
30763
|
+
const PARTITION_PICKER_CHARGING_PILE_MIN_DISPLAY_PX = 16;
|
|
30764
|
+
/** Web 地块描边屏幕像素宽度:未选中 2px,选中 3px */
|
|
30765
|
+
const WEB_PARTITION_BOUNDARY_STROKE_PX = {
|
|
30766
|
+
default: 2,
|
|
30767
|
+
selected: 3,
|
|
30768
|
+
};
|
|
30769
|
+
/** H5 地块描边屏幕像素宽度:选中与否均为 1px */
|
|
30770
|
+
const H5_PARTITION_BOUNDARY_STROKE_PX = {
|
|
30771
|
+
default: 1,
|
|
30772
|
+
selected: 1,
|
|
30773
|
+
};
|
|
30856
30774
|
/**
|
|
30857
30775
|
* Figma bg/mapping 地图网格背景(Standalone SVG 层)
|
|
30858
30776
|
* @see https://www.figma.com/design/j0DdUYf8VFkXQ8ikkA6ZzP — node 20490:84886
|
|
@@ -30860,17 +30778,17 @@ const PARTITION_BOUNDARY_EMPHASIZED_TARGET_SCREEN_STROKE_PX = 2.5;
|
|
|
30860
30778
|
/** 网格区域底色,也用于容器 letterbox 留白 */
|
|
30861
30779
|
const PARTITION_PICKER_GRID_BASE_COLOR = '#E3E5EB';
|
|
30862
30780
|
/** 网格单元边长(SVG 地图坐标,与 viewBox 一致;zoom 时间距同比缩放) */
|
|
30863
|
-
const PARTITION_PICKER_GRID_TILE_SIZE =
|
|
30781
|
+
const PARTITION_PICKER_GRID_TILE_SIZE = 10;
|
|
30864
30782
|
/** 网格线宽(地图坐标;随 zoom 同比缩放,不做屏幕像素恒定) */
|
|
30865
|
-
const PARTITION_PICKER_GRID_LINE_WIDTH =
|
|
30783
|
+
const PARTITION_PICKER_GRID_LINE_WIDTH = 0.5;
|
|
30866
30784
|
/** 网格交点圆点半径(地图坐标) */
|
|
30867
|
-
const PARTITION_PICKER_GRID_DOT_RADIUS =
|
|
30785
|
+
const PARTITION_PICKER_GRID_DOT_RADIUS = 0.5;
|
|
30868
30786
|
/** 网格层整体不透明度(Figma 约 80%) */
|
|
30869
|
-
const PARTITION_PICKER_GRID_OPACITY = 0.
|
|
30787
|
+
const PARTITION_PICKER_GRID_OPACITY = 0.4;
|
|
30870
30788
|
/** 网格线与交点颜色 */
|
|
30871
30789
|
const PARTITION_PICKER_GRID_STROKE = '#FFFFFF';
|
|
30872
30790
|
/** 可见范围内交点超过该数量时跳过圆点,仅保留网格线(缩小视野时减轻 DOM 压力) */
|
|
30873
|
-
const PARTITION_PICKER_GRID_MAX_INTERSECTION_DOTS =
|
|
30791
|
+
const PARTITION_PICKER_GRID_MAX_INTERSECTION_DOTS = 2000;
|
|
30874
30792
|
/**
|
|
30875
30793
|
* 分区选择地图专用样式
|
|
30876
30794
|
*
|
|
@@ -30895,37 +30813,27 @@ const PARTITION_PICKER_MAP_CONFIG = {
|
|
|
30895
30813
|
const PARTITION_PICKER_COLORS_WEB = {
|
|
30896
30814
|
defaultFill: 'rgba(222, 225, 231, 1)',
|
|
30897
30815
|
defaultStroke: 'rgba(132, 152, 169, 1)',
|
|
30898
|
-
defaultStrokeWidth: 2,
|
|
30899
30816
|
hoverFill: 'rgba(211, 216, 226, 1)',
|
|
30900
30817
|
hoverStroke: 'rgba(132, 152, 169, 1)',
|
|
30901
|
-
hoverStrokeWidth: 3,
|
|
30902
30818
|
selectedFill: 'rgba(202, 214, 238, 1)',
|
|
30903
30819
|
selectedStroke: 'rgba(132, 152, 169, 1)',
|
|
30904
|
-
selectedStrokeWidth: 3,
|
|
30905
30820
|
selectedHoverFill: 'rgba(202, 214, 238, 1)',
|
|
30906
30821
|
selectedHoverStroke: 'rgba(132, 152, 169, 1)',
|
|
30907
|
-
selectedHoverStrokeWidth: 3,
|
|
30908
30822
|
isolatedFill: 'rgba(225, 227, 233, 1)',
|
|
30909
30823
|
isolatedStroke: 'rgba(189, 198, 208, 1)',
|
|
30910
|
-
isolatedStrokeWidth: 2,
|
|
30911
30824
|
};
|
|
30912
30825
|
/** H5 端地块配色 */
|
|
30913
30826
|
const PARTITION_PICKER_COLORS_H5 = {
|
|
30914
30827
|
defaultFill: 'rgba(222, 225, 231, 1)',
|
|
30915
30828
|
defaultStroke: 'rgba(132, 152, 169, 1)',
|
|
30916
|
-
defaultStrokeWidth: 1,
|
|
30917
30829
|
hoverFill: 'rgba(222, 225, 231, 1)',
|
|
30918
30830
|
hoverStroke: 'rgba(132, 152, 169, 1)',
|
|
30919
|
-
hoverStrokeWidth: 1,
|
|
30920
30831
|
selectedFill: 'rgba(202, 214, 238, 1)',
|
|
30921
30832
|
selectedStroke: 'rgba(132, 152, 169, 1)',
|
|
30922
|
-
selectedStrokeWidth: 1,
|
|
30923
30833
|
selectedHoverFill: 'rgba(202, 214, 238, 1)',
|
|
30924
30834
|
selectedHoverStroke: 'rgba(132, 152, 169, 1)',
|
|
30925
|
-
selectedHoverStrokeWidth: 1,
|
|
30926
30835
|
isolatedFill: 'rgba(225, 227, 233, 1)',
|
|
30927
30836
|
isolatedStroke: 'rgba(189, 198, 208, 1)',
|
|
30928
|
-
isolatedStrokeWidth: 1,
|
|
30929
30837
|
};
|
|
30930
30838
|
function getPartitionPickerMapConfig(platform = PlatformType.WEB) {
|
|
30931
30839
|
return platform === PlatformType.WEB
|
|
@@ -30935,6 +30843,11 @@ function getPartitionPickerMapConfig(platform = PlatformType.WEB) {
|
|
|
30935
30843
|
function getPartitionPickerColors(platform = PlatformType.WEB) {
|
|
30936
30844
|
return platform === PlatformType.WEB ? PARTITION_PICKER_COLORS_WEB : PARTITION_PICKER_COLORS_H5;
|
|
30937
30845
|
}
|
|
30846
|
+
function getPartitionPickerBoundaryStrokePx(platform = PlatformType.WEB) {
|
|
30847
|
+
return platform === PlatformType.WEB
|
|
30848
|
+
? { ...WEB_PARTITION_BOUNDARY_STROKE_PX }
|
|
30849
|
+
: { ...H5_PARTITION_BOUNDARY_STROKE_PX };
|
|
30850
|
+
}
|
|
30938
30851
|
/** Web 分区名气泡(Figma「地块名称」/ 选中区域) */
|
|
30939
30852
|
const PARTITION_PICKER_LABEL_STYLES_WEB = {
|
|
30940
30853
|
default: {
|
|
@@ -30975,6 +30888,7 @@ const PARTITION_PICKER_LABEL_STYLES_H5 = {
|
|
|
30975
30888
|
fontWeight: 400,
|
|
30976
30889
|
padding: '6px',
|
|
30977
30890
|
width: `${H5_PARTITION_LABEL_WIDTH_PX}px`,
|
|
30891
|
+
maxWidth: `${H5_PARTITION_LABEL_WIDTH_PX}px`,
|
|
30978
30892
|
borderRadius: 100,
|
|
30979
30893
|
boxSizing: 'border-box',
|
|
30980
30894
|
},
|
|
@@ -30985,6 +30899,7 @@ const PARTITION_PICKER_LABEL_STYLES_H5 = {
|
|
|
30985
30899
|
fontWeight: 400,
|
|
30986
30900
|
padding: '6px',
|
|
30987
30901
|
width: `${H5_PARTITION_LABEL_WIDTH_PX}px`,
|
|
30902
|
+
maxWidth: `${H5_PARTITION_LABEL_WIDTH_PX}px`,
|
|
30988
30903
|
borderRadius: 100,
|
|
30989
30904
|
boxSizing: 'border-box',
|
|
30990
30905
|
},
|
|
@@ -31022,10 +30937,6 @@ const DEFAULT_PARTITION_PICKER_GRID_STYLE = {
|
|
|
31022
30937
|
opacity: PARTITION_PICKER_GRID_OPACITY,
|
|
31023
30938
|
maxIntersectionDots: PARTITION_PICKER_GRID_MAX_INTERSECTION_DOTS,
|
|
31024
30939
|
};
|
|
31025
|
-
const DEFAULT_PARTITION_PICKER_BOUNDARY_STROKE_PX = {
|
|
31026
|
-
default: PARTITION_BOUNDARY_TARGET_SCREEN_STROKE_PX,
|
|
31027
|
-
emphasized: PARTITION_BOUNDARY_EMPHASIZED_TARGET_SCREEN_STROKE_PX,
|
|
31028
|
-
};
|
|
31029
30940
|
/**
|
|
31030
30941
|
* 将 platform 内置默认值与外部 pickerStyleConfig 深度合并。
|
|
31031
30942
|
* 调用方只需覆盖变化的字段,无需改组件源码。
|
|
@@ -31042,8 +30953,7 @@ function resolvePartitionPickerStyles(platform = PlatformType.WEB, config) {
|
|
|
31042
30953
|
}
|
|
31043
30954
|
: baseLabels,
|
|
31044
30955
|
grid: merge$1({}, DEFAULT_PARTITION_PICKER_GRID_STYLE, config?.grid),
|
|
31045
|
-
boundaryStrokePx: merge$1({},
|
|
31046
|
-
labelMinScreenWidthPx: config?.labelMinScreenWidthPx ?? H5_PARTITION_LABEL_MIN_SCREEN_WIDTH_PX,
|
|
30956
|
+
boundaryStrokePx: merge$1({}, getPartitionPickerBoundaryStrokePx(platform), config?.boundaryStrokePx),
|
|
31047
30957
|
};
|
|
31048
30958
|
}
|
|
31049
30959
|
|
|
@@ -31057,7 +30967,7 @@ function resolvePartitionPickerStyles(platform = PlatformType.WEB, config) {
|
|
|
31057
30967
|
*
|
|
31058
30968
|
* 平移可在地块/分区名等任意区域发起;仅当位移小于阈值时才视为点击
|
|
31059
30969
|
*/
|
|
31060
|
-
function useMapViewport({ mapJson, containerRef: externalContainerRef, width, height, padding, minZoom = 0.5, maxZoom =
|
|
30970
|
+
function useMapViewport({ mapJson, containerRef: externalContainerRef, width, height, padding, minZoom = 0.5, maxZoom = 3, enablePanZoom = true, refitOnResize = true, onViewportTap, mapRotationDeg = 0, }) {
|
|
31061
30971
|
/** 地图容器 DOM,用于绑定 wheel/pointer/touch 事件 */
|
|
31062
30972
|
const internalContainerRef = useRef(null);
|
|
31063
30973
|
const containerRef = externalContainerRef ?? internalContainerRef;
|
|
@@ -31476,7 +31386,17 @@ function useMapViewport({ mapJson, containerRef: externalContainerRef, width, he
|
|
|
31476
31386
|
window.removeEventListener('mouseup', handleWindowPointerUp);
|
|
31477
31387
|
window.removeEventListener('blur', handleWindowPointerUp);
|
|
31478
31388
|
};
|
|
31479
|
-
}, [
|
|
31389
|
+
}, [
|
|
31390
|
+
applyPan,
|
|
31391
|
+
applyZoom,
|
|
31392
|
+
clearPanState,
|
|
31393
|
+
enablePanZoom,
|
|
31394
|
+
height,
|
|
31395
|
+
maxZoom,
|
|
31396
|
+
minZoom,
|
|
31397
|
+
scheduleViewBox,
|
|
31398
|
+
width,
|
|
31399
|
+
]);
|
|
31480
31400
|
return {
|
|
31481
31401
|
/** 绑定到地图外层容器的 ref */
|
|
31482
31402
|
containerRef,
|
|
@@ -31879,19 +31799,16 @@ function usePartitionLabelItems(mapData, viewBox, containerWidth, containerHeigh
|
|
|
31879
31799
|
]);
|
|
31880
31800
|
}
|
|
31881
31801
|
|
|
31882
|
-
var css_248z = "@charset \"UTF-8\";\n/* 地图容器:裁剪溢出,禁用浏览器默认 touch 手势以便自定义 pinch */\n.index-module_container__nNYv7 {\n position: relative;\n overflow: hidden;\n touch-action: none;\n user-select: none;\n cursor: grab;\n /* H5 点击时不出现矩形 tap 高亮 */\n -webkit-tap-highlight-color: transparent;\n tap-highlight-color: transparent;\n}\n\n/* 网格 + 地块双层 SVG 叠放,共用 viewBox 保证平移/缩放同步 */\n.index-module_mapSvgStack__nz2s2 {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 1;\n}\n\n.index-module_gridSvg__MoJD6 {\n position: absolute;\n inset: 0;\n display: block;\n pointer-events: none;\n}\n\n/* 地图 SVG:地块/通道,可绕 viewBox 中心旋转 */\n.index-module_mapSvg__vN0LV {\n position: absolute;\n inset: 0;\n display: block;\n pointer-events: none;\n -webkit-tap-highlight-color: transparent;\n tap-highlight-color: transparent;\n}\n\n/* 可点击地块:点击选中由 viewport 统一处理,此处保留 hover */\n.index-module_boundaryPolygon__uHe-E {\n cursor: grab;\n pointer-events: auto;\n -webkit-tap-highlight-color: transparent;\n tap-highlight-color: transparent;\n outline: none;\n -webkit-touch-callout: none;\n}\n\n.index-module_container__nNYv7:active {\n cursor: grabbing;\n}\n\n.index-module_boundaryPolygon__uHe-E:active {\n cursor: grabbing;\n}\n\n/* Map 模式:OverlayViewF 内根节点,铺满 overlay 像素区域 */\n.index-module_googleOverlayRoot__TQ3II {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n overflow: visible;\n}\n\n/* HTML overlay 层:CSS rotate 与 MowerMapRenderer OverlayViewF 一致,子元素自行反向补偿 */\n.index-module_mapOverlayLayer__7jTDy {\n position: absolute;\n inset: 0;\n transform-origin: 50% 50%;\n pointer-events: none;\n z-index: 2;\n}\n\n/* 分区名气泡层,绝对定位覆盖在 SVG 之上 */\n.index-module_labelsLayer__Rcikw {\n position: absolute;\n inset: 0;\n pointer-events: none;\n}\n\n.index-module_label__xo3Kc {\n position: absolute;\n display: flex;\n flex-direction: column;\n align-items: center;\n pointer-events: auto;\n cursor: grab;\n white-space: nowrap;\n -webkit-tap-highlight-color: transparent;\n tap-highlight-color: transparent;\n outline: none;\n -webkit-touch-callout: none;\n}\n\n.index-module_label__xo3Kc:active {\n cursor: grabbing;\n}\n\n.index-
|
|
31883
|
-
var styles = {"container":"index-module_container__nNYv7","mapSvgStack":"index-module_mapSvgStack__nz2s2","gridSvg":"index-module_gridSvg__MoJD6","mapSvg":"index-module_mapSvg__vN0LV","boundaryPolygon":"index-module_boundaryPolygon__uHe-E","googleOverlayRoot":"index-module_googleOverlayRoot__TQ3II","mapOverlayLayer":"index-module_mapOverlayLayer__7jTDy","labelsLayer":"index-module_labelsLayer__Rcikw","label":"index-module_label__xo3Kc","
|
|
31802
|
+
var css_248z = "@charset \"UTF-8\";\n/* 地图容器:裁剪溢出,禁用浏览器默认 touch 手势以便自定义 pinch */\n.index-module_container__nNYv7 {\n position: relative;\n overflow: hidden;\n touch-action: none;\n user-select: none;\n cursor: grab;\n /* H5 点击时不出现矩形 tap 高亮 */\n -webkit-tap-highlight-color: transparent;\n tap-highlight-color: transparent;\n}\n\n/* 网格 + 地块双层 SVG 叠放,共用 viewBox 保证平移/缩放同步 */\n.index-module_mapSvgStack__nz2s2 {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 1;\n}\n\n.index-module_gridSvg__MoJD6 {\n position: absolute;\n inset: 0;\n display: block;\n pointer-events: none;\n}\n\n/* 地图 SVG:地块/通道,可绕 viewBox 中心旋转 */\n.index-module_mapSvg__vN0LV {\n position: absolute;\n inset: 0;\n display: block;\n pointer-events: none;\n -webkit-tap-highlight-color: transparent;\n tap-highlight-color: transparent;\n}\n\n/* 可点击地块:点击选中由 viewport 统一处理,此处保留 hover */\n.index-module_boundaryPolygon__uHe-E {\n cursor: grab;\n pointer-events: auto;\n -webkit-tap-highlight-color: transparent;\n tap-highlight-color: transparent;\n outline: none;\n -webkit-touch-callout: none;\n}\n\n.index-module_container__nNYv7:active {\n cursor: grabbing;\n}\n\n.index-module_boundaryPolygon__uHe-E:active {\n cursor: grabbing;\n}\n\n/* Map 模式:OverlayViewF 内根节点,铺满 overlay 像素区域 */\n.index-module_googleOverlayRoot__TQ3II {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n overflow: visible;\n}\n\n/* HTML overlay 层:CSS rotate 与 MowerMapRenderer OverlayViewF 一致,子元素自行反向补偿 */\n.index-module_mapOverlayLayer__7jTDy {\n position: absolute;\n inset: 0;\n transform-origin: 50% 50%;\n pointer-events: none;\n z-index: 2;\n}\n\n/* 分区名气泡层,绝对定位覆盖在 SVG 之上 */\n.index-module_labelsLayer__Rcikw {\n position: absolute;\n inset: 0;\n pointer-events: none;\n}\n\n.index-module_label__xo3Kc {\n position: absolute;\n display: flex;\n flex-direction: column;\n align-items: center;\n pointer-events: auto;\n cursor: grab;\n white-space: nowrap;\n -webkit-tap-highlight-color: transparent;\n tap-highlight-color: transparent;\n outline: none;\n -webkit-touch-callout: none;\n}\n\n.index-module_label__xo3Kc:active {\n cursor: grabbing;\n}\n\n.index-module_labelOrderOnly__TDLBU {\n gap: 0;\n}\n\n/* H5 名称标签:气泡宽度 / 文案最大宽度由 constants.ts 内联样式控制 */\n.index-module_labelH5Wrap__Es5cA {\n white-space: normal;\n}\n\n.index-module_labelPill__7jnOo {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: none;\n}\n\n.index-module_labelPillH5__iPeHi {\n box-sizing: border-box;\n}\n\n.index-module_labelText__ialST {\n word-break: break-word;\n text-align: center;\n}\n\n.index-module_labelTextH5__jz8SO {\n max-width: 100%;\n white-space: normal;\n overflow-wrap: anywhere;\n line-height: 1.33;\n}\n\n/* 选中序号徽章:尺寸与颜色由 constants 按 platform 注入 */\n.index-module_selectionOrderBadge__uj7LX {\n flex-shrink: 0;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.index-module_boundaryPolygonIsolated__syN4V {\n cursor: not-allowed;\n}\n\n.index-module_boundaryPolygonIsolated__syN4V:active {\n cursor: grabbing;\n}\n\n.index-module_labelIsolated__K3WAB {\n cursor: not-allowed;\n pointer-events: auto;\n}\n\n.index-module_labelIsolated__K3WAB:active {\n cursor: grabbing;\n}\n\n.index-module_labelIsolatedLayout__k-rwI {\n gap: 4px;\n}\n\n.index-module_isolatedIconBelow__PuVIF {\n position: static;\n transform: none;\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n pointer-events: none;\n}\n\n.index-module_isolatedIconBelow__PuVIF.index-module_isolatedIconWeb__iPkYp {\n width: 20px;\n height: 20px;\n}\n\n.index-module_isolatedIcon__Vbxl0 {\n position: absolute;\n width: 24px;\n height: 24px;\n left: 50%;\n bottom: calc(100% + 4px);\n transform: translateX(-50%);\n}\n\n.index-module_isolatedIconWeb__iPkYp {\n width: 20px;\n height: 20px;\n bottom: calc(100% + 2px);\n}";
|
|
31803
|
+
var styles = {"container":"index-module_container__nNYv7","mapSvgStack":"index-module_mapSvgStack__nz2s2","gridSvg":"index-module_gridSvg__MoJD6","mapSvg":"index-module_mapSvg__vN0LV","boundaryPolygon":"index-module_boundaryPolygon__uHe-E","googleOverlayRoot":"index-module_googleOverlayRoot__TQ3II","mapOverlayLayer":"index-module_mapOverlayLayer__7jTDy","labelsLayer":"index-module_labelsLayer__Rcikw","label":"index-module_label__xo3Kc","labelOrderOnly":"index-module_labelOrderOnly__TDLBU","labelH5Wrap":"index-module_labelH5Wrap__Es5cA","labelPill":"index-module_labelPill__7jnOo","labelPillH5":"index-module_labelPillH5__iPeHi","labelText":"index-module_labelText__ialST","labelTextH5":"index-module_labelTextH5__jz8SO","selectionOrderBadge":"index-module_selectionOrderBadge__uj7LX","boundaryPolygonIsolated":"index-module_boundaryPolygonIsolated__syN4V","labelIsolated":"index-module_labelIsolated__K3WAB","labelIsolatedLayout":"index-module_labelIsolatedLayout__k-rwI","isolatedIconBelow":"index-module_isolatedIconBelow__PuVIF","isolatedIconWeb":"index-module_isolatedIconWeb__iPkYp"};
|
|
31884
31804
|
styleInject(css_248z);
|
|
31885
31805
|
|
|
31886
31806
|
const PARTITION_BOUNDARY_ID_ATTR$1 = 'data-partition-boundary-id';
|
|
31887
|
-
const SelectableBoundaryElement = ({ data, boundaryColors, boundaryStrokePx, isIsolated = false, selected, hovered, viewBoxWidth, viewBoxHeight,
|
|
31807
|
+
const SelectableBoundaryElement = ({ data, boundaryColors, boundaryStrokePx, isIsolated = false, selected, hovered, viewBoxWidth, viewBoxHeight, containerWidth, containerHeight, onHoverChange, onBoundaryClick, }) => {
|
|
31888
31808
|
const style = data.style || {};
|
|
31889
31809
|
const boundaryId = Number(data.id);
|
|
31890
31810
|
const colors = boundaryColors;
|
|
31891
|
-
const strokePx = boundaryStrokePx ?? {
|
|
31892
|
-
default: PARTITION_BOUNDARY_TARGET_SCREEN_STROKE_PX,
|
|
31893
|
-
emphasized: PARTITION_BOUNDARY_EMPHASIZED_TARGET_SCREEN_STROKE_PX,
|
|
31894
|
-
};
|
|
31811
|
+
const strokePx = boundaryStrokePx ?? { ...WEB_PARTITION_BOUNDARY_STROKE_PX };
|
|
31895
31812
|
const pointsString = useMemo(() => data.points.map((point) => `${point[0]},${point[1]}`).join(' '), [data.points]);
|
|
31896
31813
|
const fillColor = useMemo(() => {
|
|
31897
31814
|
if (isIsolated)
|
|
@@ -31914,31 +31831,16 @@ const SelectableBoundaryElement = ({ data, boundaryColors, boundaryStrokePx, isI
|
|
|
31914
31831
|
return style.lineColor || colors.defaultStroke;
|
|
31915
31832
|
}, [colors, hovered, isIsolated, selected, style.lineColor]);
|
|
31916
31833
|
const strokeWidth = useMemo(() => {
|
|
31917
|
-
let baseWidth;
|
|
31918
|
-
let emphasized = false;
|
|
31919
|
-
if (isIsolated)
|
|
31920
|
-
baseWidth = colors.isolatedStrokeWidth;
|
|
31921
|
-
else if (selected) {
|
|
31922
|
-
emphasized = true;
|
|
31923
|
-
baseWidth = hovered ? colors.selectedHoverStrokeWidth : colors.selectedStrokeWidth;
|
|
31924
|
-
}
|
|
31925
|
-
else if (hovered) {
|
|
31926
|
-
emphasized = true;
|
|
31927
|
-
baseWidth = colors.hoverStrokeWidth;
|
|
31928
|
-
}
|
|
31929
|
-
else
|
|
31930
|
-
baseWidth = colors.defaultStrokeWidth;
|
|
31931
31834
|
const viewBox = { width: viewBoxWidth, height: viewBoxHeight };
|
|
31932
|
-
|
|
31835
|
+
const targetScreenStrokePx = !isIsolated && (selected || hovered) ? strokePx.selected : strokePx.default;
|
|
31836
|
+
return scaleStrokeWidthForViewBox(viewBox, {
|
|
31933
31837
|
containerWidth,
|
|
31934
31838
|
containerHeight,
|
|
31935
|
-
|
|
31839
|
+
targetScreenStrokePx,
|
|
31936
31840
|
});
|
|
31937
31841
|
}, [
|
|
31938
|
-
colors,
|
|
31939
31842
|
containerHeight,
|
|
31940
31843
|
containerWidth,
|
|
31941
|
-
fitViewBox,
|
|
31942
31844
|
hovered,
|
|
31943
31845
|
isIsolated,
|
|
31944
31846
|
selected,
|
|
@@ -31958,7 +31860,7 @@ const SelectableBoundaryElement = ({ data, boundaryColors, boundaryStrokePx, isI
|
|
|
31958
31860
|
};
|
|
31959
31861
|
var SelectableBoundaryElement$1 = memo(SelectableBoundaryElement);
|
|
31960
31862
|
|
|
31961
|
-
const PartitionPickerSvg = ({ svgElementDatas, viewBox,
|
|
31863
|
+
const PartitionPickerSvg = ({ svgElementDatas, viewBox, containerWidth, containerHeight, mapRotation = 0, boundaryColors, boundaryStrokePx, isolatedBoundaryIds, selectedIds, hoveredId, onHoverChange, onBoundaryClick, }) => {
|
|
31962
31864
|
const boundaries = (svgElementDatas[DataType.BOUNDARY] || []);
|
|
31963
31865
|
const channels = (svgElementDatas[DataType.CHANNEL] || []);
|
|
31964
31866
|
const selectedIdSet = useMemo(() => new Set(selectedIds), [selectedIds]);
|
|
@@ -31970,7 +31872,7 @@ const PartitionPickerSvg = ({ svgElementDatas, viewBox, fitViewBox, containerWid
|
|
|
31970
31872
|
}, [mapRotation, viewBox.x, viewBox.y, viewBox.width, viewBox.height]);
|
|
31971
31873
|
const mapContent = (jsxs(Fragment, { children: [jsx(GElement, { type: "boundary", children: boundaries.map((item) => {
|
|
31972
31874
|
const boundaryId = Number(item.id);
|
|
31973
|
-
return (jsx(SelectableBoundaryElement$1, { data: item, boundaryColors: boundaryColors, boundaryStrokePx: boundaryStrokePx, isIsolated: isolatedBoundaryIds.has(boundaryId), selected: selectedIdSet.has(boundaryId), hovered: hoveredId === boundaryId, viewBoxWidth: viewBox.width, viewBoxHeight: viewBox.height,
|
|
31875
|
+
return (jsx(SelectableBoundaryElement$1, { data: item, boundaryColors: boundaryColors, boundaryStrokePx: boundaryStrokePx, isIsolated: isolatedBoundaryIds.has(boundaryId), selected: selectedIdSet.has(boundaryId), hovered: hoveredId === boundaryId, viewBoxWidth: viewBox.width, viewBoxHeight: viewBox.height, containerWidth: containerWidth, containerHeight: containerHeight, onHoverChange: onHoverChange, onBoundaryClick: onBoundaryClick }, item.id));
|
|
31974
31876
|
}) }), jsxs(GElement, { type: "channel", children: [jsx(ChannelClipPath, {}), channels.map((item) => (jsx(ChannelElement, { data: item }, item.id)))] })] }));
|
|
31975
31877
|
return (jsx("svg", { className: styles.mapSvg, xmlns: "http://www.w3.org/2000/svg", viewBox: viewBoxToString(viewBox), width: "100%", height: "100%", preserveAspectRatio: "xMidYMid meet", shapeRendering: "geometricPrecision", children: mapContentTransform ? (jsx("g", { transform: mapContentTransform, children: mapContent })) : (mapContent) }));
|
|
31976
31878
|
};
|
|
@@ -32010,10 +31912,21 @@ const MapGridBackground = ({ viewBox, gridStyle }) => {
|
|
|
32010
31912
|
var MapGridBackground$1 = memo(MapGridBackground);
|
|
32011
31913
|
|
|
32012
31914
|
const PartitionPickerGridSvg = ({ viewBox, gridStyle }) => {
|
|
32013
|
-
return (jsx("svg", { className: styles.gridSvg, "data-viewport-background": "true", xmlns: "http://www.w3.org/2000/svg", viewBox: viewBoxToString(viewBox), width: "100%", height: "100%",
|
|
31915
|
+
return (jsx("svg", { className: styles.gridSvg, "data-viewport-background": "true", xmlns: "http://www.w3.org/2000/svg", viewBox: viewBoxToString(viewBox), width: "100%", height: "100%",
|
|
31916
|
+
// 设置缩放的规则
|
|
31917
|
+
//等比缩放 viewBox 内容,使其完整落在容器内;
|
|
31918
|
+
//水平、垂直都居中;
|
|
31919
|
+
//比例不一致时,上下或左右留空(letterboxing),不裁切、不拉伸变形。
|
|
31920
|
+
preserveAspectRatio: "xMidYMid meet",
|
|
31921
|
+
/**
|
|
31922
|
+
* 控制浏览器如何绘制路径/线条:
|
|
31923
|
+
* geometricPrecision:优先几何精度,线条更平滑、对齐更稳,缩放时不易发虚或抖动。
|
|
31924
|
+
* 网格是大量细线,用这个属性能让缩放/平移时网格更清晰稳定。
|
|
31925
|
+
*/
|
|
31926
|
+
shapeRendering: "geometricPrecision", "aria-hidden": true, children: jsx(MapGridBackground$1, { viewBox: viewBox, gridStyle: gridStyle }) }));
|
|
32014
31927
|
};
|
|
32015
31928
|
|
|
32016
|
-
const PartitionNameLabels = ({ items, selectedIds, labelStyles,
|
|
31929
|
+
const PartitionNameLabels = ({ items, selectedIds, labelStyles, platform = PlatformType.WEB, showSelectionOrder = false, rotation = 0, onHoverChange, onBoundaryClick, }) => {
|
|
32017
31930
|
const isWeb = platform === PlatformType.WEB;
|
|
32018
31931
|
const orderBadgeStyle = useMemo(() => ({
|
|
32019
31932
|
width: labelStyles.selectionOrderBadge.width,
|
|
@@ -32023,18 +31936,18 @@ const PartitionNameLabels = ({ items, selectedIds, labelStyles, labelMinScreenWi
|
|
|
32023
31936
|
color: labelStyles.selectionOrderBadge.color,
|
|
32024
31937
|
fontSize: `${labelStyles.selectionOrderBadge.fontSize}px`,
|
|
32025
31938
|
fontWeight: labelStyles.selectionOrderBadge.fontWeight,
|
|
31939
|
+
fontFamily: labelStyles.selectionOrderBadge.fontFamily,
|
|
32026
31940
|
lineHeight: labelStyles.selectionOrderBadge.lineHeight,
|
|
32027
31941
|
}), [labelStyles]);
|
|
32028
31942
|
return (jsx("div", { className: styles.labelsLayer, children: items.map((item) => {
|
|
32029
31943
|
const isIsolated = item.isIsolated === true;
|
|
32030
31944
|
const selected = !isIsolated && selectedIds.includes(item.id);
|
|
32031
31945
|
const selectionOrder = selected ? selectedIds.indexOf(item.id) + 1 : null;
|
|
32032
|
-
const isLargeEnough = item.screenWidthPx >
|
|
31946
|
+
const isLargeEnough = item.screenWidthPx > H5_PARTITION_LABEL_MIN_SCREEN_WIDTH_PX;
|
|
32033
31947
|
// Web 始终展示名称;H5 按屏幕宽度决定
|
|
32034
31948
|
const showNameLabel = isWeb || isLargeEnough;
|
|
32035
31949
|
const showOrderBadge = showSelectionOrder && selected && selectionOrder != null;
|
|
32036
31950
|
const h5OrderOnly = !isWeb && showOrderBadge && !isLargeEnough;
|
|
32037
|
-
const h5OrderWithName = !isWeb && showOrderBadge && isLargeEnough;
|
|
32038
31951
|
if (!showNameLabel && !showOrderBadge && !isIsolated) {
|
|
32039
31952
|
return null;
|
|
32040
31953
|
}
|
|
@@ -32043,18 +31956,21 @@ const PartitionNameLabels = ({ items, selectedIds, labelStyles, labelMinScreenWi
|
|
|
32043
31956
|
styles.label,
|
|
32044
31957
|
!isWeb && showNameLabel ? styles.labelH5Wrap : '',
|
|
32045
31958
|
isIsolated ? styles.labelIsolated : '',
|
|
32046
|
-
isWeb && showOrderBadge ? styles.labelWithOrder : '',
|
|
32047
|
-
h5OrderWithName ? styles.labelWithOrderH5 : '',
|
|
32048
31959
|
h5OrderOnly ? styles.labelOrderOnly : '',
|
|
32049
31960
|
isIsolated ? styles.labelIsolatedLayout : '',
|
|
32050
31961
|
]
|
|
32051
31962
|
.filter(Boolean)
|
|
32052
31963
|
.join(' ');
|
|
31964
|
+
const showOrderWithName = showOrderBadge && showNameLabel;
|
|
31965
|
+
const selectionOrderGapPx = isWeb
|
|
31966
|
+
? WEB_SELECTION_ORDER_GAP_PX
|
|
31967
|
+
: H5_SELECTION_ORDER_GAP_PX;
|
|
32053
31968
|
const boundaryIdProps = isIsolated ? {} : { [PARTITION_BOUNDARY_ID_ATTR$1]: item.id };
|
|
32054
31969
|
return (jsxs("div", { className: labelClassName, style: {
|
|
32055
31970
|
left: `${item.leftPct}%`,
|
|
32056
31971
|
top: `${item.topPct}%`,
|
|
32057
31972
|
transform: `translate(-50%, -50%) rotate(${-rotation}deg)`,
|
|
31973
|
+
...(showOrderWithName ? { gap: selectionOrderGapPx } : undefined),
|
|
32058
31974
|
}, ...boundaryIdProps, onMouseEnter: isIsolated ? undefined : () => onHoverChange(item.id), onMouseLeave: isIsolated ? undefined : () => onHoverChange(null), onClick: onBoundaryClick && !isIsolated
|
|
32059
31975
|
? (event) => {
|
|
32060
31976
|
event.stopPropagation();
|
|
@@ -32069,7 +31985,7 @@ const DEFAULT_BACKGROUND = PARTITION_PICKER_GRID_BASE_COLOR;
|
|
|
32069
31985
|
const PARTITION_BOUNDARY_ID_ATTR = 'data-partition-boundary-id';
|
|
32070
31986
|
/** Map 模式下 OverlayViewF 默认 z-index */
|
|
32071
31987
|
const DEFAULT_OVERLAY_Z_INDEX = 100;
|
|
32072
|
-
const MowerPartitionPickerMap = forwardRef(({ mapJson, mapConfig, pickerStyleConfig, sn = '', platform = PlatformType.WEB, width, height, padding =
|
|
31988
|
+
const MowerPartitionPickerMap = forwardRef(({ mapJson, mapConfig, pickerStyleConfig, sn = '', platform = PlatformType.WEB, width, height, padding = 0, backgroundColor = DEFAULT_BACKGROUND, defaultTransform, mapRef, minZoom = 0.5, maxZoom = 3, enablePanZoom = true, refitOnResize = true, onSizeChange, selectedBoundaryIds, defaultSelectedBoundaryIds, onSelectionChange, hoveredBoundaryId, defaultHoveredBoundaryId, onBoundaryHoverChange, showSelectionOrder = false, zIndex = DEFAULT_OVERLAY_Z_INDEX, className, style, }, ref) => {
|
|
32073
31989
|
/**
|
|
32074
31990
|
* 是否为 Map 模式(传入 mapRef 时为 true):
|
|
32075
31991
|
* - true:Google Maps 底图 + OverlayViewF,平移/缩放/fit 由底图负责
|
|
@@ -32080,8 +31996,34 @@ const MowerPartitionPickerMap = forwardRef(({ mapJson, mapConfig, pickerStyleCon
|
|
|
32080
31996
|
const channelClipPathId = useMemo(() => createChannelClipPathId({ sn, reactId: reactInstanceId }), [sn, reactInstanceId]);
|
|
32081
31997
|
/** 外部 pickerStyleConfig 与内置 platform 默认值合并后的最终外观(地块/标签/网格等) */
|
|
32082
31998
|
const mergedPickerStyles = useMemo(() => resolvePartitionPickerStyles(platform, pickerStyleConfig), [pickerStyleConfig, platform]);
|
|
32083
|
-
/** Standalone
|
|
32084
|
-
const resolvedBackgroundColor =
|
|
31999
|
+
/** Standalone 容器背景与 grid.baseColor 对齐(合并后的最终值) */
|
|
32000
|
+
const resolvedBackgroundColor = useMemo(() => {
|
|
32001
|
+
if (isMapMode)
|
|
32002
|
+
return undefined;
|
|
32003
|
+
if (pickerStyleConfig?.grid?.baseColor != null) {
|
|
32004
|
+
return mergedPickerStyles.grid.baseColor;
|
|
32005
|
+
}
|
|
32006
|
+
return backgroundColor ?? mergedPickerStyles.grid.baseColor;
|
|
32007
|
+
}, [
|
|
32008
|
+
backgroundColor,
|
|
32009
|
+
isMapMode,
|
|
32010
|
+
mergedPickerStyles.grid.baseColor,
|
|
32011
|
+
pickerStyleConfig?.grid?.baseColor,
|
|
32012
|
+
]);
|
|
32013
|
+
/** Standalone 网格层:backgroundColor 未显式指定 grid.baseColor 时与容器背景同步 */
|
|
32014
|
+
const standaloneGridStyle = useMemo(() => {
|
|
32015
|
+
if (pickerStyleConfig?.grid?.baseColor != null) {
|
|
32016
|
+
return mergedPickerStyles.grid;
|
|
32017
|
+
}
|
|
32018
|
+
if (backgroundColor != null) {
|
|
32019
|
+
return { ...mergedPickerStyles.grid, baseColor: backgroundColor };
|
|
32020
|
+
}
|
|
32021
|
+
return mergedPickerStyles.grid;
|
|
32022
|
+
}, [
|
|
32023
|
+
backgroundColor,
|
|
32024
|
+
mergedPickerStyles.grid,
|
|
32025
|
+
pickerStyleConfig?.grid?.baseColor,
|
|
32026
|
+
]);
|
|
32085
32027
|
const mergedMapConfig = useMemo(() => merge$1({}, DEFAULT_STYLES, getPartitionPickerMapConfig(platform), mapConfig), [mapConfig, platform]);
|
|
32086
32028
|
const svgElementDatas = useMemo(() => UnifiedMapDataProcessor.processMapData(mapJson, mergedMapConfig) || {}, [mapJson, mergedMapConfig]);
|
|
32087
32029
|
/** 地图 Y 轴相对正北的偏移(度),与 MowerMapRenderer.originNorthRotate 一致 */
|
|
@@ -32156,7 +32098,7 @@ const MowerPartitionPickerMap = forwardRef(({ mapJson, mapConfig, pickerStyleCon
|
|
|
32156
32098
|
}
|
|
32157
32099
|
}, [isMapMode, isReady, onSizeChange, pxWidth, pxHeight]);
|
|
32158
32100
|
/** Standalone:平移/缩放 viewBox;Map 模式 enablePanZoom 关闭,仅保留 hook 结构 */
|
|
32159
|
-
const { viewBox: standaloneViewBox, gridViewBox,
|
|
32101
|
+
const { viewBox: standaloneViewBox, gridViewBox, resetView: standaloneResetView, fitToView: standaloneFitToView, } = useMapViewport({
|
|
32160
32102
|
mapJson,
|
|
32161
32103
|
containerRef,
|
|
32162
32104
|
width: pxWidth,
|
|
@@ -32171,7 +32113,6 @@ const MowerPartitionPickerMap = forwardRef(({ mapJson, mapConfig, pickerStyleCon
|
|
|
32171
32113
|
});
|
|
32172
32114
|
/** 按模式选取 viewBox / 尺寸 / 旋转 / 就绪状态(Map 与 Standalone 数据源不同) */
|
|
32173
32115
|
const viewBox = isMapMode ? googleOverlay.svgViewBox : standaloneViewBox;
|
|
32174
|
-
const fitViewBox = isMapMode ? googleOverlay.fitViewBox : standaloneFitViewBox;
|
|
32175
32116
|
const overlayWidth = isMapMode ? googleOverlay.overlayWidth : pxWidth;
|
|
32176
32117
|
const overlayHeight = isMapMode ? googleOverlay.overlayHeight : pxHeight;
|
|
32177
32118
|
const actureRotate = isMapMode ? googleOverlay.actureRotate : standaloneActureRotate;
|
|
@@ -32245,18 +32186,18 @@ const MowerPartitionPickerMap = forwardRef(({ mapJson, mapConfig, pickerStyleCon
|
|
|
32245
32186
|
...(isMapMode ? {} : layoutStyle),
|
|
32246
32187
|
}), [isMapMode, layoutStyle, resolvedBackgroundColor, style]);
|
|
32247
32188
|
/** 地块 + 通道 SVG;Map 模式不在 SVG 内旋转(由 OverlayViewF rotate 处理) */
|
|
32248
|
-
const mapSvgLayer = viewBox && isLayersReady ? (jsx(PartitionPickerSvg, { svgElementDatas: svgElementDatas, viewBox: viewBox,
|
|
32189
|
+
const mapSvgLayer = viewBox && isLayersReady ? (jsx(PartitionPickerSvg, { svgElementDatas: svgElementDatas, viewBox: viewBox, containerWidth: overlayWidth, containerHeight: overlayHeight, mapRotation: isMapMode ? 0 : actureRotate, boundaryColors: mergedPickerStyles.boundary, boundaryStrokePx: mergedPickerStyles.boundaryStrokePx, isolatedBoundaryIds: isolatedBoundaryIds, selectedIds: selectedIds, hoveredId: hoveredId, onHoverChange: handleHoverChange, onBoundaryClick: isMapMode ? handleBoundaryClick : undefined })) : null;
|
|
32249
32190
|
/**
|
|
32250
32191
|
* 分区标签 + 充电桩 HTML 层。
|
|
32251
32192
|
* Map 模式:平铺于 overlay 根节点;Standalone:包在 mapOverlayLayer 内做 CSS 旋转。
|
|
32252
32193
|
*/
|
|
32253
|
-
const overlayLayers = viewBox && isLayersReady ? (isMapMode ? (jsxs(Fragment, { children: [jsx(PartitionNameLabels, { items: labelItems, selectedIds: selectedIds, labelStyles: mergedPickerStyles.labels,
|
|
32194
|
+
const overlayLayers = viewBox && isLayersReady ? (isMapMode ? (jsxs(Fragment, { children: [jsx(PartitionNameLabels, { items: labelItems, selectedIds: selectedIds, labelStyles: mergedPickerStyles.labels, platform: platform, showSelectionOrder: showSelectionOrder, rotation: actureRotate, onHoverChange: handleHoverChange, onBoundaryClick: handleBoundaryClick }), jsx(CharginPile, { viewBox: viewBox, rotation: actureRotate })] })) : (jsxs("div", { className: styles.mapOverlayLayer, style: mapOverlayLayerStyle, children: [jsx(PartitionNameLabels, { items: labelItems, selectedIds: selectedIds, labelStyles: mergedPickerStyles.labels, platform: platform, showSelectionOrder: showSelectionOrder, rotation: actureRotate, onHoverChange: handleHoverChange }), jsx(CharginPile, { viewBox: viewBox, rotation: actureRotate, viewRotationMode: "overlay-parent", containerWidth: overlayWidth, containerHeight: overlayHeight, sizeInSvgUnits: true, minDisplaySizePx: PARTITION_PICKER_CHARGING_PILE_MIN_DISPLAY_PX })] }))) : null;
|
|
32254
32195
|
/** Map 模式:渲染 OverlayViewF,底图为 Google Maps */
|
|
32255
32196
|
if (isMapMode && mapRef) {
|
|
32256
32197
|
return (jsx(CommonContextProvider, { value: commonValue, children: jsx(SvgEditContextProvider, { value: svgEditValue, children: jsx(OverlayViewF, { map: mapRef, mapPaneName: "overlayMouseTarget", bounds: googleOverlay.bounds ?? undefined, rotate: actureRotate, zIndex: zIndex, onDraw: googleOverlay.handleOverlayDraw, children: jsxs("div", { className: `${styles.googleOverlayRoot} ${className || ''}`, style: containerStyle, onMouseLeave: () => setHoveredId(null), children: [mapSvgLayer, overlayLayers] }) }) }) }));
|
|
32257
32198
|
}
|
|
32258
32199
|
/** Standalone 模式:固定容器 + 网格底图 + 双层 SVG / HTML overlay */
|
|
32259
|
-
return (jsx(CommonContextProvider, { value: commonValue, children: jsx(SvgEditContextProvider, { value: svgEditValue, children: jsx("div", { ref: containerRef, className: `${styles.container} ${className || ''}`, "data-viewport-background": "true", style: containerStyle, onMouseLeave: () => setHoveredId(null), children: isLayersReady && (jsxs(Fragment, { children: [jsxs("div", { className: styles.mapSvgStack, children: [jsx(PartitionPickerGridSvg, { viewBox: gridViewBox, gridStyle:
|
|
32200
|
+
return (jsx(CommonContextProvider, { value: commonValue, children: jsx(SvgEditContextProvider, { value: svgEditValue, children: jsx("div", { ref: containerRef, className: `${styles.container} ${className || ''}`, "data-viewport-background": "true", style: containerStyle, onMouseLeave: () => setHoveredId(null), children: isLayersReady && (jsxs(Fragment, { children: [jsxs("div", { className: styles.mapSvgStack, children: [jsx(PartitionPickerGridSvg, { viewBox: gridViewBox, gridStyle: standaloneGridStyle }), mapSvgLayer] }), overlayLayers] })) }) }) }));
|
|
32260
32201
|
});
|
|
32261
32202
|
MowerPartitionPickerMap.displayName = 'MowerPartitionPickerMap';
|
|
32262
32203
|
|