@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,382 @@
1
+ /**
2
+ * 道路相关类型定义
3
+ */
4
+ import type { Coordinate, PathOptions } from './basic';
5
+ import type { ReactNode } from 'react';
6
+ /**
7
+ * 编辑模式对象配置(Road)
8
+ */
9
+ export interface RoadEditModeConfig {
10
+ /** 启用的编辑按钮 */
11
+ enabled?: boolean | ('create' | 'edit' | 'redraw' | 'delete')[];
12
+ /** 自定义工具栏内容 */
13
+ toolbar?: ReactNode;
14
+ /** 内置按钮的统一颜色(支持预设色和自定义颜色如 #ff0000、rgba(255,0,0,0.5)) */
15
+ color?: 'default' | 'primary' | 'danger' | 'success' | 'warning' | 'error' | 'magenta' | 'volcano' | 'gold' | 'orange' | 'cyan' | 'geekblue' | 'purple' | string;
16
+ /** 内置按钮的统一尺寸(支持预设尺寸和自定义数字,单位 px) */
17
+ size?: 'large' | 'middle' | 'small' | number;
18
+ /** 是否仅显示图标(不显示文字),默认 false */
19
+ iconOnly?: boolean;
20
+ }
21
+ /**
22
+ * 蚁行路径配置
23
+ * @description 道路蚁行动画效果的配置选项
24
+ */
25
+ export interface AntPathConfig {
26
+ /** 是否使用脉冲效果,默认 true */
27
+ pulse?: boolean;
28
+ /** 动画延迟(毫秒),默认 400 */
29
+ delay?: number;
30
+ /** 虚线样式,默认 'a, b, c, d' */
31
+ dashArray?: string | number[];
32
+ /** 虚线颜色,默认使用道路颜色 */
33
+ color?: string;
34
+ /** 线条宽度,默认使用道路宽度 */
35
+ weight?: number;
36
+ /** 透明度,默认 0.8 */
37
+ opacity?: number;
38
+ }
39
+ /**
40
+ * 蚁行路径显示模式
41
+ * @description 控制道路蚁行动画的显示方式
42
+ * @example
43
+ * ```tsx
44
+ * <Road antPath /> // 全部显示
45
+ * <Road antPath="selected" /> // 仅选中显示
46
+ * <Road antPath={{ enabled: true, config: { delay: 200 } }} /> // 完整配置
47
+ * ```
48
+ */
49
+ export type AntPathMode = boolean | 'selected' | {
50
+ /** 是否显示:true=全部, 'selected'=仅选中, false/undefined=不显示 */
51
+ enabled?: boolean | 'selected';
52
+ /** 动画配置 */
53
+ config?: AntPathConfig;
54
+ };
55
+ /**
56
+ * 道路三态样式配置
57
+ * @description 统一管理默认态、选中态、编辑态的 Leaflet Path 样式
58
+ */
59
+ export interface RoadPathOptions {
60
+ /** 默认态样式 */
61
+ default?: PathOptions;
62
+ /** 选中态样式 */
63
+ selected?: PathOptions;
64
+ /**
65
+ * 编辑态样式
66
+ * @description 除标准 PathOptions 外,支持 vertexColor 自定义顶点标记颜色
67
+ */
68
+ editing?: PathOptions & {
69
+ /** 编辑态顶点标记边框颜色,默认使用 editing.color */
70
+ vertexColor?: string;
71
+ };
72
+ }
73
+ /**
74
+ * 道路字段名映射
75
+ * @description 自定义 dataSource 中数据的字段名
76
+ */
77
+ export interface RoadFieldNames {
78
+ /** 道路唯一标识字段名,默认 'id' */
79
+ id?: string;
80
+ /** 道路名称字段名,默认 'name' */
81
+ name?: string;
82
+ /** 坐标点数组字段名,默认 'points' */
83
+ points?: string;
84
+ /** 道路距离字段名,默认 'distance' */
85
+ distance?: string;
86
+ }
87
+ /**
88
+ * 道路数据
89
+ * @description 田间道路的基础数据结构
90
+ * @example
91
+ * ```ts
92
+ * const road: RoadData = {
93
+ * id: 'road-1',
94
+ * name: '主干道 A',
95
+ * points: [[29.95, 117.98], [29.96, 117.99]],
96
+ * distance: 500,
97
+ * options: { default: { color: '#1668dc', weight: 10, opacity: 1 } }
98
+ * };
99
+ * ```
100
+ */
101
+ export interface RoadData {
102
+ /** 道路唯一标识 */
103
+ id: string | number;
104
+ /** 道路名称 */
105
+ name?: string;
106
+ /**
107
+ * 道路经过的坐标点数组
108
+ * @description 坐标格式为 [纬度, 经度]
109
+ * @example [[29.95, 117.98], [29.96, 117.99]]
110
+ */
111
+ points: Coordinate[];
112
+ /**
113
+ * 道路距离(米)
114
+ * @description 可选字段,如未提供会自动计算
115
+ */
116
+ distance?: string | number;
117
+ /**
118
+ * 道路样式配置
119
+ * @description 该道路的专属样式,会覆盖组件的 options 配置
120
+ */
121
+ options?: RoadPathOptions;
122
+ /** 其他自定义字段 */
123
+ [key: string]: unknown;
124
+ }
125
+ /**
126
+ * 道路新建结果
127
+ * @description 新建道路后返回的数据
128
+ */
129
+ export interface RoadCreateResult {
130
+ /** 道路经过的坐标点 */
131
+ points: Coordinate[];
132
+ /** 道路名称 */
133
+ name: string;
134
+ }
135
+ /**
136
+ * 道路编辑结果
137
+ * @description 编辑道路后返回的数据
138
+ */
139
+ export interface RoadEditResult {
140
+ /** 被编辑的道路 ID */
141
+ roadId: string | number;
142
+ /** 编辑前的坐标点 */
143
+ oldPoints: Coordinate[];
144
+ /** 编辑后的坐标点 */
145
+ newPoints: Coordinate[];
146
+ }
147
+ /**
148
+ * 道路编辑抽屉结果
149
+ * @description 点击编辑按钮触发,用于打开编辑抽屉
150
+ */
151
+ export interface RoadEditDrawerResult {
152
+ /** 被编辑的道路 ID */
153
+ roadId: string | number;
154
+ /** 道路数据 */
155
+ road: RoadData;
156
+ }
157
+ /**
158
+ * 道路删除结果
159
+ * @description 删除道路后返回的数据
160
+ */
161
+ export interface RoadDeleteResult {
162
+ /** 被删除的道路 ID */
163
+ roadId: string | number;
164
+ }
165
+ /**
166
+ * Road 事件回调集合
167
+ * @description 统一的声明式事件管理,类似 Ant Design Table 的 onRow
168
+ */
169
+ export interface RoadEvents {
170
+ /** 点击道路时的回调 */
171
+ onClick?: (road: RoadData) => void;
172
+ /** 选中状态变化时的回调 */
173
+ onSelect?: (id: string | number | null) => void;
174
+ /** 右键点击道路时的回调 */
175
+ onContextMenu?: (road: RoadData, e: L.LeafletMouseEvent) => void;
176
+ }
177
+ /**
178
+ * Road 组件 Ref
179
+ * @description 暴露给父组件的方法
180
+ */
181
+ export interface RoadRef {
182
+ /** 退出创建模式 */
183
+ exitCreateMode: () => void;
184
+ /** 退出编辑模式 */
185
+ exitEditMode: () => void;
186
+ /** 调整地图视野以适应所有道路 */
187
+ fitBounds: () => void;
188
+ /** 获取当前选中的道路数据 */
189
+ getSelected: () => RoadData | null;
190
+ /** 设置选中的道路 */
191
+ setValue: (id: string | number | null) => void;
192
+ /** 清除选中状态 */
193
+ clearSelection: () => void;
194
+ /** 显示道路距离标签 */
195
+ showDistanceLabels: (roadId?: string | number) => void;
196
+ /** 隐藏道路距离标签 */
197
+ hideDistanceLabels: (roadId?: string | number) => void;
198
+ /** 显示选中道路的距离标签 */
199
+ showSelectedDistanceLabels: () => void;
200
+ /** 隐藏选中道路的距离标签 */
201
+ hideSelectedDistanceLabels: () => void;
202
+ /** 获取道路总距离(米) */
203
+ getDistance: (roadId: string | number) => number | null;
204
+ /** 显示道路箭头(蚁行动画) */
205
+ showAntPath: (roadId?: string | number) => void;
206
+ /** 隐藏道路箭头(蚁行动画) */
207
+ hideAntPath: (roadId?: string | number) => void;
208
+ }
209
+ /**
210
+ * 道路组件属性
211
+ * @description Road 组件的 Props 定义
212
+ */
213
+ export interface RoadProps<T = Record<string, unknown>> {
214
+ /**
215
+ * 道路数据数组
216
+ * @description 每个道路对象包含 id、name、points、distance、options 等字段
217
+ * @example
218
+ * ```ts
219
+ * const roads = [
220
+ * {
221
+ * id: 'road-1',
222
+ * name: '主干道',
223
+ * points: [[29.95, 117.98], [29.96, 117.99]],
224
+ * distance: 500,
225
+ * options: { default: { color: '#1668dc', weight: 10, opacity: 1 } }
226
+ * }
227
+ * ];
228
+ * ```
229
+ */
230
+ dataSource?: T[];
231
+ /**
232
+ * 自定义字段名映射
233
+ * @description 当数据源字段名与默认字段名不同时,可通过此配置映射
234
+ * @example
235
+ * ```ts
236
+ * fieldNames={{ id: 'roadId', name: 'roadName', points: 'coordinates' }}
237
+ * ```
238
+ */
239
+ fieldNames?: RoadFieldNames;
240
+ /**
241
+ * 点击道路时的回调
242
+ * @param road - 被点击的道路数据
243
+ */
244
+ onClick?: (road: RoadData) => void;
245
+ /**
246
+ * 右键点击道路时的回调
247
+ * @param road - 被右键点击的道路数据
248
+ * @param event - Leaflet 鼠标事件
249
+ */
250
+ onContextMenu?: (road: RoadData, event: L.LeafletMouseEvent) => void;
251
+ /**
252
+ * 道路样式配置
253
+ * @description 统一管理默认态、选中态、编辑态的 Leaflet Path 样式
254
+ * @example
255
+ * ```ts
256
+ * options={{
257
+ * default: { color: '#1668dc', weight: 10, opacity: 1 },
258
+ * selected: { color: '#d32029', weight: 10, opacity: 1 },
259
+ * editing: { color: '#d89614', weight: 10, opacity: 1 },
260
+ * }}
261
+ * ```
262
+ */
263
+ options?: RoadPathOptions;
264
+ /**
265
+ * 编辑模式
266
+ * @description 开启道路编辑功能,可传入 true 开启全部功能,或数组指定开启的功能,或对象配置
267
+ * @example
268
+ * ```ts
269
+ * editMode={true} // 开启全部编辑功能
270
+ * editMode={['create', 'edit', 'redraw']} // 仅开启新建、编辑和重绘
271
+ * editMode={{ enabled: ['create', 'edit'], toolbar: <ToolbarButton>自定义</ToolbarButton> }} // 对象配置
272
+ * ```
273
+ */
274
+ editMode?: boolean | ('create' | 'edit' | 'redraw' | 'delete')[] | RoadEditModeConfig;
275
+ /**
276
+ * 新建道路回调
277
+ * @param result - 新建结果,包含 points 和 name
278
+ */
279
+ onCreate?: (result: RoadCreateResult) => void;
280
+ /**
281
+ * 编辑道路回调(点击编辑按钮触发,用于打开编辑抽屉)
282
+ * @param result - 编辑结果,包含 roadId 和 road 数据
283
+ */
284
+ onEdit?: (result: RoadEditDrawerResult) => void;
285
+ /**
286
+ * 重绘道路回调
287
+ * @param result - 重绘结果,包含 roadId、oldPoints、newPoints
288
+ */
289
+ onRedraw?: (result: RoadEditResult) => void;
290
+ /**
291
+ * 删除道路回调
292
+ * @param result - 删除结果,包含 roadId
293
+ */
294
+ onDelete?: (result: RoadDeleteResult) => void;
295
+ /**
296
+ * 保存回调
297
+ * @description 新建或编辑保存时触发,mode 字段区分操作类型
298
+ */
299
+ onSave?: (result: {
300
+ mode: string;
301
+ } & (RoadCreateResult | RoadEditResult)) => void;
302
+ /**
303
+ * 选中变化回调
304
+ * @param id - 新选中的道路 ID,null 表示取消选中
305
+ */
306
+ onSelect?: (id: string | number | null) => void;
307
+ /**
308
+ * 选中的道路 ID(受控模式)
309
+ * @description 传入此属性时,组件进入受控模式,选中状态由父组件管理
310
+ */
311
+ value?: string | number | null;
312
+ /**
313
+ * 默认选中的道路 ID(非受控模式)
314
+ * @description 组件初始化时默认选中的道路
315
+ */
316
+ defaultValue?: string | number;
317
+ /**
318
+ * 蚁行动画配置
319
+ * @description 显示道路方向箭头动画
320
+ * @example
321
+ * ```tsx
322
+ * <Road antPath /> // 全部显示
323
+ * <Road antPath="selected" /> // 仅选中显示
324
+ * <Road antPath={{ enabled: true, config: { delay: 200 } }} />
325
+ * ```
326
+ */
327
+ antPath?: AntPathMode;
328
+ /**
329
+ * 是否显示道路长度标注
330
+ * @description 开启后,在每段道路中间显示距离标签
331
+ * @default false
332
+ */
333
+ showDistance?: boolean;
334
+ /**
335
+ * 仅显示选中道路的距离
336
+ * @description 当 showDistance 为 false 时,仅显示选中道路的距离标签
337
+ * @default false
338
+ */
339
+ showSelectedDistance?: boolean;
340
+ /**
341
+ * 是否显示编辑模式提示
342
+ * @description 开启后,进入编辑模式时会显示操作提示
343
+ * @default false
344
+ */
345
+ showEditHint?: boolean;
346
+ /**
347
+ * 统一的声明式事件管理(类似 Ant Design Table 的 onRow)
348
+ * @description 返回一个事件回调对象,可按需绑定事件,支持基于数据项的条件化事件处理
349
+ * @param road - 当前道路数据
350
+ * @param index - 当前道路在数据源中的索引
351
+ * @returns RoadEvents 事件回调对象
352
+ * @example
353
+ * ```tsx
354
+ * <Road
355
+ * dataSource={roads}
356
+ * onRow={(road, index) => ({
357
+ * onClick: () => console.log('点击了', road.name),
358
+ * onContextMenu: (road, e) => { e.originalEvent.preventDefault(); },
359
+ * })}
360
+ * />
361
+ * ```
362
+ */
363
+ onRow?: (road: RoadData, index: number) => RoadEvents;
364
+ /**
365
+ * 是否显示加载状态
366
+ * @description 当为 true 时,在地图上显示加载动画覆盖层
367
+ * @default false
368
+ */
369
+ loading?: boolean;
370
+ /**
371
+ * 加载遮罩配置
372
+ * @description 自定义加载遮罩的样式
373
+ */
374
+ loadingMask?: {
375
+ /** 是否显示遮罩,默认 true */
376
+ enabled?: boolean;
377
+ /** 遮罩背景色,默认 'rgba(255, 255, 255, 0.7)' */
378
+ background?: string;
379
+ /** 遮罩层级,默认 1000 */
380
+ zIndex?: number;
381
+ };
382
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"road.d.ts","sourceRoot":"","sources":["../../src/types/road.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,176 @@
1
+ /**
2
+ * 工具栏相关类型定义
3
+ */
4
+ import type { PlotEditMode } from './plot';
5
+ import type { ReactNode } from 'react';
6
+ import type { ToolbarColor, ToolbarSize } from '../components/shared/BaseEditToolbar';
7
+ /**
8
+ * 地块编辑工具栏属性
9
+ * @description PlotEditToolbar 组件的 Props 定义
10
+ */
11
+ export interface PlotEditToolbarProps {
12
+ /** 是否显示工具栏 */
13
+ visible: boolean;
14
+ /** 当前选中的地块 ID */
15
+ selectedPlotId: string | number | null;
16
+ /** 当前编辑模式 */
17
+ currentMode?: PlotEditMode;
18
+ /** 启用的按钮列表 */
19
+ enabledButtons?: ('redraw' | 'clip' | 'move' | 'create' | 'delete' | 'edit')[];
20
+ /** 提示信息 */
21
+ hintMessage?: string;
22
+ /** 是否显示编辑模式提示 */
23
+ showHint?: boolean;
24
+ /** 警告提示信息(不受 showHint 控制,始终显示) */
25
+ warningHint?: string;
26
+ /** 内置按钮的统一颜色 */
27
+ color?: ToolbarColor;
28
+ /** 工具栏尺寸 */
29
+ size?: ToolbarSize;
30
+ /** 是否仅显示图标(不显示文字) */
31
+ iconOnly?: boolean;
32
+ /** 自定义工具栏内容 */
33
+ children?: ReactNode;
34
+ /** 点击编辑按钮的回调(打开编辑抽屉) */
35
+ onEdit?: (plotId?: string | number | null) => void;
36
+ /** 点击重绘按钮的回调 */
37
+ onRedraw?: (plotId?: string | number | null) => void;
38
+ /** 点击剪辑按钮的回调 */
39
+ onClip?: (plotId?: string | number | null) => void;
40
+ /** 点击移动按钮的回调 */
41
+ onMove?: (plotId?: string | number | null) => void;
42
+ /** 点击新建按钮的回调 */
43
+ onCreate?: () => void;
44
+ /** 点击取消按钮的回调 */
45
+ onCancel?: () => void;
46
+ /** 点击保存按钮的回调 */
47
+ onSave?: (plotId?: string | number | null) => void;
48
+ /** 点击删除按钮的回调 */
49
+ onDelete?: (plotId?: string | number | null) => void;
50
+ }
51
+ /**
52
+ * 标注编辑工具栏属性
53
+ * @description MarkerEditToolbar 组件的 Props 定义
54
+ */
55
+ export interface MarkerEditToolbarProps {
56
+ /** 是否显示工具栏 */
57
+ visible: boolean;
58
+ /** 当前选中的标注 ID */
59
+ selectedMarkerId: string | number | null;
60
+ /** 当前编辑模式 */
61
+ currentMode?: 'idle' | 'create' | 'move';
62
+ /** 启用的按钮列表 */
63
+ enabledButtons?: ('create' | 'edit' | 'move' | 'delete')[];
64
+ /** 提示信息 */
65
+ hintMessage?: string;
66
+ /** 是否显示编辑模式提示 */
67
+ showHint?: boolean;
68
+ /** 警告提示信息(不受 showHint 控制,始终显示) */
69
+ warningHint?: string;
70
+ /** 内置按钮的统一颜色 */
71
+ color?: ToolbarColor;
72
+ /** 工具栏尺寸 */
73
+ size?: ToolbarSize;
74
+ /** 是否仅显示图标(不显示文字) */
75
+ iconOnly?: boolean;
76
+ /** 自定义工具栏内容 */
77
+ children?: ReactNode;
78
+ /** 点击新建按钮的回调 */
79
+ onCreate?: () => void;
80
+ /** 点击编辑按钮的回调 */
81
+ onEdit?: (markerId?: string | number | null) => void;
82
+ /** 点击移动按钮的回调 */
83
+ onMove?: (markerId?: string | number | null) => void;
84
+ /** 点击取消按钮的回调 */
85
+ onCancel?: () => void;
86
+ /** 点击保存按钮的回调 */
87
+ onSave?: (markerId?: string | number | null) => void;
88
+ /** 点击删除按钮的回调 */
89
+ onDelete?: (markerId?: string | number | null) => void;
90
+ }
91
+ /**
92
+ * 道路编辑工具栏属性
93
+ * @description RoadEditToolbar 组件的 Props 定义
94
+ */
95
+ export interface RoadEditToolbarProps {
96
+ /** 是否显示工具栏 */
97
+ visible: boolean;
98
+ /** 当前选中的道路 ID */
99
+ selectedRoadId: string | number | null;
100
+ /** 当前编辑模式 */
101
+ currentMode?: 'idle' | 'create' | 'edit';
102
+ /** 启用的按钮列表 */
103
+ enabledButtons?: ('create' | 'edit' | 'redraw' | 'delete')[];
104
+ /** 已绘制的点数量 */
105
+ pointCount?: number;
106
+ /** 提示信息 */
107
+ hintMessage?: string;
108
+ /** 是否显示编辑模式提示 */
109
+ showHint?: boolean;
110
+ /** 警告提示信息(不受 showHint 控制,始终显示) */
111
+ warningHint?: string;
112
+ /** 内置按钮的统一颜色 */
113
+ color?: ToolbarColor;
114
+ /** 工具栏尺寸 */
115
+ size?: ToolbarSize;
116
+ /** 是否仅显示图标(不显示文字) */
117
+ iconOnly?: boolean;
118
+ /** 自定义工具栏内容 */
119
+ children?: ReactNode;
120
+ /** 点击新建按钮的回调 */
121
+ onCreate?: () => void;
122
+ /** 点击编辑按钮的回调(打开编辑抽屉) */
123
+ onEdit?: (roadId?: string | number | null) => void;
124
+ /** 点击重绘按钮的回调 */
125
+ onRedraw?: (roadId?: string | number | null) => void;
126
+ /** 点击取消按钮的回调 */
127
+ onCancel?: () => void;
128
+ /** 点击保存按钮的回调 */
129
+ onSave?: (roadId?: string | number | null) => void;
130
+ /** 点击删除按钮的回调 */
131
+ onDelete?: (roadId?: string | number | null) => void;
132
+ }
133
+ /**
134
+ * 灌溉渠编辑工具栏属性
135
+ * @description IrrigationEditToolbar 组件的 Props 定义
136
+ */
137
+ export interface IrrigationEditToolbarProps {
138
+ /** 是否显示工具栏 */
139
+ visible: boolean;
140
+ /** 当前选中的灌溉渠 ID */
141
+ selectedChannelId: string | number | null;
142
+ /** 当前编辑模式 */
143
+ currentMode?: 'idle' | 'create' | 'edit';
144
+ /** 启用的按钮列表 */
145
+ enabledButtons?: ('create' | 'edit' | 'redraw' | 'delete' | 'reverse')[];
146
+ /** 已绘制的点数量 */
147
+ pointCount?: number;
148
+ /** 提示信息 */
149
+ hintMessage?: string;
150
+ /** 自定义工具栏内容 */
151
+ children?: ReactNode;
152
+ /** 内置按钮的统一颜色 */
153
+ color?: ToolbarColor;
154
+ /** 工具栏尺寸 */
155
+ size?: ToolbarSize;
156
+ /** 是否仅显示图标(不显示文字) */
157
+ iconOnly?: boolean;
158
+ /** 点击新建按钮的回调 */
159
+ onCreate?: () => void;
160
+ /** 点击编辑按钮的回调 */
161
+ onEdit?: (channelId?: string | number | null) => void;
162
+ /** 点击重绘按钮的回调 */
163
+ onRedraw?: (channelId?: string | number | null) => void;
164
+ /** 点击取消按钮的回调 */
165
+ onCancel?: () => void;
166
+ /** 点击保存按钮的回调 */
167
+ onSave?: (channelId?: string | number | null) => void;
168
+ /** 点击删除按钮的回调 */
169
+ onDelete?: (channelId?: string | number | null) => void;
170
+ /** 点击反转按钮的回调 */
171
+ onReverse?: (channelId?: string | number | null) => void;
172
+ /** 是否显示编辑模式提示 */
173
+ showHint?: boolean;
174
+ /** 警告提示信息(不受 showHint 控制,始终显示) */
175
+ warningHint?: string;
176
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbar.d.ts","sourceRoot":"","sources":["../../src/types/toolbar.ts"],"names":[],"mappings":"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"}