@wenle_2523097/agri-map 1.0.2 → 1.0.3

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 (181) hide show
  1. package/dist/components/ConfigProvider/index.d.ts +15 -0
  2. package/dist/components/ConfigProvider/index.d.ts.map +1 -0
  3. package/dist/components/DualScaleControl/index.d.ts +10 -0
  4. package/dist/components/DualScaleControl/index.d.ts.map +1 -0
  5. package/dist/components/Icons/SelectIcon.d.ts +68 -0
  6. package/dist/components/Icons/SelectIcon.d.ts.map +1 -0
  7. package/dist/components/Icons/index.d.ts +43 -0
  8. package/dist/components/Icons/index.d.ts.map +1 -0
  9. package/dist/components/Irrigation/index.d.ts +8 -0
  10. package/dist/components/Irrigation/index.d.ts.map +1 -0
  11. package/dist/components/Irrigation/toolbar.d.ts +6 -0
  12. package/dist/components/Irrigation/toolbar.d.ts.map +1 -0
  13. package/dist/components/Loading/index.d.ts +40 -0
  14. package/dist/components/Loading/index.d.ts.map +1 -0
  15. package/dist/components/MapContent/index.d.ts +17 -0
  16. package/dist/components/MapContent/index.d.ts.map +1 -0
  17. package/dist/components/MapSizeHandler/index.d.ts +24 -0
  18. package/dist/components/MapSizeHandler/index.d.ts.map +1 -0
  19. package/dist/components/Marker/ClusterView.d.ts +29 -0
  20. package/dist/components/Marker/ClusterView.d.ts.map +1 -0
  21. package/dist/components/Marker/MapClickHandler.d.ts +25 -0
  22. package/dist/components/Marker/MapClickHandler.d.ts.map +1 -0
  23. package/dist/components/Marker/index.d.ts +61 -0
  24. package/dist/components/Marker/index.d.ts.map +1 -0
  25. package/dist/components/Marker/parseClusterConfig.d.ts +25 -0
  26. package/dist/components/Marker/parseClusterConfig.d.ts.map +1 -0
  27. package/dist/components/Marker/toolbar.d.ts +6 -0
  28. package/dist/components/Marker/toolbar.d.ts.map +1 -0
  29. package/dist/components/Marker/useEditHandlers.d.ts +44 -0
  30. package/dist/components/Marker/useEditHandlers.d.ts.map +1 -0
  31. package/dist/components/Marker/useIconConfig.d.ts +23 -0
  32. package/dist/components/Marker/useIconConfig.d.ts.map +1 -0
  33. package/dist/components/Marker/useMarkerCommands.d.ts +30 -0
  34. package/dist/components/Marker/useMarkerCommands.d.ts.map +1 -0
  35. package/dist/components/Measurement/toolbar.d.ts +20 -0
  36. package/dist/components/Measurement/toolbar.d.ts.map +1 -0
  37. package/dist/components/MiniMap/index.d.ts +16 -0
  38. package/dist/components/MiniMap/index.d.ts.map +1 -0
  39. package/dist/components/Notification/index.d.ts +12 -0
  40. package/dist/components/Notification/index.d.ts.map +1 -0
  41. package/dist/components/PlotGroupLayer/index.d.ts +8 -0
  42. package/dist/components/PlotGroupLayer/index.d.ts.map +1 -0
  43. package/dist/components/PlotLayer/index.d.ts +7 -0
  44. package/dist/components/PlotLayer/index.d.ts.map +1 -0
  45. package/dist/components/PlotLayer/label.d.ts +12 -0
  46. package/dist/components/PlotLayer/label.d.ts.map +1 -0
  47. package/dist/components/PlotLayer/leaflet-types.d.ts +59 -0
  48. package/dist/components/PlotLayer/leaflet-types.d.ts.map +1 -0
  49. package/dist/components/PlotLayer/parseConfig.d.ts +15 -0
  50. package/dist/components/PlotLayer/parseConfig.d.ts.map +1 -0
  51. package/dist/components/PlotLayer/toolbar.d.ts +6 -0
  52. package/dist/components/PlotLayer/toolbar.d.ts.map +1 -0
  53. package/dist/components/PlotLayer/types.d.ts +10 -0
  54. package/dist/components/PlotLayer/types.d.ts.map +1 -0
  55. package/dist/components/PlotLayer/usePlotCommands.d.ts +33 -0
  56. package/dist/components/PlotLayer/usePlotCommands.d.ts.map +1 -0
  57. package/dist/components/PlotLayer/usePlotData.d.ts +32 -0
  58. package/dist/components/PlotLayer/usePlotData.d.ts.map +1 -0
  59. package/dist/components/PlotLayer/usePlotEditMode.d.ts +92 -0
  60. package/dist/components/PlotLayer/usePlotEditMode.d.ts.map +1 -0
  61. package/dist/components/Road/index.d.ts +8 -0
  62. package/dist/components/Road/index.d.ts.map +1 -0
  63. package/dist/components/Road/toolbar.d.ts +6 -0
  64. package/dist/components/Road/toolbar.d.ts.map +1 -0
  65. package/dist/components/TianDiTuLayer/index.d.ts +15 -0
  66. package/dist/components/TianDiTuLayer/index.d.ts.map +1 -0
  67. package/dist/components/Track/ClusterView.d.ts +20 -0
  68. package/dist/components/Track/ClusterView.d.ts.map +1 -0
  69. package/dist/components/Track/TrackView.d.ts +24 -0
  70. package/dist/components/Track/TrackView.d.ts.map +1 -0
  71. package/dist/components/Track/commands.d.ts +53 -0
  72. package/dist/components/Track/commands.d.ts.map +1 -0
  73. package/dist/components/Track/constants.d.ts +34 -0
  74. package/dist/components/Track/constants.d.ts.map +1 -0
  75. package/dist/components/Track/index.d.ts +54 -0
  76. package/dist/components/Track/index.d.ts.map +1 -0
  77. package/dist/components/Track/parseConfig.d.ts +40 -0
  78. package/dist/components/Track/parseConfig.d.ts.map +1 -0
  79. package/dist/components/Track/types.d.ts +38 -0
  80. package/dist/components/Track/types.d.ts.map +1 -0
  81. package/dist/components/Track/useMarkerIcon.d.ts +14 -0
  82. package/dist/components/Track/useMarkerIcon.d.ts.map +1 -0
  83. package/dist/components/Track/useTrackCommands.d.ts +56 -0
  84. package/dist/components/Track/useTrackCommands.d.ts.map +1 -0
  85. package/dist/components/shared/BaseEditToolbar.d.ts +100 -0
  86. package/dist/components/shared/BaseEditToolbar.d.ts.map +1 -0
  87. package/dist/components/shared/ToolbarButton.d.ts +49 -0
  88. package/dist/components/shared/ToolbarButton.d.ts.map +1 -0
  89. package/dist/components/shared/index.d.ts +5 -0
  90. package/dist/components/shared/index.d.ts.map +1 -0
  91. package/dist/constants/device.d.ts +14 -0
  92. package/dist/constants/device.d.ts.map +1 -0
  93. package/dist/constants/index.d.ts +20 -0
  94. package/dist/constants/index.d.ts.map +1 -0
  95. package/dist/constants/map.d.ts +13 -0
  96. package/dist/constants/map.d.ts.map +1 -0
  97. package/dist/constants/plot.d.ts +33 -0
  98. package/dist/constants/plot.d.ts.map +1 -0
  99. package/dist/constants/road.d.ts +12 -0
  100. package/dist/constants/road.d.ts.map +1 -0
  101. package/dist/constants/styles.d.ts +57 -0
  102. package/dist/constants/styles.d.ts.map +1 -0
  103. package/dist/constants/theme.d.ts +47 -0
  104. package/dist/constants/theme.d.ts.map +1 -0
  105. package/dist/constants/unit.d.ts +11 -0
  106. package/dist/constants/unit.d.ts.map +1 -0
  107. package/dist/hooks/index.d.ts +8 -0
  108. package/dist/hooks/index.d.ts.map +1 -0
  109. package/dist/hooks/useEditMode.d.ts +75 -0
  110. package/dist/hooks/useEditMode.d.ts.map +1 -0
  111. package/dist/hooks/useLatestRef.d.ts +17 -0
  112. package/dist/hooks/useLatestRef.d.ts.map +1 -0
  113. package/dist/hooks/usePolylineEditor.d.ts +65 -0
  114. package/dist/hooks/usePolylineEditor.d.ts.map +1 -0
  115. package/dist/hooks/usePolylineRenderer.d.ts +34 -0
  116. package/dist/hooks/usePolylineRenderer.d.ts.map +1 -0
  117. package/dist/hooks/useTheme.d.ts +13 -0
  118. package/dist/hooks/useTheme.d.ts.map +1 -0
  119. package/dist/index.d.ts +312 -0
  120. package/dist/index.d.ts.map +1 -0
  121. package/dist/types/basic.d.ts +57 -0
  122. package/dist/types/basic.d.ts.map +1 -0
  123. package/dist/types/components.d.ts +56 -0
  124. package/dist/types/components.d.ts.map +1 -0
  125. package/dist/types/config.d.ts +112 -0
  126. package/dist/types/config.d.ts.map +1 -0
  127. package/dist/types/decorator.d.ts +26 -0
  128. package/dist/types/decorator.d.ts.map +1 -0
  129. package/dist/types/icon.d.ts +52 -0
  130. package/dist/types/icon.d.ts.map +1 -0
  131. package/dist/types/index.d.ts +20 -0
  132. package/dist/types/index.d.ts.map +1 -0
  133. package/dist/types/irrigation.d.ts +315 -0
  134. package/dist/types/irrigation.d.ts.map +1 -0
  135. package/dist/types/layer.d.ts +40 -0
  136. package/dist/types/layer.d.ts.map +1 -0
  137. package/dist/types/loading.d.ts +62 -0
  138. package/dist/types/loading.d.ts.map +1 -0
  139. package/dist/types/marker.d.ts +299 -0
  140. package/dist/types/marker.d.ts.map +1 -0
  141. package/dist/types/measurement.d.ts +121 -0
  142. package/dist/types/measurement.d.ts.map +1 -0
  143. package/dist/types/notification.d.ts +50 -0
  144. package/dist/types/notification.d.ts.map +1 -0
  145. package/dist/types/plot.d.ts +479 -0
  146. package/dist/types/plot.d.ts.map +1 -0
  147. package/dist/types/road.d.ts +382 -0
  148. package/dist/types/road.d.ts.map +1 -0
  149. package/dist/types/toolbar.d.ts +176 -0
  150. package/dist/types/toolbar.d.ts.map +1 -0
  151. package/dist/types/track.d.ts +386 -0
  152. package/dist/types/track.d.ts.map +1 -0
  153. package/dist/utils/area.d.ts +57 -0
  154. package/dist/utils/area.d.ts.map +1 -0
  155. package/dist/utils/clusterIcon.d.ts +16 -0
  156. package/dist/utils/clusterIcon.d.ts.map +1 -0
  157. package/dist/utils/createAntPath.d.ts +13 -0
  158. package/dist/utils/createAntPath.d.ts.map +1 -0
  159. package/dist/utils/geometry.d.ts +41 -0
  160. package/dist/utils/geometry.d.ts.map +1 -0
  161. package/dist/utils/iconCache.d.ts +49 -0
  162. package/dist/utils/iconCache.d.ts.map +1 -0
  163. package/dist/utils/iconUtils.d.ts +46 -0
  164. package/dist/utils/iconUtils.d.ts.map +1 -0
  165. package/dist/utils/index.d.ts +11 -0
  166. package/dist/utils/index.d.ts.map +1 -0
  167. package/dist/utils/leafletIcons.d.ts +40 -0
  168. package/dist/utils/leafletIcons.d.ts.map +1 -0
  169. package/dist/utils/mapAnimation.d.ts +14 -0
  170. package/dist/utils/mapAnimation.d.ts.map +1 -0
  171. package/dist/utils/markerSvg.d.ts +19 -0
  172. package/dist/utils/markerSvg.d.ts.map +1 -0
  173. package/dist/utils/pulseIcon.d.ts +28 -0
  174. package/dist/utils/pulseIcon.d.ts.map +1 -0
  175. package/dist/utils/spatialIndex.d.ts +56 -0
  176. package/dist/utils/spatialIndex.d.ts.map +1 -0
  177. package/dist/utils/toggleItemState.d.ts +15 -0
  178. package/dist/utils/toggleItemState.d.ts.map +1 -0
  179. package/dist/utils/trackSimplify.d.ts +23 -0
  180. package/dist/utils/trackSimplify.d.ts.map +1 -0
  181. package/package.json +2 -2
@@ -0,0 +1,56 @@
1
+ /**
2
+ * 组件 Props 类型定义
3
+ */
4
+ import type { ReactNode, RefObject } from 'react';
5
+ import type L from 'leaflet';
6
+ import type { DualScaleControlConfig } from './config';
7
+ import type { LayerType } from './layer';
8
+ /**
9
+ * 地图内容组件属性
10
+ * @description MapContent 组件的 Props 定义
11
+ */
12
+ export interface MapContentProps {
13
+ /** 子组件 */
14
+ children?: ReactNode;
15
+ }
16
+ /**
17
+ * 双向标尺组件属性
18
+ * @description DualScaleControl 组件的 Props 定义
19
+ */
20
+ export interface DualScaleControlProps {
21
+ /**
22
+ * 显示配置
23
+ * @description 不传则使用默认配置 { metric: true, imperial: false, showZoomControl: true }
24
+ * @example
25
+ * <DualScaleControl /> // 默认显示
26
+ * <DualScaleControl config={{ metric: true, imperial: false, showZoomControl: true }} />
27
+ */
28
+ config?: DualScaleControlConfig;
29
+ /** 主题模式 */
30
+ theme?: 'light' | 'dark';
31
+ /**
32
+ * 图层类型
33
+ * @description 用于根据图层背景自动调整标尺颜色对比度
34
+ * - satellite + light: 使用深色标尺(卫星影像较暗)
35
+ * - terrain + dark: 使用浅色标尺(地形图层较亮)
36
+ */
37
+ layerType?: LayerType;
38
+ /** 标尺颜色,支持用户自定义,优先级高于 config.scaleColor */
39
+ scaleColor?: string;
40
+ /** 控件背景色,支持用户自定义,优先级高于 config.controlBg */
41
+ controlBg?: string;
42
+ /** 控件文字颜色,支持用户自定义,优先级高于 config.controlText */
43
+ controlText?: string;
44
+ }
45
+ /**
46
+ * 标签组件属性
47
+ * @description PlotLabel 组件的 Props 定义
48
+ */
49
+ export interface PlotLabelProps {
50
+ /** 选中的地块 ID 列表 */
51
+ selectedIds?: (string | number)[];
52
+ /** 标签显示的字段列表 */
53
+ labelFields?: string[];
54
+ /** 地块图层引用 */
55
+ layerByIdRef: RefObject<Record<string | number, L.Layer>>;
56
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/types/components.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU;IACV,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,WAAW;IACX,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,kBAAkB;IAClB,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAClC,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa;IACb,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;CAC3D"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * 配置相关类型定义
3
+ */
4
+ import type { ReactNode } from 'react';
5
+ import type { LayerType } from './layer';
6
+ /**
7
+ * 缩放控件位置
8
+ * @description 缩放控件在地图上的显示位置
9
+ */
10
+ export type ZoomControlPosition = 'topleft' | 'topright' | 'bottomleft' | 'bottomright';
11
+ /**
12
+ * 双向标尺配置选项
13
+ * @description DualScaleControl 的详细显示配置
14
+ */
15
+ export interface DualScaleControlConfig {
16
+ /** 是否显示公制单位,默认 true */
17
+ metric?: boolean;
18
+ /** 是否显示英制单位,默认 false */
19
+ imperial?: boolean;
20
+ /** 是否显示缩放控件,默认 true */
21
+ showZoomControl?: boolean;
22
+ /** 缩放控件位置,默认 'bottomleft' */
23
+ zoomControlPosition?: ZoomControlPosition;
24
+ /** 标尺颜色,支持用户自定义,不传则根据主题和图层类型自动计算 */
25
+ scaleColor?: string;
26
+ /** 控件背景色,支持用户自定义,不传则根据主题和图层类型自动计算 */
27
+ controlBg?: string;
28
+ /** 控件文字颜色,支持用户自定义,不传则根据主题和图层类型自动计算 */
29
+ controlText?: string;
30
+ }
31
+ /**
32
+ * 地图尺寸处理器配置
33
+ * @description MapSizeHandler 的配置选项,用于解决地图容器尺寸变化后地图不刷新的问题
34
+ */
35
+ export interface MapSizeHandlerConfig {
36
+ /** 是否启用,默认 true */
37
+ enabled?: boolean;
38
+ /** 首次刷新的延迟时间(毫秒),默认 100 */
39
+ delay?: number;
40
+ /** 重试次数,默认 3 */
41
+ retries?: number;
42
+ }
43
+ /**
44
+ * 天地图图层配置
45
+ * @description TianDiTuLayer 的配置选项
46
+ */
47
+ export interface TianDiTuLayerConfig {
48
+ /** 天地图 API Key */
49
+ apiKey: string;
50
+ /** 图层类型:vector(矢量) | satellite(卫星) | terrain(地形) */
51
+ layerType?: LayerType;
52
+ /** 是否显示标注图层 */
53
+ showAnnotation?: boolean;
54
+ /** 自定义瓦片叠加层 URL */
55
+ overlayUrl?: string;
56
+ /** 瓦片服务子域名 */
57
+ subdomains?: string[];
58
+ /** 最大缩放级别 */
59
+ maxZoom?: number;
60
+ /** 最小缩放级别 */
61
+ minZoom?: number;
62
+ /** 是否显示图层选择器 */
63
+ showLayerSelector?: boolean;
64
+ }
65
+ /**
66
+ * 配置上下文值
67
+ * @description ConfigProvider 提供的配置上下文
68
+ */
69
+ export interface ConfigContextValue {
70
+ /** 主题模式 */
71
+ theme: 'light' | 'dark';
72
+ /** 双向标尺配置,false 表示不显示 */
73
+ dualScaleControl?: DualScaleControlConfig | false;
74
+ /** 天地图图层配置,false 表示不显示 */
75
+ tianDiTuLayer?: TianDiTuLayerConfig | false;
76
+ /** 地图尺寸处理器配置,false 表示不启用 */
77
+ mapSizeHandler?: MapSizeHandlerConfig | false;
78
+ }
79
+ /**
80
+ * 配置提供者属性
81
+ * @description ConfigProvider 组件的 Props 定义
82
+ */
83
+ export interface ConfigProviderProps {
84
+ /** 主题模式 */
85
+ theme?: 'light' | 'dark';
86
+ /**
87
+ * 双向标尺配置
88
+ * @description 传入 true 或不传值显示默认配置,传入对象自定义配置,传入 false 不显示
89
+ * @example
90
+ * <ConfigProvider dualScaleControl /> // 显示默认配置
91
+ * <ConfigProvider dualScaleControl={true} /> // 显示默认配置
92
+ * <ConfigProvider dualScaleControl={{ metric: true, imperial: false }} /> // 自定义配置
93
+ * <ConfigProvider dualScaleControl={false} /> // 不显示
94
+ */
95
+ dualScaleControl?: boolean | DualScaleControlConfig;
96
+ /**
97
+ * 天地图图层配置
98
+ * @description 配置后 MapContent 会自动渲染 TianDiTuLayer
99
+ */
100
+ tianDiTuLayer?: TianDiTuLayerConfig | false;
101
+ /**
102
+ * 地图尺寸处理器配置
103
+ * @description 默认不启用,传入 true 启用默认配置,传入对象自定义配置
104
+ * @example
105
+ * <ConfigProvider mapSizeHandler /> // 启用默认配置
106
+ * <ConfigProvider mapSizeHandler={true} /> // 启用默认配置
107
+ * <ConfigProvider mapSizeHandler={{ delay: 200, retries: 5 }} /> // 自定义配置
108
+ */
109
+ mapSizeHandler?: boolean | MapSizeHandlerConfig;
110
+ /** 子组件 */
111
+ children: ReactNode;
112
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,aAAa,CAAC;AAExF;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,uBAAuB;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uBAAuB;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,6BAA6B;IAC7B,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,mBAAmB;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,eAAe;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc;IACd,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,WAAW;IACX,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,sBAAsB,GAAG,KAAK,CAAC;IAClD,0BAA0B;IAC1B,aAAa,CAAC,EAAE,mBAAmB,GAAG,KAAK,CAAC;IAC5C,4BAA4B;IAC5B,cAAc,CAAC,EAAE,oBAAoB,GAAG,KAAK,CAAC;CAC/C;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW;IACX,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAC;IACpD;;;OAGG;IACH,aAAa,CAAC,EAAE,mBAAmB,GAAG,KAAK,CAAC;IAC5C;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,oBAAoB,CAAC;IAChD,UAAU;IACV,QAAQ,EAAE,SAAS,CAAC;CACrB"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * 装饰器类型定义
3
+ */
4
+ /**
5
+ * 装饰器配置
6
+ * @description 用于道路、灌溉渠等线条的装饰效果配置
7
+ */
8
+ export interface DecoratorConfig {
9
+ /** 装饰符号的偏移量 */
10
+ offset?: number | string;
11
+ /** 装饰符号的重复间隔 */
12
+ repeat?: number;
13
+ /** 装饰符号配置 */
14
+ symbol?: unknown;
15
+ /** 装饰符号选项 */
16
+ options?: {
17
+ /** 符号像素大小 */
18
+ pixelSize?: number;
19
+ /** 符号颜色 */
20
+ color?: string;
21
+ /** 符号线宽 */
22
+ weight?: number;
23
+ };
24
+ /** 其他扩展属性 */
25
+ [key: string]: unknown;
26
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorator.d.ts","sourceRoot":"","sources":["../../src/types/decorator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,eAAe;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,gBAAgB;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa;IACb,OAAO,CAAC,EAAE;QACR,aAAa;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW;QACX,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,aAAa;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * 图标相关类型定义
3
+ * @description 统一的图标类型,供 Marker、Track 等组件使用
4
+ */
5
+ /**
6
+ * SVG 图标配置
7
+ * @description 用于自定义 SVG 图标的配置对象
8
+ */
9
+ export interface SvgIconConfig {
10
+ /** SVG 路径数据 */
11
+ path: string;
12
+ /** 视图框,默认 '0 0 1024 1024' */
13
+ viewBox?: string;
14
+ /** 填充颜色 */
15
+ fill?: string;
16
+ /** 描边颜色 */
17
+ stroke?: string;
18
+ /** 描边宽度 */
19
+ strokeWidth?: number;
20
+ }
21
+ /**
22
+ * 预设图标名称
23
+ * @description 内置的预设图标列表
24
+ */
25
+ export type PresetIconName = 'point' | 'position' | 'position-red' | 'drone' | 'down' | 'tractor' | 'tractor-2' | 'truck' | 'truck-2' | 'agri-drone' | 'agri-drone-side' | 'marker-red' | 'marker-blue' | 'marker-green' | 'marker-orange' | 'marker-yellow' | 'pulse-blue' | 'pulse-green' | 'pulse-red' | 'pulse-orange' | 'pulse-purple' | 'pulse-arrow' | 'loading-spinner' | 'loading-dots';
26
+ /**
27
+ * 图标值类型(判别联合)
28
+ */
29
+ export type IconValue = {
30
+ type: 'preset';
31
+ name: PresetIconName;
32
+ } | {
33
+ type: 'svg';
34
+ config: SvgIconConfig | string;
35
+ } | {
36
+ type: 'url';
37
+ src: string;
38
+ };
39
+ /**
40
+ * 图标检测结果
41
+ * @description detectIconType 函数的返回值,与 IconValue 结构对应
42
+ */
43
+ export type DetectedIconResult = {
44
+ type: 'preset';
45
+ name: PresetIconName;
46
+ } | {
47
+ type: 'svg';
48
+ config: SvgIconConfig | string;
49
+ } | {
50
+ type: 'url';
51
+ src: string;
52
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../src/types/icon.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,eAAe;IACf,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,OAAO,GACP,UAAU,GACV,cAAc,GACd,OAAO,GACP,MAAM,GACN,SAAS,GACT,WAAW,GACX,OAAO,GACP,SAAS,GACT,YAAY,GACZ,iBAAiB,GACjB,YAAY,GACZ,aAAa,GACb,cAAc,GACd,eAAe,GACf,eAAe,GACf,YAAY,GACZ,aAAa,GACb,WAAW,GACX,cAAc,GACd,cAAc,GACd,aAAa,GACb,iBAAiB,GACjB,cAAc,CAAC;AAEnB;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjC;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * 农业地图组件库类型定义
3
+ * @description 统一导出所有类型
4
+ */
5
+ export type { Coordinate, BoundingBox, PathOptions, PlotType, PlotStatus, Positions2D, Positions3D } from './basic';
6
+ export { is3DPositions } from './basic';
7
+ export type { SvgIconConfig, PresetIconName, IconValue, DetectedIconResult } from './icon';
8
+ export type { PlotData, PlotStyle, PlotEditMode, PlotEditResult, PlotClipResult, PlotMoveResult, PlotCreateResult, PlotDeleteResult, RenderStats, PlotLayerProps, PlotRef, PlotEditModeConfig, PlotFieldNames, AreaUnit, AreaUnitConfig, PlotGroupConfig, GroupRenderStats, PlotGroupLayerProps, PlotGroupRef, } from './plot';
9
+ export type { MarkerData, MarkerIconOptions, MarkerCreateResult, MarkerMoveResult, MarkerDeleteResult, MarkerEditResult, MarkerProps, MarkerRef, MarkerEditModeConfig, MarkerIconItemConfig, MarkerIconsConfig, MarkerClusterConfig, MarkerEvents, } from './marker';
10
+ export type { AntPathConfig, AntPathMode, RoadPathOptions, RoadFieldNames, RoadData, RoadCreateResult, RoadEditResult, RoadEditDrawerResult, RoadDeleteResult, RoadProps, RoadRef, RoadEditModeConfig, RoadEvents, } from './road';
11
+ export type { IrrigationFieldNames, IrrigationData, IrrigationPortIconConfig, IrrigationProps, IrrigationPathOptions, IrrigationRef, IrrigationCreateResult, IrrigationEditResult, IrrigationEditPropertyParams, IrrigationDeleteResult, IrrigationReverseResult, IrrigationEvents, } from './irrigation';
12
+ export type { DecoratorConfig } from './decorator';
13
+ export type { LayerType, TianDiTuLayerProps } from './layer';
14
+ export type { DualScaleControlConfig, TianDiTuLayerConfig, MapSizeHandlerConfig, ConfigContextValue, ConfigProviderProps, ZoomControlPosition, } from './config';
15
+ export type { NotificationType, NotificationOptions, NotificationInstance, NotificationProps, } from './notification';
16
+ export type { PlotEditToolbarProps, MarkerEditToolbarProps, RoadEditToolbarProps, IrrigationEditToolbarProps, } from './toolbar';
17
+ export type { TrackPoint, TrackItemData, TrackData, TrackProps, TrackRef, MiniMapProps, TileLayerConfig, PerformanceConfig, MarkerModeConfig, ClusterIconConfig, MarkerIconConfig, TrackIconConfig, TrackIconsConfig, } from './track';
18
+ export type { LoadingIconName, LoadingSize, LoadingMaskConfig, LoadingProps, } from './loading';
19
+ export type { MapContentProps, DualScaleControlProps, PlotLabelProps, } from './components';
20
+ export type { LengthUnit, MeasurementAreaUnit, MeasurementMode, MeasurementControlPosition, MeasurementToolbarProps, MeasurementData, UnitConfig, } from './measurement';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACpH,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxC,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAG3F,YAAY,EACV,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,cAAc,EACd,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,OAAO,EACP,kBAAkB,EAClB,cAAc,EACd,QAAQ,EACR,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,GACb,MAAM,QAAQ,CAAC;AAGhB,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,GACb,MAAM,UAAU,CAAC;AAGlB,YAAY,EACV,aAAa,EACb,WAAW,EACX,eAAe,EACf,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,SAAS,EACT,OAAO,EACP,kBAAkB,EAClB,UAAU,GACX,MAAM,QAAQ,CAAC;AAGhB,YAAY,EACV,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,sBAAsB,EACtB,oBAAoB,EACpB,4BAA4B,EAC5B,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAGtB,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAG7D,YAAY,EACV,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAGlB,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EACV,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,WAAW,CAAC;AAGnB,YAAY,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,YAAY,GACb,MAAM,WAAW,CAAC;AAGnB,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,YAAY,EACV,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,0BAA0B,EAC1B,uBAAuB,EACvB,eAAe,EACf,UAAU,GACX,MAAM,eAAe,CAAC"}
@@ -0,0 +1,315 @@
1
+ /**
2
+ * 灌溉渠相关类型定义
3
+ */
4
+ import type { Coordinate, PathOptions } from './basic';
5
+ import type { AntPathConfig } from './road';
6
+ import type { ReactNode } from 'react';
7
+ import type { SvgIconConfig } from './icon';
8
+ /**
9
+ * 灌溉渠字段名映射
10
+ * @description 自定义 dataSource 中数据的字段名
11
+ */
12
+ export interface IrrigationFieldNames {
13
+ /** 灌溉渠唯一标识字段名,默认 'id' */
14
+ id?: string;
15
+ /** 灌溉渠名称字段名,默认 'name' */
16
+ name?: string;
17
+ /** 坐标点数组字段名,默认 'points' */
18
+ points?: string;
19
+ /** 灌溉渠样式字段名,默认 'path' */
20
+ path?: string;
21
+ /** 选中状态样式字段名,默认 'selectedPath' */
22
+ selectedPath?: string;
23
+ /** 进水口图标配置字段名,默认 'inlet' */
24
+ inlet?: string;
25
+ /** 出水口图标配置字段名,默认 'outlet' */
26
+ outlet?: string;
27
+ /** 是否显示距离字段名,默认 'showDistance' */
28
+ showDistance?: string;
29
+ }
30
+ /**
31
+ * 进出水口图标配置
32
+ * @description 控制进出水口的图标样式,有值时显示,undefined 时不显示
33
+ */
34
+ export interface IrrigationPortIconConfig {
35
+ /** 图标:预设名称(如 'pulse-green')| SVG 字符串 | SVG 配置对象 | 图片 URL */
36
+ icon?: string | SvgIconConfig;
37
+ /** 图标尺寸,默认 [36, 36] */
38
+ iconSize?: [number, number] | number;
39
+ /** 图标锚点,默认中心 */
40
+ iconAnchor?: [number, number];
41
+ /** 图标颜色(仅对预设图标和 SVG 配置生效) */
42
+ color?: string;
43
+ /** 是否启用动画(如脉冲图标的扩散动画),默认 true */
44
+ animated?: boolean;
45
+ }
46
+ /**
47
+ * 灌溉渠数据
48
+ * @description 灌溉渠的基础数据结构
49
+ */
50
+ export interface IrrigationData {
51
+ /** 灌溉渠唯一标识 */
52
+ id: string | number;
53
+ /** 灌溉渠名称 */
54
+ name?: string;
55
+ /** 灌溉渠经过的坐标点数组 */
56
+ points: Coordinate[];
57
+ /** 灌溉渠样式 */
58
+ path?: PathOptions;
59
+ /** 选中状态的样式 */
60
+ selectedPath?: PathOptions;
61
+ /**
62
+ * 进水口图标配置
63
+ * @description 有值时显示进水口标记(在渠道起点),undefined 时不显示
64
+ */
65
+ inlet?: IrrigationPortIconConfig;
66
+ /**
67
+ * 出水口图标配置
68
+ * @description 有值时显示出水口标记(在渠道终点),undefined 时不显示
69
+ */
70
+ outlet?: IrrigationPortIconConfig;
71
+ /** 是否显示距离,不设置时使用组件 props.showDistance */
72
+ showDistance?: boolean;
73
+ }
74
+ /**
75
+ * 灌溉渠新建结果
76
+ * @description 新建灌溉渠后返回的数据
77
+ */
78
+ export interface IrrigationCreateResult {
79
+ /** 灌溉渠经过的坐标点 */
80
+ points: Coordinate[];
81
+ /** 灌溉渠名称 */
82
+ name: string;
83
+ }
84
+ /**
85
+ * 灌溉渠编辑结果
86
+ * @description 编辑灌溉渠后返回的数据(重绘形状时触发)
87
+ */
88
+ export interface IrrigationEditResult {
89
+ /** 被编辑的灌溉渠 ID */
90
+ channelId: string | number;
91
+ /** 编辑前的坐标点 */
92
+ oldPoints: Coordinate[];
93
+ /** 编辑后的坐标点 */
94
+ newPoints: Coordinate[];
95
+ }
96
+ /**
97
+ * 灌溉渠属性编辑参数
98
+ * @description 点击编辑按钮时触发,用于打开属性编辑抽屉
99
+ */
100
+ export interface IrrigationEditPropertyParams {
101
+ /** 被编辑的灌溉渠 ID */
102
+ channelId: string | number;
103
+ /** 灌溉渠完整数据 */
104
+ channel: IrrigationData;
105
+ }
106
+ /**
107
+ * 灌溉渠删除结果
108
+ * @description 删除灌溉渠后返回的数据
109
+ */
110
+ export interface IrrigationDeleteResult {
111
+ /** 被删除的灌溉渠 ID */
112
+ channelId: string | number;
113
+ }
114
+ /**
115
+ * 灌溉渠反转结果
116
+ * @description 反转灌溉渠流向后返回的数据
117
+ */
118
+ export interface IrrigationReverseResult {
119
+ /** 灌溉渠 ID */
120
+ channelId: string | number;
121
+ /** 反转前的坐标点 */
122
+ oldPoints: Coordinate[];
123
+ /** 反转后的坐标点 */
124
+ newPoints: Coordinate[];
125
+ }
126
+ /**
127
+ * Irrigation 事件回调集合
128
+ * @description 统一的声明式事件管理,类似 Ant Design Table 的 onRow
129
+ */
130
+ export interface IrrigationEvents {
131
+ /** 点击灌溉渠时的回调 */
132
+ onClick?: (channel: IrrigationData) => void;
133
+ /** 选中状态变化时的回调 */
134
+ onSelect?: (id: string | number | null) => void;
135
+ /** 右键点击灌溉渠时的回调 */
136
+ onContextMenu?: (channel: IrrigationData, e: L.LeafletMouseEvent) => void;
137
+ }
138
+ /**
139
+ * 灌溉渠三态样式配置
140
+ * @description 统一管理默认态、选中态、编辑态的 Leaflet Path 样式
141
+ */
142
+ export interface IrrigationPathOptions {
143
+ /** 默认态样式 */
144
+ default?: PathOptions;
145
+ /** 选中态样式 */
146
+ selected?: PathOptions;
147
+ /**
148
+ * 编辑态样式
149
+ * @description 除标准 PathOptions 外,支持 vertexColor 自定义顶点标记颜色
150
+ */
151
+ editing?: PathOptions & {
152
+ /** 编辑态顶点标记边框颜色,默认使用 editing.color */
153
+ vertexColor?: string;
154
+ };
155
+ }
156
+ /**
157
+ * 灌溉渠组件属性
158
+ * @description Irrigation 组件的 Props 定义
159
+ */
160
+ export interface IrrigationProps {
161
+ /** 灌溉渠数据数组 */
162
+ dataSource?: IrrigationData[] | Record<string, unknown>[];
163
+ /** 自定义数据字段名映射 */
164
+ fieldNames?: IrrigationFieldNames;
165
+ /** 点击灌溉渠时的回调 */
166
+ onClick?: (channel: IrrigationData) => void;
167
+ /**
168
+ * 三态样式配置
169
+ * @description 统一配置默认态、选中态、编辑态样式,优先级高于 path/selectedPath
170
+ * @example
171
+ * ```tsx
172
+ * <Irrigation options={{ default: { color: '#1E90FF' }, selected: { color: '#1677ff' }, editing: { color: '#faad14', weight: 4 } }} />
173
+ * ```
174
+ */
175
+ options?: IrrigationPathOptions;
176
+ /** 默认灌溉渠样式(向后兼容,优先级低于 options.default) */
177
+ path?: PathOptions;
178
+ /** 选中状态的样式(向后兼容,优先级低于 options.selected) */
179
+ selectedPath?: PathOptions;
180
+ /** 编辑模式 */
181
+ editMode?: boolean | ('create' | 'edit' | 'delete' | 'reverse')[] | {
182
+ /** 启用的编辑按钮 */
183
+ enabled?: boolean | ('create' | 'edit' | 'delete' | 'reverse')[];
184
+ /** 自定义工具栏内容 */
185
+ toolbar?: ReactNode;
186
+ /** 内置按钮的统一颜色(支持预设色和自定义颜色如 #ff0000、rgba(255,0,0,0.5)) */
187
+ color?: 'default' | 'primary' | 'danger' | 'success' | 'warning' | 'error' | 'magenta' | 'volcano' | 'gold' | 'orange' | 'cyan' | 'geekblue' | 'purple' | string;
188
+ /** 内置按钮的统一尺寸(支持预设尺寸和自定义数字,单位 px) */
189
+ size?: 'large' | 'middle' | 'small' | number;
190
+ };
191
+ /** 新建灌溉渠回调 */
192
+ onCreate?: (result: IrrigationCreateResult) => void;
193
+ /** 编辑灌溉渠属性回调(点击编辑按钮时触发) */
194
+ onEdit?: (result: IrrigationEditPropertyParams) => void;
195
+ /** 重绘灌溉渠形状回调(重绘保存后触发) */
196
+ onRedraw?: (result: IrrigationEditResult) => void;
197
+ /** 删除灌溉渠回调 */
198
+ onDelete?: (result: IrrigationDeleteResult) => void;
199
+ /** 保存回调 */
200
+ onSave?: (result: {
201
+ mode: string;
202
+ } & (IrrigationCreateResult | IrrigationEditResult)) => void;
203
+ /** 选中变化回调 */
204
+ onSelect?: (id: string | number | null) => void;
205
+ /** 反转流向回调 */
206
+ onReverse?: (result: IrrigationReverseResult) => void;
207
+ /** 选中的灌溉渠 ID(受控模式) */
208
+ value?: string | number | null;
209
+ /** 默认选中的灌溉渠 ID(非受控模式) */
210
+ defaultValue?: string | number;
211
+ /** 是否显示灌溉渠长度 */
212
+ showDistance?: boolean;
213
+ /** 是否显示方向箭头(蚁行动画) */
214
+ showArrow?: boolean;
215
+ /** 是否显示选中灌溉渠的箭头 */
216
+ showSelectedArrow?: boolean;
217
+ /** 蚁行路径配置 */
218
+ antPathConfig?: AntPathConfig;
219
+ /** 是否显示编辑模式提示 */
220
+ showEditHint?: boolean;
221
+ /**
222
+ * 进出水口默认图标
223
+ * @description 所有渠道的进水口/出水口默认图标配置,可被数据项级 channel.inlet/outlet 覆盖。
224
+ * 不传时,有 channel.inlet/outlet 配置的渠道使用内置默认箭头图标。
225
+ * @example
226
+ * ```tsx
227
+ * <Irrigation
228
+ * icons={{
229
+ * inlet: { icon: 'pulse-green', iconSize: 32 },
230
+ * outlet: { icon: 'pulse-orange', iconSize: 32 },
231
+ * }}
232
+ * />
233
+ * ```
234
+ */
235
+ icons?: {
236
+ inlet?: IrrigationPortIconConfig;
237
+ outlet?: IrrigationPortIconConfig;
238
+ };
239
+ /**
240
+ * 统一的声明式事件管理(类似 Ant Design Table 的 onRow)
241
+ * @description 返回一个事件回调对象,可按需绑定事件,支持基于数据项的条件化事件处理
242
+ * @param channel - 当前灌溉渠数据
243
+ * @param index - 当前灌溉渠在数据源中的索引
244
+ * @returns IrrigationEvents 事件回调对象
245
+ * @example
246
+ * ```tsx
247
+ * <Irrigation
248
+ * dataSource={channels}
249
+ * onRow={(channel, index) => ({
250
+ * onClick: () => console.log('点击了', channel.name),
251
+ * onContextMenu: (channel, e) => { e.originalEvent.preventDefault(); },
252
+ * })}
253
+ * />
254
+ * ```
255
+ */
256
+ onRow?: (channel: IrrigationData, index: number) => IrrigationEvents;
257
+ /**
258
+ * 是否显示加载状态
259
+ * @description 当为 true 时,在地图上显示加载动画覆盖层
260
+ * @default false
261
+ */
262
+ loading?: boolean;
263
+ /**
264
+ * 加载遮罩配置
265
+ * @description 自定义加载遮罩的样式
266
+ */
267
+ loadingMask?: {
268
+ /** 是否显示遮罩,默认 true */
269
+ enabled?: boolean;
270
+ /** 遮罩背景色,默认 'rgba(255, 255, 255, 0.7)' */
271
+ background?: string;
272
+ /** 遮罩层级,默认 1000 */
273
+ zIndex?: number;
274
+ };
275
+ }
276
+ /**
277
+ * Irrigation 组件 Ref
278
+ * @description 暴露给父组件的方法
279
+ */
280
+ export interface IrrigationRef {
281
+ /** 退出创建模式 */
282
+ exitCreateMode: () => void;
283
+ /** 退出编辑模式 */
284
+ exitEditMode: () => void;
285
+ /** 调整地图视野以适应所有灌溉渠 */
286
+ fitBounds: () => void;
287
+ /** 获取当前选中的灌溉渠数据 */
288
+ getSelected: () => IrrigationData | null;
289
+ /** 设置选中的灌溉渠 */
290
+ setValue: (id: string | number | null) => void;
291
+ /** 清除选中状态 */
292
+ clearSelection: () => void;
293
+ /** 显示灌溉渠距离标签 */
294
+ showDistanceLabels: (channelId?: string | number) => void;
295
+ /** 隐藏灌溉渠距离标签 */
296
+ hideDistanceLabels: (channelId?: string | number) => void;
297
+ /** 显示选中灌溉渠的距离标签 */
298
+ showSelectedDistanceLabels: () => void;
299
+ /** 隐藏选中灌溉渠的距离标签 */
300
+ hideSelectedDistanceLabels: () => void;
301
+ /** 获取灌溉渠总距离(米) */
302
+ getDistance: (channelId: string | number) => number | null;
303
+ /** 显示灌溉渠箭头(蚁行动画) */
304
+ showAntPath: (channelId?: string | number) => void;
305
+ /** 隐藏灌溉渠箭头(蚁行动画) */
306
+ hideAntPath: (channelId?: string | number) => void;
307
+ /** 显示灌溉渠进出水口标记(不传参显示全部) */
308
+ showPortLabels: (channelId?: string | number) => void;
309
+ /** 隐藏灌溉渠进出水口标记(不传参隐藏全部) */
310
+ hidePortLabels: (channelId?: string | number) => void;
311
+ /** 显示选中灌溉渠的进出水口标记 */
312
+ showSelectedPortLabels: () => void;
313
+ /** 隐藏选中灌溉渠的进出水口标记 */
314
+ hideSelectedPortLabels: () => void;
315
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"irrigation.d.ts","sourceRoot":"","sources":["../../src/types/irrigation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * 图层相关类型定义
3
+ */
4
+ /**
5
+ * 图层类型
6
+ * @description 天地图底图的类型
7
+ */
8
+ export type LayerType = 'vector' | 'satellite' | 'terrain';
9
+ /**
10
+ * 天地图组件属性
11
+ * @description TianDiTuLayer 组件的 Props 定义
12
+ */
13
+ export interface TianDiTuLayerProps {
14
+ /** 天地图 API 密钥 */
15
+ apiKey?: string;
16
+ /** 是否显示标注图层 */
17
+ showAnnotation?: boolean;
18
+ /** 图层类型:矢量/卫星/地形 */
19
+ layerType?: LayerType;
20
+ /** 自定义瓦片服务 URL */
21
+ tileUrl?: string;
22
+ /** 自定义标注服务 URL */
23
+ annotationUrl?: string;
24
+ /** 叠加瓦片服务 URL */
25
+ overlayUrl?: string;
26
+ /** 瓦片服务子域名 */
27
+ subdomains?: string[];
28
+ /** 最大缩放级别 */
29
+ maxZoom?: number;
30
+ /** 最小缩放级别 */
31
+ minZoom?: number;
32
+ /** 版权信息,设为 null 时不显示版权控件 */
33
+ attribution?: string | null;
34
+ /** 主题模式 */
35
+ theme?: 'light' | 'dark';
36
+ /** 是否显示图层选择器 */
37
+ showLayerSelector?: boolean;
38
+ /** 图层类型变化回调 */
39
+ onLayerTypeChange?: (layerType: LayerType) => void;
40
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layer.d.ts","sourceRoot":"","sources":["../../src/types/layer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;AAE3D;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,iBAAiB;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,kBAAkB;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc;IACd,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW;IACX,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,gBAAgB;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe;IACf,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;CACpD"}