@fleet-frontend/mower-maps 0.2.5-beta.9 → 0.2.6-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/config/constants.d.ts +3 -0
  2. package/dist/config/constants.d.ts.map +1 -1
  3. package/dist/config/styles.d.ts.map +1 -1
  4. package/dist/context/common.d.ts +17 -0
  5. package/dist/context/common.d.ts.map +1 -1
  6. package/dist/index.d.ts +7 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.esm.js +2660 -542
  9. package/dist/index.js +2671 -540
  10. package/dist/render/BoundarySvgRender.d.ts +3 -1
  11. package/dist/render/BoundarySvgRender.d.ts.map +1 -1
  12. package/dist/render/MowerMapRenderer.d.ts.map +1 -1
  13. package/dist/render/MowerPartitionPickerMap.d.ts +17 -0
  14. package/dist/render/MowerPartitionPickerMap.d.ts.map +1 -0
  15. package/dist/render/antennas/useAntennaInfo.d.ts.map +1 -1
  16. package/dist/render/boundaryLabels/useBoundaryLabels.d.ts.map +1 -1
  17. package/dist/render/charginPile/index.d.ts +11 -1
  18. package/dist/render/charginPile/index.d.ts.map +1 -1
  19. package/dist/render/charginPile/useChargingPile.d.ts +11 -1
  20. package/dist/render/charginPile/useChargingPile.d.ts.map +1 -1
  21. package/dist/render/partitionPicker/constants.d.ts +169 -0
  22. package/dist/render/partitionPicker/constants.d.ts.map +1 -0
  23. package/dist/render/partitionPicker/hooks/useBoundaryHover.d.ts +18 -0
  24. package/dist/render/partitionPicker/hooks/useBoundaryHover.d.ts.map +1 -0
  25. package/dist/render/partitionPicker/hooks/useBoundarySelection.d.ts +20 -0
  26. package/dist/render/partitionPicker/hooks/useBoundarySelection.d.ts.map +1 -0
  27. package/dist/render/partitionPicker/hooks/useContainerSize.d.ts +16 -0
  28. package/dist/render/partitionPicker/hooks/useContainerSize.d.ts.map +1 -0
  29. package/dist/render/partitionPicker/hooks/useGoogleMapsOverlay.d.ts +31 -0
  30. package/dist/render/partitionPicker/hooks/useGoogleMapsOverlay.d.ts.map +1 -0
  31. package/dist/render/partitionPicker/hooks/useIsolatedBoundaryIds.d.ts +6 -0
  32. package/dist/render/partitionPicker/hooks/useIsolatedBoundaryIds.d.ts.map +1 -0
  33. package/dist/render/partitionPicker/hooks/useMapViewport.d.ts +62 -0
  34. package/dist/render/partitionPicker/hooks/useMapViewport.d.ts.map +1 -0
  35. package/dist/render/partitionPicker/hooks/usePartitionLabelItems.d.ts +22 -0
  36. package/dist/render/partitionPicker/hooks/usePartitionLabelItems.d.ts.map +1 -0
  37. package/dist/render/partitionPicker/index.d.ts +9 -0
  38. package/dist/render/partitionPicker/index.d.ts.map +1 -0
  39. package/dist/render/partitionPicker/layers/MapGridBackground.d.ts +22 -0
  40. package/dist/render/partitionPicker/layers/MapGridBackground.d.ts.map +1 -0
  41. package/dist/render/partitionPicker/layers/PartitionNameLabels.d.ts +21 -0
  42. package/dist/render/partitionPicker/layers/PartitionNameLabels.d.ts.map +1 -0
  43. package/dist/render/partitionPicker/layers/PartitionPickerGridSvg.d.ts +10 -0
  44. package/dist/render/partitionPicker/layers/PartitionPickerGridSvg.d.ts.map +1 -0
  45. package/dist/render/partitionPicker/layers/PartitionPickerSvg.d.ts +24 -0
  46. package/dist/render/partitionPicker/layers/PartitionPickerSvg.d.ts.map +1 -0
  47. package/dist/render/partitionPicker/layers/SelectableBoundaryElement.d.ts +34 -0
  48. package/dist/render/partitionPicker/layers/SelectableBoundaryElement.d.ts.map +1 -0
  49. package/dist/render/partitionPicker/types.d.ts +163 -0
  50. package/dist/render/partitionPicker/types.d.ts.map +1 -0
  51. package/dist/render/partitionPicker/viewportUtils.d.ts +100 -0
  52. package/dist/render/partitionPicker/viewportUtils.d.ts.map +1 -0
  53. package/dist/render/svgElement/ChannelClipPath/constants.d.ts +9 -0
  54. package/dist/render/svgElement/ChannelClipPath/constants.d.ts.map +1 -0
  55. package/dist/render/svgElement/ChannelElement/index.d.ts.map +1 -1
  56. package/dist/render/svgElement/ObstacleElement/index.d.ts.map +1 -1
  57. package/dist/render/svgElement/PathElement/index.d.ts.map +1 -1
  58. package/dist/render/svgElement/PolygonELement/components/Magnifier/index.d.ts.map +1 -1
  59. package/dist/render/svgElement/PolygonELement/components/Tooltip.d.ts.map +1 -1
  60. package/dist/render/svgElement/PolygonELement/index.d.ts.map +1 -1
  61. package/dist/render/svgElement/TransformWrapper/DoodleTransformWrapper/DoodleTransformWrapper.d.ts.map +1 -1
  62. package/dist/render/svgElement/TransformWrapper/VisionOffTransformWrapper/VisionOffTransformWrapper.d.ts.map +1 -1
  63. package/dist/types/renderer.d.ts +21 -0
  64. package/dist/types/renderer.d.ts.map +1 -1
  65. package/dist/utils/dateTimeUtils.d.ts +6 -2
  66. package/dist/utils/dateTimeUtils.d.ts.map +1 -1
  67. package/dist/utils/googleStaticMapSign.d.ts +17 -0
  68. package/dist/utils/googleStaticMapSign.d.ts.map +1 -0
  69. package/dist/utils/mapBounds.d.ts.map +1 -1
  70. package/dist/utils/pathData.d.ts +2 -0
  71. package/dist/utils/pathData.d.ts.map +1 -0
  72. package/package.json +1 -1
@@ -6,9 +6,11 @@ interface BoundarySvgRenderProps {
6
6
  unStructMapData: UnstructMapData;
7
7
  id: number;
8
8
  maxWidth?: number;
9
+ maxHeight?: number;
10
+ boundaryPadding?: number;
9
11
  mapConfig?: MapConfig;
10
12
  sn?: string;
11
13
  }
12
- declare const BoundarySvgRender: React.MemoExoticComponent<({ mapJson, unStructMapData, id, maxWidth, mapConfig, sn }: BoundarySvgRenderProps) => import("react/jsx-runtime").JSX.Element>;
14
+ declare const BoundarySvgRender: React.MemoExoticComponent<({ mapJson, unStructMapData, id, maxWidth, maxHeight, boundaryPadding, mapConfig, sn, }: BoundarySvgRenderProps) => import("react/jsx-runtime").JSX.Element>;
13
15
  export default BoundarySvgRender;
14
16
  //# sourceMappingURL=BoundarySvgRender.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BoundarySvgRender.d.ts","sourceRoot":"","sources":["../../src/render/BoundarySvgRender.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAK9C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAM3C,UAAU,sBAAsB;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,eAAe,CAAC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAID,QAAA,MAAM,iBAAiB,wFAC6C,sBAAsB,6CA8HzF,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"BoundarySvgRender.d.ts","sourceRoot":"","sources":["../../src/render/BoundarySvgRender.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAK9C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAO3C,UAAU,sBAAsB;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,eAAe,CAAC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAID,QAAA,MAAM,iBAAiB,qHAUlB,sBAAsB,6CAkJ1B,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MowerMapRenderer.d.ts","sourceRoot":"","sources":["../../src/render/MowerMapRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAwBf,OAAO,EAGL,qBAAqB,EACrB,mBAAmB,EAEpB,MAAM,mBAAmB,CAAC;AA0B3B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,MAAM,EAAE,GAAG,CAAC;KACb;CACF;AAMD,eAAO,MAAM,gBAAgB,mGAk0B5B,CAAC;AAIF,eAAe,gBAAgB,CAAC;AAChC,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"MowerMapRenderer.d.ts","sourceRoot":"","sources":["../../src/render/MowerMapRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KASN,MAAM,OAAO,CAAC;AAwBf,OAAO,EAGL,qBAAqB,EACrB,mBAAmB,EAEpB,MAAM,mBAAmB,CAAC;AA2B3B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,MAAM,EAAE,GAAG,CAAC;KACb;CACF;AAMD,eAAO,MAAM,gBAAgB,mGA81B5B,CAAC;AAIF,eAAe,gBAAgB,CAAC;AAChC,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * 分区选择地图
3
+ *
4
+ * 与 MowerMapRenderer 同级入口;实现细节见 render/partitionPicker/。
5
+ *
6
+ * 两种运行模式(由是否传入 mapRef 决定,见 isMapMode):
7
+ * - Standalone:网格 SVG + viewBox 平移/缩放,自包含固定容器
8
+ * - Map 模式:Google Maps 底图 + OverlayViewF 叠加层,对齐 MowerMapRenderer
9
+ */
10
+ import React from 'react';
11
+ import { MowerPartitionPickerMapProps, MowerPartitionPickerMapRef } from './partitionPicker/types';
12
+ export declare const MowerPartitionPickerMap: React.ForwardRefExoticComponent<MowerPartitionPickerMapProps & React.RefAttributes<MowerPartitionPickerMapRef>>;
13
+ export default MowerPartitionPickerMap;
14
+ export type { MowerPartitionPickerMapProps, MowerPartitionPickerMapRef, CssLength, IsolatedBoundaryTapPayload, } from './partitionPicker/types';
15
+ export type { PartitionPickerStyleConfig, PartitionPickerBoundaryColors, PartitionPickerLabelStyles, PartitionPickerGridStyle, ResolvedPartitionPickerStyles, } from './partitionPicker/constants';
16
+ export { resolvePartitionPickerStyles, getPartitionPickerColors, getPartitionPickerLabelStyles, PARTITION_PICKER_COLORS_WEB, PARTITION_PICKER_COLORS_H5, PARTITION_PICKER_LABEL_STYLES_WEB, PARTITION_PICKER_LABEL_STYLES_H5, } from './partitionPicker/constants';
17
+ //# sourceMappingURL=MowerPartitionPickerMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MowerPartitionPickerMap.d.ts","sourceRoot":"","sources":["../../src/render/MowerPartitionPickerMap.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAON,MAAM,OAAO,CAAC;AAqBf,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAiBnG,eAAO,MAAM,uBAAuB,iHA8cnC,CAAC;AAIF,eAAe,uBAAuB,CAAC;AAEvC,YAAY,EACV,4BAA4B,EAC5B,0BAA0B,EAC1B,SAAS,EACT,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,0BAA0B,EAC1B,6BAA6B,EAC7B,0BAA0B,EAC1B,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,EAC1B,iCAAiC,EACjC,gCAAgC,GACjC,MAAM,6BAA6B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAntennaInfo.d.ts","sourceRoot":"","sources":["../../../src/render/antennas/useAntennaInfo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAOxC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,UAAU,qBAAqB;IAC7B,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;CACnB;AAED,eAAO,MAAM,cAAc,GAAI,OAAM,aAAa,EAAO,EAAE,UAAS,qBAA0B;;;CA0F7F,CAAC"}
1
+ {"version":3,"file":"useAntennaInfo.d.ts","sourceRoot":"","sources":["../../../src/render/antennas/useAntennaInfo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAQxC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,UAAU,qBAAqB;IAC7B,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;CACnB;AAED,eAAO,MAAM,cAAc,GAAI,OAAM,aAAa,EAAO,EAAE,UAAS,qBAA0B;;;CA2F7F,CAAC"}
@@ -1 +1 @@
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,EAAmB,YAAY,EAAE,MAAM,SAAS,CAAC;AAExD,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;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;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,qFAQ/B,wBAAwB;;;CAoG1B,CAAC"}
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,EAAmB,YAAY,EAAE,MAAM,SAAS,CAAC;AAGxD,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;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;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,qFAQ/B,wBAAwB;;;CA2G1B,CAAC"}
@@ -7,10 +7,20 @@ interface ChargingPileProps {
7
7
  height: number;
8
8
  } | null;
9
9
  rotation?: number;
10
+ /**
11
+ * 视图旋转补偿模式,默认 overlay-parent(MowerMapRenderer);
12
+ * PartitionPicker 使用 svg-transform
13
+ */
14
+ viewRotationMode?: 'overlay-parent' | 'svg-transform';
15
+ /** 提供时按 meet + 地图旋转计算位置(PartitionPicker 等场景) */
16
+ containerWidth?: number;
17
+ containerHeight?: number;
10
18
  sizeScale?: number;
11
19
  sizeInSvgUnits?: boolean;
20
+ /** 放大镜等场景:屏幕像素下限,避免图标过小与通道线错位感(仅与 sizeInSvgUnits 一起生效) */
21
+ minDisplaySizePx?: number;
12
22
  isHighlight?: boolean;
13
23
  }
14
- declare const CharginPile: React.MemoExoticComponent<({ viewBox, rotation, sizeScale, sizeInSvgUnits, isHighlight, }: ChargingPileProps) => import("react/jsx-runtime").JSX.Element>;
24
+ declare const CharginPile: React.MemoExoticComponent<({ viewBox, rotation, viewRotationMode, containerWidth, containerHeight, sizeScale, sizeInSvgUnits, minDisplaySizePx, isHighlight, }: ChargingPileProps) => import("react/jsx-runtime").JSX.Element>;
15
25
  export default CharginPile;
16
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/render/charginPile/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAIvC,UAAU,iBAAiB;IACzB,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,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,QAAA,MAAM,WAAW,6FAOZ,iBAAiB,6CAiDrB,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/render/charginPile/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAIvC,UAAU,iBAAiB;IACzB,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;;;OAGG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,eAAe,CAAC;IACtD,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,QAAA,MAAM,WAAW,kKAWZ,iBAAiB,6CA8DrB,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -6,6 +6,16 @@ interface UseChargingPileOptions {
6
6
  height: number;
7
7
  } | null;
8
8
  rotation?: number;
9
+ /**
10
+ * 视图旋转补偿模式:
11
+ * - overlay-parent:父层 CSS rotate(MowerMapRenderer / PartitionPicker overlay 层),
12
+ * 位置不预旋转,图标角度 = rotationDegree - rotation
13
+ * - svg-transform:无父层旋转、由 SVG 内旋转驱动位置时,图标角度保持 rotationDegree(屏幕视觉不变)
14
+ */
15
+ viewRotationMode?: 'overlay-parent' | 'svg-transform';
16
+ /** 提供时按 meet + 地图旋转计算 overlay 位置(PartitionPicker 等场景) */
17
+ containerWidth?: number;
18
+ containerHeight?: number;
9
19
  }
10
20
  interface ChargingPileItem {
11
21
  leftPct: number;
@@ -14,6 +24,6 @@ interface ChargingPileItem {
14
24
  rotateDeg: number;
15
25
  imageSrc: string;
16
26
  }
17
- export declare const useChargingPile: ({ viewBox, rotation }: UseChargingPileOptions) => ChargingPileItem[];
27
+ export declare const useChargingPile: ({ viewBox, rotation, viewRotationMode, containerWidth, containerHeight, }: UseChargingPileOptions) => ChargingPileItem[];
18
28
  export {};
19
29
  //# sourceMappingURL=useChargingPile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useChargingPile.d.ts","sourceRoot":"","sources":["../../../src/render/charginPile/useChargingPile.ts"],"names":[],"mappings":"AAMA,UAAU,sBAAsB;IAC9B,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;CACnB;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,eAAe,GAAI,uBAA2B,sBAAsB,uBAmChF,CAAC"}
1
+ {"version":3,"file":"useChargingPile.d.ts","sourceRoot":"","sources":["../../../src/render/charginPile/useChargingPile.ts"],"names":[],"mappings":"AAOA,UAAU,sBAAsB;IAC9B,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;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,eAAe,CAAC;IACtD,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,eAAe,GAAI,2EAM7B,sBAAsB,uBA2ExB,CAAC"}
@@ -0,0 +1,169 @@
1
+ import { CSSProperties } from 'react';
2
+ import { MapConfig, PlatformType } from '../../types';
3
+ export declare const ISOLATED_BOUNDARY_SVG_2 = "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect width=\"20\" height=\"20\" rx=\"10\" fill=\"#8498A9\" fill-opacity=\"0.7\"/>\n<path d=\"M11.7178 12.4307C12.2201 11.9284 12.9629 11.8149 13.5752 12.0879L12.9756 12.6865C12.7427 12.6649 12.5034 12.7432 12.3223 12.917C12.3176 12.9214 12.3122 12.9251 12.3076 12.9297L11.7344 13.5029C11.4091 13.8284 11.409 14.3563 11.7344 14.6816L12.0879 15.0342C12.4133 15.3595 12.9412 15.3596 13.2666 15.0342L13.5527 14.7461L13.8408 14.46C14.011 14.2896 14.091 14.0629 14.083 13.8398L14.7002 13.2236C14.9614 13.8318 14.8443 14.5639 14.3477 15.0605L13.8613 15.5459C13.2105 16.1963 12.1556 16.1964 11.5049 15.5459L11.2314 15.2725C10.5816 14.6218 10.5815 13.5677 11.2314 12.917L11.7178 12.4307Z\" fill=\"white\"/>\n<path d=\"M12.1738 4.00488C11.6587 4.98031 10.6742 7.45647 10.8555 9.55762C11.3152 9.02665 12.5281 7.88542 13.7002 7.56934C13.2369 8.10318 12.5313 9.25837 12.1445 10.7949C11.6656 10.9223 11.2115 11.1723 10.835 11.5488L10.3496 12.0352C9.77429 12.6108 9.49095 13.367 9.49707 14.1211H4.72656C5.04472 13.1579 5.14564 10.847 3.00586 9.30957C4.04607 9.35761 5.61481 9.31003 6.83691 10.4141C6.66589 9.30985 6.83631 8.53141 4.90137 5.78711C5.69833 5.98284 7.68952 6.32958 8.74414 7.96875C9.20789 6.88364 10.4356 4.93597 12.1738 4.00488Z\" fill=\"white\"/>\n<path d=\"M14.8838 9.2666C15.5345 8.61618 16.5894 8.6153 17.2402 9.26562L17.5137 9.53906C18.164 10.19 18.1633 11.2458 17.5127 11.8965L17.0264 12.3828C16.5297 12.879 15.7985 12.9947 15.1904 12.7334L15.8115 12.1104C16.0351 12.1187 16.2619 12.0398 16.4326 11.8691L17.0068 11.2949C17.332 10.9697 17.3327 10.4417 17.0078 10.1162L16.6543 9.7627C16.3491 9.45791 15.8654 9.43902 15.5381 9.70605C15.5158 9.72417 15.4944 9.74388 15.4736 9.76465L14.9004 10.3379C14.7179 10.5204 14.6369 10.7665 14.6592 11.0049L14.0547 11.6084C13.7823 10.9964 13.8955 10.255 14.3975 9.75293L14.8838 9.2666Z\" fill=\"white\"/>\n</svg>";
4
+ /** ChannelClipPath 等内容裁剪使用的 SVG 坐标边距(与用户传入的屏幕 padding 无关) */
5
+ export declare const PARTITION_PICKER_CONTENT_CLIP_PADDING = 0;
6
+ /** 可选中地块 polygon / 标签 data 属性 */
7
+ export declare const PARTITION_BOUNDARY_ID_ATTR = "data-partition-boundary-id";
8
+ /** 孤立子地块命中标记(不可选中) */
9
+ export declare const PARTITION_ISOLATED_BOUNDARY_ID_ATTR = "data-partition-isolated-boundary-id";
10
+ /** H5:子区域屏幕宽度超过该值才展示名称标签(px);与气泡宽度一致 */
11
+ export declare const H5_PARTITION_LABEL_MIN_SCREEN_WIDTH_PX = 72;
12
+ /** H5:名称气泡总宽度(px) */
13
+ export declare const H5_PARTITION_LABEL_WIDTH_PX = 72;
14
+ /** Web:序号徽章与名称标签间距(px) */
15
+ export declare const WEB_SELECTION_ORDER_GAP_PX = 8;
16
+ /** H5:序号徽章与名称标签间距(px) */
17
+ export declare const H5_SELECTION_ORDER_GAP_PX = 4;
18
+ /** Standalone:充电桩图标最小屏幕尺寸(px),缩小全图 fit 时避免过小;放大时随 viewBox 同比缩放 */
19
+ export declare const PARTITION_PICKER_CHARGING_PILE_MIN_DISPLAY_PX = 16;
20
+ /** Web 地块描边屏幕像素宽度:未选中 2px,选中 3px */
21
+ export declare const WEB_PARTITION_BOUNDARY_STROKE_PX: {
22
+ readonly default: 2;
23
+ readonly selected: 3;
24
+ };
25
+ /** H5 地块描边屏幕像素宽度:选中与否均为 1px */
26
+ export declare const H5_PARTITION_BOUNDARY_STROKE_PX: {
27
+ readonly default: 1;
28
+ readonly selected: 1;
29
+ };
30
+ /**
31
+ * Figma bg/mapping 地图网格背景(Standalone SVG 层)
32
+ * @see https://www.figma.com/design/j0DdUYf8VFkXQ8ikkA6ZzP — node 20490:84886
33
+ */
34
+ /** 网格区域底色,也用于容器 letterbox 留白 */
35
+ export declare const PARTITION_PICKER_GRID_BASE_COLOR = "#E3E5EB";
36
+ /** 网格单元边长(SVG 地图坐标,与 viewBox 一致;zoom 时间距同比缩放) */
37
+ export declare const PARTITION_PICKER_GRID_TILE_SIZE = 10;
38
+ /** 网格线宽(地图坐标;随 zoom 同比缩放,不做屏幕像素恒定) */
39
+ export declare const PARTITION_PICKER_GRID_LINE_WIDTH = 0.2;
40
+ /** 网格交点圆点半径(地图坐标) */
41
+ export declare const PARTITION_PICKER_GRID_DOT_RADIUS = 0.6;
42
+ /** 网格层整体不透明度(Figma 约 80%) */
43
+ export declare const PARTITION_PICKER_GRID_OPACITY = 0.4;
44
+ /** 网格线与交点颜色 */
45
+ export declare const PARTITION_PICKER_GRID_STROKE = "#FFFFFF";
46
+ /** 可见范围内交点超过该数量时跳过圆点,仅保留网格线(缩小视野时减轻 DOM 压力) */
47
+ export declare const PARTITION_PICKER_GRID_MAX_INTERSECTION_DOTS = 2000;
48
+ /**
49
+ * 分区选择地图专用样式
50
+ *
51
+ * Web:Figma 灰蓝未选中地块(Vector 360)
52
+ * H5:高对比度绿色,面向卫星/深色底图
53
+ */
54
+ export declare const PARTITION_PICKER_MAP_CONFIG_WEB: MapConfig;
55
+ export declare const PARTITION_PICKER_MAP_CONFIG: MapConfig;
56
+ export interface PartitionPickerBoundaryColors {
57
+ defaultFill: string;
58
+ defaultStroke: string;
59
+ hoverFill: string;
60
+ hoverStroke: string;
61
+ selectedFill: string;
62
+ selectedStroke: string;
63
+ selectedHoverFill: string;
64
+ selectedHoverStroke: string;
65
+ isolatedFill: string;
66
+ isolatedStroke: string;
67
+ }
68
+ /** Web 端地块配色(Figma Vector 360 / 361 / 99788) */
69
+ export declare const PARTITION_PICKER_COLORS_WEB: PartitionPickerBoundaryColors;
70
+ /** H5 端地块配色 */
71
+ export declare const PARTITION_PICKER_COLORS_H5: PartitionPickerBoundaryColors;
72
+ export declare function getPartitionPickerMapConfig(platform?: PlatformType): MapConfig;
73
+ export declare function getPartitionPickerColors(platform?: PlatformType): PartitionPickerBoundaryColors;
74
+ /** 地块描边屏幕像素目标(Web / H5 平台默认值不同) */
75
+ export interface PartitionPickerBoundaryStrokePx {
76
+ default: number;
77
+ selected: number;
78
+ }
79
+ export declare function getPartitionPickerBoundaryStrokePx(platform?: PlatformType): PartitionPickerBoundaryStrokePx;
80
+ /** 分区名气泡单态样式(默认 / 选中) */
81
+ export interface PartitionPickerLabelAppearance {
82
+ backgroundColor?: string;
83
+ /** 选中态渐变背景,与 backgroundColor 二选一 */
84
+ background?: string;
85
+ color: string;
86
+ fontSize: number;
87
+ fontWeight: number | string;
88
+ padding: string;
89
+ borderRadius: number;
90
+ width?: string;
91
+ maxWidth?: string;
92
+ boxSizing?: CSSProperties['boxSizing'];
93
+ border?: string;
94
+ boxShadow?: string;
95
+ fontFamily?: string;
96
+ letterSpacing?: string;
97
+ lineHeight?: string;
98
+ }
99
+ /** 分区名气泡 + 序号徽章样式集 */
100
+ export interface PartitionPickerLabelStyles {
101
+ default: Omit<PartitionPickerLabelAppearance, 'width'> & {
102
+ width?: string;
103
+ };
104
+ selected: Omit<PartitionPickerLabelAppearance, 'width'> & {
105
+ width?: string;
106
+ };
107
+ selectionOrderBadge: {
108
+ width?: string;
109
+ height?: string;
110
+ background: string;
111
+ border: string;
112
+ color: string;
113
+ fontSize: number;
114
+ fontWeight: number | string;
115
+ fontFamily?: string;
116
+ lineHeight: string;
117
+ };
118
+ }
119
+ /** Web 分区名气泡(Figma「地块名称」/ 选中区域) */
120
+ export declare const PARTITION_PICKER_LABEL_STYLES_WEB: PartitionPickerLabelStyles;
121
+ /** H5 分区名气泡(深色底图 / 橙色渐变选中) */
122
+ export declare const PARTITION_PICKER_LABEL_STYLES_H5: PartitionPickerLabelStyles;
123
+ /** 将 PartitionPickerLabelAppearance 转为 React 内联样式 */
124
+ export declare function labelAppearanceToStyle(appearance: PartitionPickerLabelStyles['default'] | PartitionPickerLabelStyles['selected']): CSSProperties;
125
+ export declare function getPartitionPickerLabelStyles(platform?: PlatformType): PartitionPickerLabelStyles;
126
+ /** Standalone 网格底图样式 */
127
+ export interface PartitionPickerGridStyle {
128
+ baseColor: string;
129
+ strokeColor: string;
130
+ tileSize: number;
131
+ lineWidth: number;
132
+ dotRadius: number;
133
+ opacity: number;
134
+ maxIntersectionDots: number;
135
+ }
136
+ export declare const DEFAULT_PARTITION_PICKER_GRID_STYLE: PartitionPickerGridStyle;
137
+ /**
138
+ * 分区选择器外观配置(由外部传入,与内置默认值深度合并)
139
+ *
140
+ * - boundary:地块 fill / stroke 颜色(线宽见 boundaryStrokePx)
141
+ * - labels:分区名气泡与序号徽章
142
+ * - grid:Standalone 网格底图(Map 模式不渲染;baseColor 同时影响 Standalone 容器背景)
143
+ * - boundaryStrokePx:描边屏幕像素目标(Web 2/3px,H5 1px)
144
+ */
145
+ export interface PartitionPickerStyleConfig {
146
+ boundary?: Partial<PartitionPickerBoundaryColors>;
147
+ labels?: {
148
+ default?: Partial<PartitionPickerLabelStyles['default']>;
149
+ selected?: Partial<PartitionPickerLabelStyles['selected']>;
150
+ selectionOrderBadge?: Partial<PartitionPickerLabelStyles['selectionOrderBadge']>;
151
+ };
152
+ grid?: Partial<PartitionPickerGridStyle>;
153
+ boundaryStrokePx?: Partial<PartitionPickerBoundaryStrokePx>;
154
+ }
155
+ export interface ResolvedPartitionPickerStyles {
156
+ /** 地块 default / hover / selected / isolated 最终配色 */
157
+ boundary: PartitionPickerBoundaryColors;
158
+ /** 分区名气泡 + 序号徽章最终样式 */
159
+ labels: PartitionPickerLabelStyles;
160
+ /** Standalone 网格底图最终样式 */
161
+ grid: PartitionPickerGridStyle;
162
+ boundaryStrokePx: PartitionPickerBoundaryStrokePx;
163
+ }
164
+ /**
165
+ * 将 platform 内置默认值与外部 pickerStyleConfig 深度合并。
166
+ * 调用方只需覆盖变化的字段,无需改组件源码。
167
+ */
168
+ export declare function resolvePartitionPickerStyles(platform?: PlatformType, config?: PartitionPickerStyleConfig): ResolvedPartitionPickerStyles;
169
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/render/partitionPicker/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ interface UseBoundaryHoverOptions {
2
+ hoveredBoundaryId?: number | null;
3
+ defaultHoveredBoundaryId?: number | null;
4
+ onBoundaryHoverChange?: (id: number | null) => void;
5
+ }
6
+ /**
7
+ * 地块 hover 状态管理(受控 / 非受控)
8
+ *
9
+ * 用于地图与外部表格等 UI 双向联动:
10
+ * - 地图 hover → onBoundaryHoverChange → 宿主更新表格行高亮
11
+ * - 表格 hover → 宿主传入 hoveredBoundaryId → 地图同步高亮
12
+ */
13
+ export declare function useBoundaryHover({ hoveredBoundaryId, defaultHoveredBoundaryId, onBoundaryHoverChange, }: UseBoundaryHoverOptions): {
14
+ hoveredId: number;
15
+ setHoveredId: (id: number | null) => void;
16
+ };
17
+ export {};
18
+ //# sourceMappingURL=useBoundaryHover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBoundaryHover.d.ts","sourceRoot":"","sources":["../../../../src/render/partitionPicker/hooks/useBoundaryHover.ts"],"names":[],"mappings":"AAEA,UAAU,uBAAuB;IAC/B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,qBAAqB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACrD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,iBAAiB,EACjB,wBAA+B,EAC/B,qBAAqB,GACtB,EAAE,uBAAuB;;uBAQjB,MAAM,GAAG,IAAI;EAarB"}
@@ -0,0 +1,20 @@
1
+ interface UseBoundarySelectionOptions {
2
+ selectedBoundaryIds?: number[];
3
+ defaultSelectedBoundaryIds?: number[];
4
+ onSelectionChange?: (ids: number[]) => void;
5
+ /** 不可选中的地块 id(如孤立子地块) */
6
+ disabledBoundaryIds?: Set<number>;
7
+ }
8
+ /**
9
+ * 地块多选状态管理(受控 / 非受控)
10
+ *
11
+ * - 传入 selectedBoundaryIds → 受控,由宿主维护选中列表(如表格勾选)
12
+ * - 未传入 → 非受控,内部维护,仍可通过 onSelectionChange 感知变化
13
+ */
14
+ export declare function useBoundarySelection({ selectedBoundaryIds, defaultSelectedBoundaryIds, onSelectionChange, disabledBoundaryIds, }: UseBoundarySelectionOptions): {
15
+ selectedIds: number[];
16
+ toggleBoundary: (id: number) => void;
17
+ setSelectedIds: (ids: number[]) => void;
18
+ };
19
+ export {};
20
+ //# sourceMappingURL=useBoundarySelection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBoundarySelection.d.ts","sourceRoot":"","sources":["../../../../src/render/partitionPicker/hooks/useBoundarySelection.ts"],"names":[],"mappings":"AAEA,UAAU,2BAA2B;IACnC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;IACtC,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,yBAAyB;IACzB,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACnC;AAOD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,mBAAmB,EACnB,0BAA+B,EAC/B,iBAAiB,EACjB,mBAAmB,GACpB,EAAE,2BAA2B;;yBAsBrB,MAAM;0BAZL,MAAM,EAAE;EA2BjB"}
@@ -0,0 +1,16 @@
1
+ import { CssLength } from '../types';
2
+ /**
3
+ * 将 width/height(px 或 CSS length)应用到容器,并用 ResizeObserver 测量实际像素尺寸
4
+ * 供 fit、标签定位、线宽换算等逻辑使用
5
+ */
6
+ export declare function useContainerSize(width: CssLength, height: CssLength): {
7
+ containerRef: import("react").MutableRefObject<HTMLDivElement>;
8
+ layoutStyle: {
9
+ width: string | number;
10
+ height: string | number;
11
+ };
12
+ width: number;
13
+ height: number;
14
+ isReady: boolean;
15
+ };
16
+ //# sourceMappingURL=useContainerSize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useContainerSize.d.ts","sourceRoot":"","sources":["../../../../src/render/partitionPicker/hooks/useContainerSize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAkBrC;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS;;;;;;;;;EA4CnE"}
@@ -0,0 +1,31 @@
1
+ import { MapData, PlatformType } from '@/types';
2
+ import { PartitionPickerMapTransform, ViewBox, ScreenPaddingInput } from '../types';
3
+ interface UseGoogleMapsOverlayOptions {
4
+ mapJson: MapData;
5
+ /** 传入 google.maps.Map 时启用;未传则 hook 返回空状态 */
6
+ mapRef?: google.maps.Map | null;
7
+ defaultTransform?: PartitionPickerMapTransform;
8
+ /** mapJson.map_north_offset 换算后的度数 */
9
+ originNorthRotate: number;
10
+ platform?: PlatformType;
11
+ padding?: ScreenPaddingInput;
12
+ }
13
+ /**
14
+ * Map 模式专用:管理 OverlayViewF 所需的 bounds、viewBox、缩放与 fitBounds。
15
+ * 逻辑对齐 MowerMapRenderer 的 Google Maps 叠加层。
16
+ */
17
+ export declare function useGoogleMapsOverlay({ mapJson, mapRef, defaultTransform, originNorthRotate, platform, padding, }: UseGoogleMapsOverlayOptions): {
18
+ actureRotate: number;
19
+ bounds: any;
20
+ svgViewBox: ViewBox;
21
+ fitViewBox: ViewBox;
22
+ overlayWidth: number;
23
+ overlayHeight: number;
24
+ overlayScale: number;
25
+ isOverlayReady: boolean;
26
+ handleOverlayDraw: (style: Record<string, string>) => void;
27
+ fitToView: (nextPadding?: ScreenPaddingInput) => void;
28
+ resetView: () => void;
29
+ };
30
+ export {};
31
+ //# sourceMappingURL=useGoogleMapsOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGoogleMapsOverlay.d.ts","sourceRoot":"","sources":["../../../../src/render/partitionPicker/hooks/useGoogleMapsOverlay.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEhD,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAA0B,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAU5G,UAAU,2BAA2B;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IAChC,gBAAgB,CAAC,EAAE,2BAA2B,CAAC;IAC/C,sCAAsC;IACtC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,iBAAiB,EACjB,QAA2B,EAC3B,OAAY,GACb,EAAE,2BAA2B;;;;;;;;;+BAoEkB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;8BAiBnD,kBAAkB;;EA6FpC"}
@@ -0,0 +1,6 @@
1
+ import { MapData } from '@/types';
2
+ /** 计算地图中不可选中的孤立子地块 id 集合 */
3
+ export declare function useIsolatedBoundaryIds(mapJson: MapData): Set<number>;
4
+ /** 供宿主(如表格)判断某地块是否不可选 */
5
+ export declare function getIsolatedBoundaryIds(mapJson: MapData): number[];
6
+ //# sourceMappingURL=useIsolatedBoundaryIds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsolatedBoundaryIds.d.ts","sourceRoot":"","sources":["../../../../src/render/partitionPicker/hooks/useIsolatedBoundaryIds.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,4BAA4B;AAC5B,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,eAWtD;AAED,yBAAyB;AACzB,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAIjE"}
@@ -0,0 +1,62 @@
1
+ import { type RefObject } from 'react';
2
+ import { MapData } from '@/types';
3
+ import { ViewBox, ScreenPaddingInput } from '../types';
4
+ /** Standalone 模式下容器内轻触/点击命中结果(未发生明显拖拽时) */
5
+ export interface ViewportTapPayload {
6
+ /** pointerdown / touchstart 时命中的 DOM 元素(touchend 时会用 elementFromPoint 修正) */
7
+ target: Element;
8
+ /** 抬起时指针相对视口的 X 坐标(px) */
9
+ clientX: number;
10
+ /** 抬起时指针相对视口的 Y 坐标(px) */
11
+ clientY: number;
12
+ }
13
+ interface UseMapViewportOptions {
14
+ /** 地图 JSON 数据,用于计算包围盒与初始 fit */
15
+ mapJson: MapData;
16
+ /** 地图容器 ref(与 useContainerSize 共用同一 DOM) */
17
+ containerRef?: RefObject<HTMLDivElement | null>;
18
+ /** 容器实测宽度(px) */
19
+ width: number;
20
+ /** 容器实测高度(px) */
21
+ height: number;
22
+ /** 默认 fit 时四边留出的屏幕边距(px),语法同 CSS padding */
23
+ padding: ScreenPaddingInput;
24
+ /** 最小缩放倍数,默认 0.5(视野最大为 fit 的 2 倍) */
25
+ minZoom?: number;
26
+ /** 最大缩放倍数,默认 4 */
27
+ maxZoom?: number;
28
+ /** 是否启用平移/缩放交互 */
29
+ enablePanZoom?: boolean;
30
+ /** 容器尺寸变化时是否重新 fit,默认 true */
31
+ refitOnResize?: boolean;
32
+ /** 在容器内按下并抬起且未发生明显位移时触发(用于地块点击选中) */
33
+ onViewportTap?: (payload: ViewportTapPayload) => void;
34
+ /** 地图内容旋转角(度),用于修正平移方向与屏幕手势一致 */
35
+ mapRotationDeg?: number;
36
+ }
37
+ /**
38
+ * Standalone 模式下的视口控制:平移、滚轮缩放、H5 双指 pinch
39
+ *
40
+ * 核心思路:通过修改 SVG viewBox 实现平移/缩放,而非 CSS transform
41
+ * - fitViewBox:初始 fit 状态,resetView 回到此状态
42
+ * - viewBox:地块/通道/overlay 的可见区域
43
+ * - gridViewBox:网格底图专用;有地图旋转时平移按屏幕方向(不逆旋转),与地块跟手平移解耦
44
+ *
45
+ * 平移可在地块/分区名等任意区域发起;仅当位移小于阈值时才视为点击
46
+ */
47
+ export declare function useMapViewport({ mapJson, containerRef: externalContainerRef, width, height, padding, minZoom, maxZoom, enablePanZoom, refitOnResize, onViewportTap, mapRotationDeg, }: UseMapViewportOptions): {
48
+ /** 绑定到地图外层容器的 ref */
49
+ containerRef: RefObject<HTMLDivElement>;
50
+ /** 地块/通道/overlay 使用的 viewBox */
51
+ viewBox: ViewBox;
52
+ /** 网格底图 viewBox(平移按屏幕方向,与旋转地块解耦) */
53
+ gridViewBox: ViewBox;
54
+ /** 初始 fit viewBox,供 clip path 等需要稳定坐标系的场景 */
55
+ fitViewBox: ViewBox;
56
+ /** 恢复到初始 fit 状态 */
57
+ resetView: () => void;
58
+ /** 重新 fit 地图到容器(可传新 padding) */
59
+ fitToView: (nextPadding?: ScreenPaddingInput) => void;
60
+ };
61
+ export {};
62
+ //# sourceMappingURL=useMapViewport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMapViewport.d.ts","sourceRoot":"","sources":["../../../../src/render/partitionPicker/hooks/useMapViewport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1F,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAWvD,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,MAAM,EAAE,OAAO,CAAC;IAChB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,qBAAqB;IAC7B,gCAAgC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAChD,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,OAAO,EAAE,kBAAkB,CAAC;IAC5B,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qCAAqC;IACrC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACtD,iCAAiC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AA0CD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,YAAY,EAAE,oBAAoB,EAClC,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAa,EACb,OAAW,EACX,aAAoB,EACpB,aAAoB,EACpB,aAAa,EACb,cAAkB,GACnB,EAAE,qBAAqB;IA4hBpB,qBAAqB;;IAErB,gCAAgC;;IAEhC,oCAAoC;;IAEpC,6CAA6C;;IAE7C,mBAAmB;;IAEnB,gCAAgC;8BAxUjB,kBAAkB;EA2UpC"}
@@ -0,0 +1,22 @@
1
+ import { MapData } from '@/types';
2
+ import { ViewBox } from '../types';
3
+ /** 分区名气泡渲染所需的数据 */
4
+ export interface PartitionLabelItem {
5
+ id: number;
6
+ name: string;
7
+ /** 相对容器的水平位置(百分比) */
8
+ leftPct: number;
9
+ /** 相对容器的垂直位置(百分比) */
10
+ topPct: number;
11
+ /** 当前视口下子区域包围盒屏幕宽度(px),H5 名称/序号展示规则使用 */
12
+ screenWidthPx: number;
13
+ isIsolated?: boolean;
14
+ }
15
+ /**
16
+ * 根据当前「显示 viewBox」计算分区名气泡位置(不预旋转;由 mapOverlayLayer CSS rotate 处理)
17
+ */
18
+ export declare function usePartitionLabelItems(mapData: MapData, viewBox: ViewBox | null, containerWidth: number, containerHeight: number, options?: {
19
+ /** overlay:Map 模式百分比定位;meet:Standalone preserveAspectRatio meet */
20
+ positionMode?: 'overlay' | 'meet';
21
+ }): PartitionLabelItem[];
22
+ //# sourceMappingURL=usePartitionLabelItems.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePartitionLabelItems.d.ts","sourceRoot":"","sources":["../../../../src/render/partitionPicker/hooks/usePartitionLabelItems.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,mBAAmB;AACnB,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAqED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE;IACR,mEAAmE;IACnE,YAAY,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CACnC,wBAgEF"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @deprecated 请从 render/MowerPartitionPickerMap 导入组件入口。
3
+ * 本文件保留 re-export,兼容旧路径。
4
+ */
5
+ export { default, MowerPartitionPickerMap, } from '../MowerPartitionPickerMap';
6
+ export type { MowerPartitionPickerMapProps, MowerPartitionPickerMapRef, CssLength } from './types';
7
+ export type { PartitionPickerStyleConfig, PartitionPickerBoundaryColors, PartitionPickerLabelStyles, PartitionPickerGridStyle, ResolvedPartitionPickerStyles, } from './constants';
8
+ export { resolvePartitionPickerStyles, getPartitionPickerColors, getPartitionPickerLabelStyles, PARTITION_PICKER_COLORS_WEB, PARTITION_PICKER_COLORS_H5, PARTITION_PICKER_LABEL_STYLES_WEB, PARTITION_PICKER_LABEL_STYLES_H5, } from './constants';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/render/partitionPicker/index.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,OAAO,EACP,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACnG,YAAY,EACV,0BAA0B,EAC1B,6BAA6B,EAC7B,0BAA0B,EAC1B,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,EAC1B,iCAAiC,EACjC,gCAAgC,GACjC,MAAM,aAAa,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * 地图网格背景层(SVG 最底层)
3
+ *
4
+ * 对应 Figma `bg/mapping`:灰底 + 白色网格线/交点圆点。
5
+ *
6
+ * 实现要点:
7
+ * - 与地块共用 viewBox,平移/缩放时背景跟随移动
8
+ * - 线:`<pattern patternUnits="userSpaceOnUse">` 平铺,线宽为地图坐标(随 zoom 同比缩放)
9
+ * - 点:仅在网格交点处单独绘制完整圆,避免在 pattern 里画圆导致每格四角出现四分之一弧
10
+ */
11
+ import React from 'react';
12
+ import { PartitionPickerGridStyle } from '../constants';
13
+ import { ViewBox } from '../types';
14
+ interface MapGridBackgroundProps {
15
+ /** 当前可见 viewBox,背景 rect 与其对齐 */
16
+ viewBox: ViewBox;
17
+ /** 网格底色、线色、间距等(可由 pickerStyleConfig.grid 自定义) */
18
+ gridStyle: PartitionPickerGridStyle;
19
+ }
20
+ declare const _default: React.MemoExoticComponent<({ viewBox, gridStyle }: MapGridBackgroundProps) => import("react/jsx-runtime").JSX.Element>;
21
+ export default _default;
22
+ //# sourceMappingURL=MapGridBackground.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapGridBackground.d.ts","sourceRoot":"","sources":["../../../../src/render/partitionPicker/layers/MapGridBackground.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAA+B,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,UAAU,sBAAsB;IAC9B,gCAAgC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,iDAAiD;IACjD,SAAS,EAAE,wBAAwB,CAAC;CACrC;2EA+BkD,sBAAsB;AA+FzE,wBAAuC"}
@@ -0,0 +1,21 @@
1
+ import { PlatformType } from '@/types';
2
+ import { PartitionPickerLabelStyles } from '../constants';
3
+ import { PartitionLabelItem } from '../hooks/usePartitionLabelItems';
4
+ interface PartitionNameLabelsProps {
5
+ items: PartitionLabelItem[];
6
+ selectedIds: number[];
7
+ /** 分区名气泡 + 序号徽章样式(已合并 pickerStyleConfig) */
8
+ labelStyles: PartitionPickerLabelStyles;
9
+ platform?: PlatformType;
10
+ showSelectionOrder?: boolean;
11
+ /** 地图叠加层旋转角(度),用于反向补偿以保持文字水平 */
12
+ rotation?: number;
13
+ onHoverChange: (id: number | null) => void;
14
+ /** Map 模式:点击标签切换选中(Standalone 由 viewport 统一处理) */
15
+ onBoundaryClick?: (id: number) => void;
16
+ /** 点击孤立子地块标签或图标(Map 模式直接点击;Standalone 由 viewport 处理) */
17
+ onIsolatedTap?: (id: number, clientX: number, clientY: number) => void;
18
+ }
19
+ declare const PartitionNameLabels: ({ items, selectedIds, labelStyles, platform, showSelectionOrder, rotation, onHoverChange, onBoundaryClick, onIsolatedTap, }: PartitionNameLabelsProps) => import("react/jsx-runtime").JSX.Element;
20
+ export default PartitionNameLabels;
21
+ //# sourceMappingURL=PartitionNameLabels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PartitionNameLabels.d.ts","sourceRoot":"","sources":["../../../../src/render/partitionPicker/layers/PartitionNameLabels.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAML,0BAA0B,EAG3B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,UAAU,wBAAwB;IAChC,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,4CAA4C;IAC5C,WAAW,EAAE,0BAA0B,CAAC;IACxC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3C,kDAAkD;IAClD,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,wDAAwD;IACxD,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACxE;AAED,QAAA,MAAM,mBAAmB,GAAI,6HAU1B,wBAAwB,4CA8G1B,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { PartitionPickerGridStyle } from '../constants';
2
+ import { ViewBox } from '../types';
3
+ interface PartitionPickerGridSvgProps {
4
+ viewBox: ViewBox;
5
+ /** Standalone 网格底图样式(Map 模式不渲染本层) */
6
+ gridStyle: PartitionPickerGridStyle;
7
+ }
8
+ declare const PartitionPickerGridSvg: ({ viewBox, gridStyle }: PartitionPickerGridSvgProps) => import("react/jsx-runtime").JSX.Element;
9
+ export default PartitionPickerGridSvg;
10
+ //# sourceMappingURL=PartitionPickerGridSvg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PartitionPickerGridSvg.d.ts","sourceRoot":"","sources":["../../../../src/render/partitionPicker/layers/PartitionPickerGridSvg.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,UAAU,2BAA2B;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,SAAS,EAAE,wBAAwB,CAAC;CACrC;AAED,QAAA,MAAM,sBAAsB,GAAI,wBAAwB,2BAA2B,4CA4BlF,CAAC;AAEF,eAAe,sBAAsB,CAAC"}