react-swipe-map 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +250 -58
- package/dist/index.es.js +1 -1
- package/dist/index.umd.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,73 +1,265 @@
|
|
|
1
|
-
#
|
|
1
|
+
# react-swipe-map
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
一个基于 React 和 Leaflet 的卷帘地图组件,支持左右图层对比展示,适用于地图数据对比、变化检测等场景。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## ✨ 特性
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
7
|
+
- 🗺️ 基于 Leaflet 的卷帘地图组件
|
|
8
|
+
- 🔄 支持卷帘模式和普通地图模式切换
|
|
9
|
+
- 📍 支持左右图层独立管理
|
|
10
|
+
- 🎨 支持自定义控件图标
|
|
11
|
+
- 🗂️ 支持底图切换
|
|
12
|
+
- 📦 开箱即用,简单易用
|
|
9
13
|
|
|
10
|
-
##
|
|
14
|
+
## 📦 安装
|
|
11
15
|
|
|
12
|
-
|
|
16
|
+
```bash
|
|
17
|
+
npm install react-swipe-map
|
|
18
|
+
# 或
|
|
19
|
+
yarn add react-swipe-map
|
|
20
|
+
# 或
|
|
21
|
+
pnpm add react-swipe-map
|
|
22
|
+
```
|
|
13
23
|
|
|
14
|
-
##
|
|
24
|
+
## 🚀 快速开始
|
|
15
25
|
|
|
16
|
-
|
|
26
|
+
### 基本使用
|
|
17
27
|
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
|
|
28
|
+
```tsx
|
|
29
|
+
import { useEffect, useMemo, useRef, useState } from "react";
|
|
30
|
+
import L from "leaflet";
|
|
31
|
+
import "leaflet/dist/leaflet.css";
|
|
32
|
+
import "./App.scss";
|
|
33
|
+
// @ts-ignore
|
|
34
|
+
// import { Map } from "react-roll-map-testone";
|
|
35
|
+
import Map from "./react-leaflet-side-by-side/index";
|
|
36
|
+
// import {}
|
|
37
|
+
import RollMapIcon from "./assets/roll-map.png";
|
|
38
|
+
import NormalMapIcon from "./assets/normal-map.png";
|
|
39
|
+
import BaseMapSelectIcon from "./assets/base-map-select.png";
|
|
40
|
+
// @ts-ignore
|
|
41
|
+
// import Map from "react-swipe-map";
|
|
42
|
+
import { Button } from "antd";
|
|
43
|
+
let baseMapList = [
|
|
21
44
|
{
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
// Other configs...
|
|
34
|
-
],
|
|
35
|
-
languageOptions: {
|
|
36
|
-
parserOptions: {
|
|
37
|
-
project: ['./tsconfig.node.json', './tsconfig.app.json'],
|
|
38
|
-
tsconfigRootDir: import.meta.dirname,
|
|
39
|
-
},
|
|
40
|
-
// other options...
|
|
41
|
-
},
|
|
45
|
+
mapUrl:
|
|
46
|
+
"http://36.110.12.229:9015/usmaps?service=WMTS&version=1.0.0&request=GetTile&tk=53a6c3d4-4821-418d-8403-27213bac20c6&Layer&Style=1&Format=image/png&TileMatrixSet=l&TileMatrix={z}&TileRow={y}&TileCol={x}",
|
|
47
|
+
center: [30.5984, 114.3118],
|
|
48
|
+
zoomOffset: 0,
|
|
49
|
+
zoom: 6,
|
|
50
|
+
maxZoom: 18,
|
|
51
|
+
type: "4326",
|
|
52
|
+
id: "imagesky4326",
|
|
53
|
+
name: "天地图WMTS影像(4326)",
|
|
54
|
+
checked: false,
|
|
42
55
|
},
|
|
43
|
-
|
|
56
|
+
{
|
|
57
|
+
id: "1154781632637710336",
|
|
58
|
+
name: "4490天地图影像注记",
|
|
59
|
+
icon: "ca3fe93b207545558ba5c601a8d36c31",
|
|
60
|
+
mapUrl: "http://10.17.17.243/tdtyxzj_c/{z}/{y}/{x}.png",
|
|
61
|
+
type: "4326",
|
|
62
|
+
centre: [23.641, 112.983],
|
|
63
|
+
bounds: null,
|
|
64
|
+
zoom: 7,
|
|
65
|
+
zoomOffset: 1,
|
|
66
|
+
checked: true,
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
function App() {
|
|
70
|
+
const [isRollMap, setIsRollMap] = useState(false);
|
|
71
|
+
const rollMapRef = useRef(null);
|
|
72
|
+
// 在左侧图层上添加一个marker
|
|
73
|
+
const addMarkerToLeft = () => {
|
|
74
|
+
if (!rollMapRef.current) return;
|
|
75
|
+
const marker = L.marker([30.5984, 114.3118], {
|
|
76
|
+
pane: "leftPane",
|
|
77
|
+
});
|
|
78
|
+
(rollMapRef.current as any).addLeftLayers([marker]);
|
|
79
|
+
};
|
|
80
|
+
const addGeoJsonToRight = () => {
|
|
81
|
+
if (!rollMapRef.current) return;
|
|
82
|
+
const geojson = L.geoJSON(
|
|
83
|
+
{
|
|
84
|
+
type: "Feature",
|
|
85
|
+
geometry: {
|
|
86
|
+
type: "Polygon",
|
|
87
|
+
coordinates: [
|
|
88
|
+
[
|
|
89
|
+
[115.796, 40.4934],
|
|
90
|
+
[116.377, 40.3945],
|
|
91
|
+
[116.236, 39.9146],
|
|
92
|
+
[115.659, 40.0129],
|
|
93
|
+
[115.796, 40.4934],
|
|
94
|
+
],
|
|
95
|
+
],
|
|
96
|
+
},
|
|
97
|
+
} as any,
|
|
98
|
+
{
|
|
99
|
+
pane: "rightPane",
|
|
100
|
+
style: {
|
|
101
|
+
color: "red",
|
|
102
|
+
weight: 3,
|
|
103
|
+
opacity: 0.5,
|
|
104
|
+
fillColor: "red",
|
|
105
|
+
fillOpacity: 0.2,
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
);
|
|
109
|
+
(rollMapRef.current as any).addRightLayers([geojson]);
|
|
110
|
+
// 定位到geojson
|
|
111
|
+
((rollMapRef.current as any).getMapRef() as L.Map).fitBounds(
|
|
112
|
+
geojson.getBounds(),
|
|
113
|
+
);
|
|
114
|
+
};
|
|
115
|
+
return (
|
|
116
|
+
<>
|
|
117
|
+
<div className="app-container">
|
|
118
|
+
<div className="app-content">
|
|
119
|
+
<Map
|
|
120
|
+
ref={rollMapRef}
|
|
121
|
+
leftLayers={[]}
|
|
122
|
+
rightLayers={[]}
|
|
123
|
+
rollIcon={RollMapIcon}
|
|
124
|
+
normalIcon={NormalMapIcon}
|
|
125
|
+
baseMapSelectIcon={BaseMapSelectIcon}
|
|
126
|
+
baseMapList={baseMapList}
|
|
127
|
+
onIsRollMapChange={setIsRollMap}
|
|
128
|
+
></Map>
|
|
129
|
+
</div>
|
|
130
|
+
<div className="app-right">
|
|
131
|
+
<Button onClick={addMarkerToLeft} disabled={!isRollMap}>
|
|
132
|
+
添加marker到左侧图层
|
|
133
|
+
</Button>
|
|
134
|
+
<Button onClick={addGeoJsonToRight} disabled={!isRollMap}>
|
|
135
|
+
添加geojson到右侧图层
|
|
136
|
+
</Button>
|
|
137
|
+
</div>
|
|
138
|
+
</div>
|
|
139
|
+
</>
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
export default App;
|
|
44
144
|
```
|
|
45
145
|
|
|
46
|
-
|
|
146
|
+
## 📖 API 文档
|
|
47
147
|
|
|
48
|
-
|
|
49
|
-
// eslint.config.js
|
|
50
|
-
import reactX from 'eslint-plugin-react-x'
|
|
51
|
-
import reactDom from 'eslint-plugin-react-dom'
|
|
148
|
+
### Props
|
|
52
149
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
]
|
|
150
|
+
| 参数 | 说明 | 类型 | 默认值 | 必填 |
|
|
151
|
+
| ------------------- | ---------------- | ------------------------------------ | ------------------------------------------ | ---- |
|
|
152
|
+
| `leftLayers` | 左侧图层列表 | `L.Layer[]` | `[]` | 否 |
|
|
153
|
+
| `rightLayers` | 右侧图层列表 | `L.Layer[]` | `[]` | 否 |
|
|
154
|
+
| `mapSettings` | 地图配置 | `{ center: number[], zoom: number }` | `{ center: [35.8617, 104.1954], zoom: 4 }` | 否 |
|
|
155
|
+
| `rollIcon` | 卷帘模式图标 | `any` | 内置图标 | 否 |
|
|
156
|
+
| `normalIcon` | 普通模式图标 | `any` | 内置图标 | 否 |
|
|
157
|
+
| `baseMapSelectIcon` | 底图选择图标 | `any` | 内置图标 | 否 |
|
|
158
|
+
| `baseMapList` | 底图列表 | `BaseMapConfig[]` | `[]` | 否 |
|
|
159
|
+
| `onIsRollMapChange` | 卷帘模式变化回调 | `(isRollMap: boolean) => void` | - | 否 |
|
|
160
|
+
|
|
161
|
+
### BaseMapConfig
|
|
162
|
+
|
|
163
|
+
```typescript
|
|
164
|
+
interface BaseMapConfig {
|
|
165
|
+
id: string;
|
|
166
|
+
name: string;
|
|
167
|
+
mapUrl: string;
|
|
168
|
+
type: "4326" | "3857";
|
|
169
|
+
centre?: [number, number];
|
|
170
|
+
zoom?: number;
|
|
171
|
+
zoomOffset?: number;
|
|
172
|
+
maxZoom?: number;
|
|
173
|
+
checked?: boolean;
|
|
174
|
+
icon?: string;
|
|
175
|
+
}
|
|
73
176
|
```
|
|
177
|
+
|
|
178
|
+
### Ref Methods
|
|
179
|
+
|
|
180
|
+
通过 `ref` 可以访问以下方法:
|
|
181
|
+
|
|
182
|
+
| 方法名 | 说明 | 类型 |
|
|
183
|
+
| --------------------- | ---------------------- | ----------------------------- |
|
|
184
|
+
| `addLeftLayers` | 添加左侧图层 | `(layers: L.Layer[]) => void` |
|
|
185
|
+
| `addRightLayers` | 添加右侧图层 | `(layers: L.Layer[]) => void` |
|
|
186
|
+
| `clearLeftLayers` | 清除左侧图层 | `() => void` |
|
|
187
|
+
| `clearRightLayers` | 清除右侧图层 | `() => void` |
|
|
188
|
+
| `getMapInstance` | 获取地图实例 | `() => L.Map \| null` |
|
|
189
|
+
| `toggleRollMap` | 切换卷帘模式 | `(enabled: boolean) => void` |
|
|
190
|
+
| `getIsRollMap` | 获取当前是否为卷帘模式 | `() => boolean` |
|
|
191
|
+
| `getLeftLayersGroup` | 获取左侧图层组 | `() => L.LayerGroup \| null` |
|
|
192
|
+
| `getRightLayersGroup` | 获取右侧图层组 | `() => L.LayerGroup \| null` |
|
|
193
|
+
| `getMapRef` | 获取地图引用 | `() => L.Map \| null` |
|
|
194
|
+
|
|
195
|
+
## 🎯 使用场景
|
|
196
|
+
|
|
197
|
+
- 🗺️ **地图数据对比**:对比不同时期的地图数据
|
|
198
|
+
- 📍 **变化检测**:检测地理数据的变化情况
|
|
199
|
+
- 🎨 **图层对比**:对比不同图层的数据差异
|
|
200
|
+
- 📊 **数据分析**:辅助地理数据分析和可视化
|
|
201
|
+
|
|
202
|
+
## 💡 注意事项
|
|
203
|
+
|
|
204
|
+
1. **Leaflet 样式**:使用前需要引入 Leaflet 的 CSS 文件:
|
|
205
|
+
|
|
206
|
+
```tsx
|
|
207
|
+
import "leaflet/dist/leaflet.css";
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
2. **Pane 设置**:添加图层时,可以通过 `pane` 参数指定图层所属的 pane:
|
|
211
|
+
- `leftPane`:左侧图层
|
|
212
|
+
- `rightPane`:右侧图层
|
|
213
|
+
|
|
214
|
+
3. **卷帘模式**:只有在卷帘模式下,左右图层才会分开显示
|
|
215
|
+
|
|
216
|
+
4. **图层管理**:使用 `addLeftLayers` 和 `addRightLayers` 方法添加图层时,会自动更新卷帘控制器
|
|
217
|
+
|
|
218
|
+
## 🔧 依赖
|
|
219
|
+
|
|
220
|
+
- React >= 18.2.0
|
|
221
|
+
- React DOM >= 18.2.0
|
|
222
|
+
- Leaflet >= 1.9.4
|
|
223
|
+
- leaflet-side-by-side >= 2.2.0
|
|
224
|
+
- antd >= 6.2.3
|
|
225
|
+
|
|
226
|
+
## 📝 更新日志
|
|
227
|
+
|
|
228
|
+
### v1.0.2 (当前版本)
|
|
229
|
+
|
|
230
|
+
- ✨ 初始版本发布
|
|
231
|
+
- 🗺️ 支持卷帘地图基本功能
|
|
232
|
+
- 🔄 支持卷帘模式和普通地图模式切换
|
|
233
|
+
- 📍 支持左右图层独立管理
|
|
234
|
+
- 🎨 支持自定义控件图标
|
|
235
|
+
- 🗂️ 支持底图切换
|
|
236
|
+
|
|
237
|
+
## 🚧 后续优化计划
|
|
238
|
+
|
|
239
|
+
- [ ] 添加更多地图控件(比例尺、鹰眼图等)
|
|
240
|
+
- [ ] 支持更多地图服务(WMS、WFS 等)
|
|
241
|
+
- [ ] 优化性能,减少不必要的渲染
|
|
242
|
+
- [ ] 添加更多示例和文档
|
|
243
|
+
- [ ] 支持 TypeScript 类型定义优化
|
|
244
|
+
- [ ] 添加单元测试
|
|
245
|
+
- [ ] 支持自定义主题
|
|
246
|
+
- [ ] 支持移动端适配
|
|
247
|
+
|
|
248
|
+
## 🤝 贡献
|
|
249
|
+
|
|
250
|
+
欢迎提交 Issue 和 Pull Request!
|
|
251
|
+
|
|
252
|
+
## 📄 许可证
|
|
253
|
+
|
|
254
|
+
MIT License
|
|
255
|
+
|
|
256
|
+
## 📮 联系方式
|
|
257
|
+
|
|
258
|
+
如有问题或建议,请通过以下方式联系:
|
|
259
|
+
|
|
260
|
+
- 提交 Issue:[GitHub Issues](https://github.com/your-username/react-swipe-map/issues)
|
|
261
|
+
- 邮件:your-email@example.com
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
**⭐ 如果这个项目对你有帮助,请给一个 Star 支持一下!**
|
package/dist/index.es.js
CHANGED
|
@@ -24414,7 +24414,7 @@ const pS = Kn(
|
|
|
24414
24414
|
pane: "rightPane",
|
|
24415
24415
|
zoomOffset: b.zoomOffset || 0
|
|
24416
24416
|
});
|
|
24417
|
-
o.current.addLayer(E), s && s.current.setRightLayers(
|
|
24417
|
+
o.current.addLayer(E), s && s.current && s.current.setRightLayers(
|
|
24418
24418
|
o.current.getLayers()
|
|
24419
24419
|
);
|
|
24420
24420
|
} else
|
package/dist/index.umd.js
CHANGED
|
@@ -205,4 +205,4 @@ html body {
|
|
|
205
205
|
`]:{[`&:hover ${n}-inner`]:{borderColor:e.colorPrimary}},[`${r}:not(${r}-disabled)`]:{[`&:hover ${n}-checked:not(${n}-disabled) ${n}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:"transparent"},[`&:hover ${n}-checked:not(${n}-disabled):after`]:{borderColor:e.colorPrimaryHover}}},{[`${n}-checked`]:{[`${n}-inner`]:{backgroundColor:e.colorPrimary,borderColor:e.colorPrimary,"&:after":{opacity:1,transform:"rotate(45deg) scale(1) translate(-50%,-50%)",transition:`all ${e.motionDurationMid} ${e.motionEaseOutBack} ${e.motionDurationFast}`}}},[`
|
|
206
206
|
${r}-checked:not(${r}-disabled),
|
|
207
207
|
${n}-checked:not(${n}-disabled)
|
|
208
|
-
`]:{[`&:hover ${n}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:"transparent"}}},{[n]:{"&-indeterminate":{"&":{[`${n}-inner`]:{backgroundColor:`${e.colorBgContainer}`,borderColor:`${e.colorBorder}`,"&:after":{top:"50%",insetInlineStart:"50%",width:e.calc(e.fontSizeLG).div(2).equal(),height:e.calc(e.fontSizeLG).div(2).equal(),backgroundColor:e.colorPrimary,border:0,transform:"translate(-50%, -50%) scale(1)",opacity:1,content:'""'}},[`&:hover ${n}-inner`]:{backgroundColor:`${e.colorBgContainer}`,borderColor:`${e.colorPrimary}`}}}}},{[`${r}-disabled`]:{cursor:"not-allowed"},[`${n}-disabled`]:{[`&, ${n}-input`]:{cursor:"not-allowed",pointerEvents:"none"},[`${n}-inner`]:{background:e.colorBgContainerDisabled,borderColor:e.colorBorder,"&:after":{borderColor:e.colorTextDisabled}},"&:after":{display:"none"},"& + span":{color:e.colorTextDisabled},[`&${n}-indeterminate ${n}-inner::after`]:{background:e.colorTextDisabled}}}]};function Hx(e,n){const r=_n(n,{checkboxCls:`.${e}`,checkboxSize:n.controlInteractiveSize});return Fx(r)}const ip=Vn("Checkbox",(e,{prefixCls:n})=>[Hx(n,e)]),sp=A.createContext(null),Vx=(e,n)=>{const{prefixCls:r,className:o,rootClassName:s,children:l,indeterminate:c=!1,style:d,onMouseEnter:h,onMouseLeave:g,skipGroup:m=!1,disabled:v,classNames:y,styles:C,..._}=e,{getPrefixCls:x,direction:b,className:E,style:S,classNames:P,styles:I}=Ur("checkbox"),M=f.useContext(sp),{isFormItemInput:k}=f.useContext(fs),N=f.useContext(hl),R=((M==null?void 0:M.disabled)||v)??N,B={...e,indeterminate:c,disabled:R},[z,$]=kr([P,y],[I,C],{props:B}),j=f.useRef(_.value),V=f.useRef(null),W=Sr(n,V);if(process.env.NODE_ENV!=="production"){const oe=hn("Checkbox");process.env.NODE_ENV!=="production"&&oe("checked"in _||!!M||!("value"in _),"usage","`value` is not a valid prop, do you mean `checked`?")}f.useEffect(()=>{M==null||M.registerValue(_.value)},[]),f.useEffect(()=>{if(!m)return _.value!==j.current&&(M==null||M.cancelValue(j.current),M==null||M.registerValue(_.value),j.current=_.value),()=>M==null?void 0:M.cancelValue(_.value)},[_.value]),f.useEffect(()=>{var oe;(oe=V.current)!=null&&oe.input&&(V.current.input.indeterminate=c)},[c]);const F=x("checkbox",r),X=no(F),[J,Z]=ip(F,X),le={..._};M&&!m&&(le.onChange=(...oe)=>{_.onChange&&_.onChange.apply(_,oe),M.toggleOption&&M.toggleOption({label:l,value:_.value})},le.name=M.name,le.checked=M.value.includes(_.value));const G=ce(`${F}-wrapper`,{[`${F}-rtl`]:b==="rtl",[`${F}-wrapper-checked`]:le.checked,[`${F}-wrapper-disabled`]:R,[`${F}-wrapper-in-form-item`]:k},E,o,z.root,s,Z,X,J),ie=ce(z.icon,{[`${F}-indeterminate`]:c},_l,J),[ne,de]=Dx(le.onClick);return f.createElement(If,{component:"Checkbox",disabled:R},f.createElement("label",{className:G,style:{...$.root,...S,...d},onMouseEnter:h,onMouseLeave:g,onClick:ne},f.createElement(zx,{...le,onClick:de,prefixCls:F,className:ie,style:$.icon,disabled:R,ref:W}),to(l)&&f.createElement("span",{className:ce(`${F}-label`,z.label),style:$.label},l)))},ap=f.forwardRef(Vx);process.env.NODE_ENV!=="production"&&(ap.displayName="Checkbox");const lp=ap,Wx=f.forwardRef((e,n)=>{const{defaultValue:r,children:o,options:s=[],prefixCls:l,className:c,rootClassName:d,style:h,onChange:g,role:m="group",...v}=e,{getPrefixCls:y,direction:C}=f.useContext(Ot),[_,x]=f.useState(v.value||r||[]),[b,E]=f.useState([]);f.useEffect(()=>{"value"in v&&x(v.value||[])},[v.value]);const S=f.useMemo(()=>s.map(F=>typeof F=="string"||typeof F=="number"?{label:F,value:F}:F),[s]),P=F=>{E(X=>X.filter(J=>J!==F))},I=F=>{E(X=>[].concat(bn(X),[F]))},M=F=>{const X=_.indexOf(F.value),J=bn(_);X===-1?J.push(F.value):J.splice(X,1),"value"in v||x(J),g==null||g(J.filter(Z=>b.includes(Z)).sort((Z,le)=>{const G=S.findIndex(ne=>ne.value===Z),ie=S.findIndex(ne=>ne.value===le);return G-ie}))},k=y("checkbox",l),N=`${k}-group`,R=no(k),[B,z]=ip(k,R),$=Sn(v,["value","disabled"]),j=s.length?S.map(F=>f.createElement(lp,{prefixCls:k,key:F.value.toString(),disabled:"disabled"in F?F.disabled:v.disabled,value:F.value,checked:_.includes(F.value),onChange:F.onChange,className:ce(`${N}-item`,F.className),style:F.style,title:F.title,id:F.id,required:F.required},F.label)):o,V=f.useMemo(()=>({toggleOption:M,value:_,disabled:v.disabled,name:v.name,registerValue:I,cancelValue:P}),[M,_,v.disabled,v.name,I,P]),W=ce(N,{[`${N}-rtl`]:C==="rtl"},c,d,z,R,B);return f.createElement("div",{className:W,style:h,role:m,...$,ref:n},f.createElement(sp.Provider,{value:V},j))}),Is=lp;Is.Group=Wx,Is.__ANT_CHECKBOX=!0,process.env.NODE_ENV!=="production"&&(Is.displayName="Checkbox");const jx=Is,Zx=e=>{const{componentCls:n,borderRadius:r,paddingSM:o,colorBorder:s,paddingXS:l,fontSizeLG:c,fontSizeSM:d,borderRadiusLG:h,borderRadiusSM:g,colorBgContainerDisabled:m,lineWidth:v,antCls:y}=e,[C,_]=gr(y,"space");return{[n]:[{display:"inline-flex",alignItems:"center",gap:0,paddingInline:o,margin:0,borderWidth:v,borderStyle:"solid",borderRadius:r,"&:hover":{zIndex:0},[`&${n}-disabled`]:{color:e.colorTextDisabled},"&-large":{fontSize:c,borderRadius:h},"&-small":{paddingInline:l,borderRadius:g,fontSize:d},"&-compact-last-item":{borderEndStartRadius:0,borderStartStartRadius:0},"&-compact-first-item":{borderEndEndRadius:0,borderStartEndRadius:0},"&-compact-item:not(:first-child):not(:last-child)":{borderRadius:0},"&-compact-item:not(:last-child)":{borderInlineEndWidth:0},"&-compact-item:not(:first-child)":{borderInlineStartWidth:0}},{[C("addon-border-color")]:s,[C("addon-background")]:m,[C("addon-border-color-outlined")]:s,[C("addon-background-filled")]:m,borderColor:_("addon-border-color"),background:_("addon-background"),"&-variant-outlined":{[C("addon-border-color")]:_("addon-border-color-outlined")},"&-variant-filled":{[C("addon-border-color")]:"transparent",[C("addon-background")]:_("addon-background-filled"),[`&${n}-disabled`]:{[C("addon-border-color")]:s,[C("addon-background")]:m}},"&-variant-borderless":{border:"none",background:"transparent"},"&-variant-underlined":{border:"none",background:"transparent"}},{"&-status-error":{[C("addon-border-color-outlined")]:e.colorError,[C("addon-background-filled")]:e.colorErrorBg,color:e.colorError},"&-status-warning":{[C("addon-border-color-outlined")]:e.colorWarning,[C("addon-background-filled")]:e.colorWarningBg,color:e.colorWarning}}]}},Ux=Vn(["Space","Addon"],e=>[Zx(e),Yf(e,{focus:!1})]),qx=A.forwardRef((e,n)=>{const{className:r,children:o,style:s,prefixCls:l,variant:c="outlined",disabled:d,status:h,...g}=e,{getPrefixCls:m,direction:v}=A.useContext(Ot),y=m("space-addon",l),[C,_]=Ux(y),{compactItemClassnames:x,compactSize:b}=wl(y,v),E=x0(y,h),S=ce(y,C,x,_,`${y}-variant-${c}`,E,{[`${y}-${b}`]:b,[`${y}-disabled`]:d},r);return A.createElement("div",{ref:n,className:S,style:s,...g},o)});function cp(e){return["small","middle","large"].includes(e)}function up(e){return e?typeof e=="number"&&!Number.isNaN(e):!1}const dp=A.createContext({latestIndex:0}),Gx=dp.Provider,Kx=e=>{const{className:n,prefix:r,index:o,children:s,separator:l,style:c,classNames:d,styles:h}=e,{latestIndex:g}=f.useContext(dp);return to(s)?f.createElement(f.Fragment,null,f.createElement("div",{className:n,style:c},s),o<g&&l&&f.createElement("span",{className:ce(`${r}-item-separator`,d==null?void 0:d.separator),style:h==null?void 0:h.separator},l)):null},Qx=e=>{const{componentCls:n,antCls:r}=e;return{[n]:{display:"inline-flex","&-rtl":{direction:"rtl"},"&-vertical":{flexDirection:"column"},"&-align":{flexDirection:"column","&-center":{alignItems:"center"},"&-start":{alignItems:"flex-start"},"&-end":{alignItems:"flex-end"},"&-baseline":{alignItems:"baseline"}},[`${n}-item:empty`]:{display:"none"},[`${n}-item > ${r}-badge-not-a-wrapper:only-child`]:{display:"block"}}}},Yx=e=>{const{componentCls:n}=e;return{[n]:{"&-gap-row-small":{rowGap:e.spaceGapSmallSize},"&-gap-row-middle":{rowGap:e.spaceGapMiddleSize},"&-gap-row-large":{rowGap:e.spaceGapLargeSize},"&-gap-col-small":{columnGap:e.spaceGapSmallSize},"&-gap-col-middle":{columnGap:e.spaceGapMiddleSize},"&-gap-col-large":{columnGap:e.spaceGapLargeSize}}}},Xx=Vn("Space",e=>{const n=_n(e,{spaceGapSmallSize:e.paddingXS,spaceGapMiddleSize:e.padding,spaceGapLargeSize:e.paddingLG});return[Qx(n),Yx(n)]},()=>({}),{resetStyle:!1}),Ts=f.forwardRef((e,n)=>{const{getPrefixCls:r,direction:o,size:s,className:l,style:c,classNames:d,styles:h}=Ur("space"),{size:g=s??"small",align:m,className:v,rootClassName:y,children:C,direction:_,orientation:x,prefixCls:b,split:E,separator:S,style:P,vertical:I,wrap:M=!1,classNames:k,styles:N,...R}=e,[B,z]=Array.isArray(g)?g:[g,g],$=cp(z),j=cp(B),V=up(z),W=up(B),F=Gn(C,{keepEmpty:!0}),[X,J]=Gd(x,I,_),Z=m===void 0&&!J?"center":m,le=S??E,G=r("space",b),[ie,ne]=Xx(G),de={...e,size:g,orientation:X,align:Z},[oe,ee]=kr([d,k],[h,N],{props:de}),K=ce(G,l,ie,`${G}-${X}`,{[`${G}-rtl`]:o==="rtl",[`${G}-align-${Z}`]:Z,[`${G}-gap-row-${z}`]:$,[`${G}-gap-col-${B}`]:j},v,y,ne,oe.root),Y=ce(`${G}-item`,oe.item),se=F.map((Se,Te)=>{const Ce=(Se==null?void 0:Se.key)||`${Y}-${Te}`;return f.createElement(Kx,{prefix:G,classNames:oe,styles:ee,className:Y,key:Ce,index:Te,separator:le,style:ee.item},Se)});if(process.env.NODE_ENV!=="production"){const Se=hn("Space");[["direction","orientation"],["split","separator"]].forEach(([Te,Ce])=>{Se.deprecated(!(Te in e),Te,Ce)})}const fe=f.useMemo(()=>({latestIndex:F.reduce((Te,Ce,te)=>to(Ce)?te:Te,0)}),[F]);if(F.length===0)return null;const xe={};return M&&(xe.flexWrap="wrap"),!j&&W&&(xe.columnGap=B),!$&&V&&(xe.rowGap=z),f.createElement("div",{ref:n,className:K,style:{...xe,...ee.root,...c,...P},...R},f.createElement(Gx,{value:fe},se))});Ts.Compact=tb,Ts.Addon=qx,process.env.NODE_ENV!=="production"&&(Ts.displayName="Space");const Jx=Ts,fp=e=>{const{getPopupContainer:n,getPrefixCls:r,direction:o}=f.useContext(Ot),{prefixCls:s,type:l="default",danger:c,disabled:d,loading:h,onClick:g,htmlType:m,children:v,className:y,menu:C,arrow:_,autoFocus:x,trigger:b,align:E,open:S,onOpenChange:P,placement:I,getPopupContainer:M,href:k,icon:N=f.createElement(Kh,null),title:R,buttonsRender:B=xe=>xe,mouseEnterDelay:z,mouseLeaveDelay:$,overlayClassName:j,overlayStyle:V,destroyOnHidden:W,destroyPopupOnHide:F,dropdownRender:X,popupRender:J,...Z}=e,le=r("dropdown",s),G=`${le}-button`,ne={menu:C,arrow:_,autoFocus:x,align:E,disabled:d,trigger:d?[]:b,onOpenChange:P,getPopupContainer:M||n,mouseEnterDelay:z,mouseLeaveDelay:$,classNames:{root:j},styles:{root:V},destroyOnHidden:W,popupRender:J||X},{compactSize:de,compactItemClassnames:oe}=wl(le,o),ee=ce(G,oe,y);"destroyPopupOnHide"in e&&(ne.destroyPopupOnHide=F),"open"in e&&(ne.open=S),"placement"in e?ne.placement=I:ne.placement=o==="rtl"?"bottomLeft":"bottomRight",process.env.NODE_ENV!=="production"&&hn("Dropdown.Button").deprecated(!1,"Dropdown.Button","Space.Compact + Dropdown + Button");const K=f.createElement(Xf,{type:l,danger:c,disabled:d,loading:h,onClick:g,htmlType:m,href:k,title:R},v),Y=f.createElement(Xf,{type:l,danger:c,icon:N}),[se,fe]=B([K,Y]);return f.createElement(Jx.Compact,{className:ee,size:de,block:!0,...Z},se,f.createElement(op,{...ne},fe))};fp.__ANT_BUTTON=!0;const ew=fp,hp=op;hp.Button=ew;const tw=hp,aS="",pp=({isRollMap:e,setIsRollMap:n,rollIcon:r,normalIcon:o})=>Zt.jsx(Ih,{title:e?"切换为普通地图":"切换为卷帘",placement:"left",children:Zt.jsx("div",{className:"switch-map-mode",onClick:()=>n(!e),children:e?Zt.jsx("img",{src:r,alt:"卷帘模式",className:"map-icon"}):Zt.jsx("img",{src:o,alt:"普通模式",className:"map-icon"})})}),nw="data:image/png;base64,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",rw="data:image/png;base64,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",ow="data:image/png;base64,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",lS="",iw=A.forwardRef(({mapView:e,isRollMap:n,leftLayerGroupRef:r,rightLayerGroupRef:o,sideBySideControl:s,baseMapList:l,baseMapSelectIcon:c})=>{const[d,h]=A.useState(l),[g,m]=A.useState(!1),v=(_,x)=>{if(!e)return;const b=d.map(E=>E.id===_.id?{...E,checked:x}:E);if(h(b),x){const E=tn.tileLayer(_.mapUrl,{id:_.id,maxZoom:18,zIndex:1,pane:"rightPane",zoomOffset:_.zoomOffset||0});o.current.addLayer(E),s&&s.current.setRightLayers(o.current.getLayers())}else o.current.eachLayer(E=>{E.options.id===_.id&&o.current.removeLayer(E)})},y=()=>{if(!e||!o.current)return;o.current.clearLayers();const _=d.find(x=>x.checked);if(_){const x=tn.tileLayer(_.mapUrl,{id:_.id,pane:"rightPane",zoomOffset:_.zoomOffset||0});o.current.addLayer(x)}};A.useEffect(()=>{y()},[]);const C=()=>Zt.jsx("div",{style:{marginLeft:"32px",marginTop:"-34px",backgroundColor:"white",display:"flex",flexDirection:"column",width:"200px",borderRadius:"5px",padding:"10px",gap:"10px",zIndex:1e3},children:d.map(_=>Zt.jsx(jx,{onChange:x=>v(_,x.target.checked),checked:_.checked,style:{width:"200px"},children:Zt.jsx("span",{children:_.name})},_.id))});return Zt.jsx("div",{id:"select-base-map",children:Zt.jsx(tw,{open:g,onOpenChange:m,dropdownRender:C,children:Zt.jsx("div",{onClick:_=>{_.preventDefault(),m(!g)},className:"select-base-map-button",children:Zt.jsx("img",{src:c,alt:"底图选择器",width:25,height:25})})})})}),sw={center:[35.8617,104.1954],zoom:4},aw=A.forwardRef(({mapSettings:e=sw,rollIcon:n=nw,normalIcon:r=rw,baseMapSelectIcon:o=ow,baseMapList:s=[],onIsRollMapChange:l},c)=>{const d=A.useRef(null),h=A.useRef(null),[g,m]=A.useState(),v=A.useRef(null),y=A.useRef(null),[C,_]=A.useState(e.zoom),x=A.useRef(null),b=A.useRef(null),[E,S]=A.useState(!1),P=A.useRef(null),[I,M]=A.useState(Date.now()),k=A.useRef(E);A.useImperativeHandle(c,()=>({addLeftLayers:R=>{!h.current||!v.current||(R.forEach(z=>{z&&z.addTo(v.current)}),x.current&&x.current.setLeftLayers(v.current.getLayers()))},addRightLayers:R=>{!h.current||!y.current||(R.forEach(z=>{z&&z.addTo(y.current)}),x.current&&x.current.setRightLayers(y.current.getLayers()))},clearLeftLayers:()=>{var R;(R=v.current)==null||R.clearLayers()},clearRightLayers:()=>{var R;(R=y.current)==null||R.clearLayers()},getMapInstance:()=>h.current,toggleRollMap:R=>{var B,z,$;if(S(R),R){const j=((B=v.current)==null?void 0:B.getLayers())||[],V=((z=y.current)==null?void 0:z.getLayers())||[];x.current=new tn.Control.sideBySide(j,V),x.current.addTo(h.current)}else($=x.current)==null||$.remove(),x.current=null},getIsRollMap:()=>k.current,getLeftLayersGroup:()=>v.current,getRightLayersGroup:()=>y.current,getMapRef:()=>h.current})),A.useEffect(()=>{if(!d.current||h.current)return;const R=tn.map(d.current,{zoomControl:!1,doubleClickZoom:!1,attributionControl:!1,crs:tn.CRS.EPSG4326}).setView(e.center,e.zoom);R.invalidateSize(),R.createPane("leftPane").style.zIndex="300",R.createPane("rightPane").style.zIndex="300",v.current=tn.layerGroup().addTo(R),y.current=tn.layerGroup().addTo(R);const B=tn.Control.extend({options:{position:"topleft"},onAdd:V=>{const W=tn.DomUtil.create("div","leaflet-control-container"),F=oo(W);F.render(Zt.jsx(Zc,{zoomLevel:C}));const X=()=>{const J=V.getZoom();_(J),F.render(Zt.jsx(Zc,{zoomLevel:J}))};return V.on("zoomend",X),W}}),z=tn.Control.extend({options:{position:"topleft"},onAdd:V=>{const W=tn.DomUtil.create("div","leaflet-control-container"),F=oo(W);return P.current=F,F.render(Zt.jsx(iw,{mapView:V,isRollMap:E,baseMapSelectIcon:o,leftLayerGroupRef:v,rightLayerGroupRef:y,sideBySideControl:x,baseMapList:s},I)),W}}),$=tn.Control.extend({options:{position:"topleft"},onAdd:V=>{const W=tn.DomUtil.create("div","leaflet-control-container"),F=oo(W);return P.current=F,F.render(Zt.jsx(pp,{isRollMap:E,setIsRollMap:S,rollIcon:n,normalIcon:r},I)),W}}),j=()=>m(R.getZoom());return R.on("zoomend",j),R.addControl(new B),tn.control.zoom({position:"topleft"}).addTo(R),R.addControl(new z),R.addControl(new $),h.current=R,()=>{const V=x.current,W=b.current;if(V&&W){V.off("dividermove",W),R.off("move",W);const F=R.getPane("leftPane"),X=R.getPane("rightPane");F&&(F.style.clip=""),X&&(X.style.clip="")}R.off("zoomend",j),R.remove(),h.current=null}},[]);const N=R=>{var $,j,V;if(S(R),k.current=R,!!h.current)if(R){const W=(($=v.current)==null?void 0:$.getLayers())||[],F=((j=y.current)==null?void 0:j.getLayers())||[];x.current=tn.control.sideBySide(W,F),x.current.addTo(h.current),x.current.on("dividermove",()=>{var X;(X=h.current)==null||X.eachLayer(J=>{J instanceof tn.Marker})})}else{(V=x.current)==null||V.remove(),x.current=null;var B=h.current.getPane("leftPane"),z=h.current.getPane("rightPane");B&&(B.style.clip=""),z&&(z.style.clip="")}};return A.useEffect(()=>{h.current&&(N(E),l==null||l(E),P.current&&P.current.render(Zt.jsx(pp,{isRollMap:E,setIsRollMap:S,rollIcon:n,normalIcon:r},Date.now())))},[E,l]),Zt.jsx("div",{ref:d,style:{height:"100%",width:"100%"}})});fn.default=aw,Object.defineProperties(fn,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
208
|
+
`]:{[`&:hover ${n}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:"transparent"}}},{[n]:{"&-indeterminate":{"&":{[`${n}-inner`]:{backgroundColor:`${e.colorBgContainer}`,borderColor:`${e.colorBorder}`,"&:after":{top:"50%",insetInlineStart:"50%",width:e.calc(e.fontSizeLG).div(2).equal(),height:e.calc(e.fontSizeLG).div(2).equal(),backgroundColor:e.colorPrimary,border:0,transform:"translate(-50%, -50%) scale(1)",opacity:1,content:'""'}},[`&:hover ${n}-inner`]:{backgroundColor:`${e.colorBgContainer}`,borderColor:`${e.colorPrimary}`}}}}},{[`${r}-disabled`]:{cursor:"not-allowed"},[`${n}-disabled`]:{[`&, ${n}-input`]:{cursor:"not-allowed",pointerEvents:"none"},[`${n}-inner`]:{background:e.colorBgContainerDisabled,borderColor:e.colorBorder,"&:after":{borderColor:e.colorTextDisabled}},"&:after":{display:"none"},"& + span":{color:e.colorTextDisabled},[`&${n}-indeterminate ${n}-inner::after`]:{background:e.colorTextDisabled}}}]};function Hx(e,n){const r=_n(n,{checkboxCls:`.${e}`,checkboxSize:n.controlInteractiveSize});return Fx(r)}const ip=Vn("Checkbox",(e,{prefixCls:n})=>[Hx(n,e)]),sp=A.createContext(null),Vx=(e,n)=>{const{prefixCls:r,className:o,rootClassName:s,children:l,indeterminate:c=!1,style:d,onMouseEnter:h,onMouseLeave:g,skipGroup:m=!1,disabled:v,classNames:y,styles:C,..._}=e,{getPrefixCls:x,direction:b,className:E,style:S,classNames:P,styles:I}=Ur("checkbox"),M=f.useContext(sp),{isFormItemInput:k}=f.useContext(fs),N=f.useContext(hl),R=((M==null?void 0:M.disabled)||v)??N,B={...e,indeterminate:c,disabled:R},[z,$]=kr([P,y],[I,C],{props:B}),j=f.useRef(_.value),V=f.useRef(null),W=Sr(n,V);if(process.env.NODE_ENV!=="production"){const oe=hn("Checkbox");process.env.NODE_ENV!=="production"&&oe("checked"in _||!!M||!("value"in _),"usage","`value` is not a valid prop, do you mean `checked`?")}f.useEffect(()=>{M==null||M.registerValue(_.value)},[]),f.useEffect(()=>{if(!m)return _.value!==j.current&&(M==null||M.cancelValue(j.current),M==null||M.registerValue(_.value),j.current=_.value),()=>M==null?void 0:M.cancelValue(_.value)},[_.value]),f.useEffect(()=>{var oe;(oe=V.current)!=null&&oe.input&&(V.current.input.indeterminate=c)},[c]);const F=x("checkbox",r),X=no(F),[J,Z]=ip(F,X),le={..._};M&&!m&&(le.onChange=(...oe)=>{_.onChange&&_.onChange.apply(_,oe),M.toggleOption&&M.toggleOption({label:l,value:_.value})},le.name=M.name,le.checked=M.value.includes(_.value));const G=ce(`${F}-wrapper`,{[`${F}-rtl`]:b==="rtl",[`${F}-wrapper-checked`]:le.checked,[`${F}-wrapper-disabled`]:R,[`${F}-wrapper-in-form-item`]:k},E,o,z.root,s,Z,X,J),ie=ce(z.icon,{[`${F}-indeterminate`]:c},_l,J),[ne,de]=Dx(le.onClick);return f.createElement(If,{component:"Checkbox",disabled:R},f.createElement("label",{className:G,style:{...$.root,...S,...d},onMouseEnter:h,onMouseLeave:g,onClick:ne},f.createElement(zx,{...le,onClick:de,prefixCls:F,className:ie,style:$.icon,disabled:R,ref:W}),to(l)&&f.createElement("span",{className:ce(`${F}-label`,z.label),style:$.label},l)))},ap=f.forwardRef(Vx);process.env.NODE_ENV!=="production"&&(ap.displayName="Checkbox");const lp=ap,Wx=f.forwardRef((e,n)=>{const{defaultValue:r,children:o,options:s=[],prefixCls:l,className:c,rootClassName:d,style:h,onChange:g,role:m="group",...v}=e,{getPrefixCls:y,direction:C}=f.useContext(Ot),[_,x]=f.useState(v.value||r||[]),[b,E]=f.useState([]);f.useEffect(()=>{"value"in v&&x(v.value||[])},[v.value]);const S=f.useMemo(()=>s.map(F=>typeof F=="string"||typeof F=="number"?{label:F,value:F}:F),[s]),P=F=>{E(X=>X.filter(J=>J!==F))},I=F=>{E(X=>[].concat(bn(X),[F]))},M=F=>{const X=_.indexOf(F.value),J=bn(_);X===-1?J.push(F.value):J.splice(X,1),"value"in v||x(J),g==null||g(J.filter(Z=>b.includes(Z)).sort((Z,le)=>{const G=S.findIndex(ne=>ne.value===Z),ie=S.findIndex(ne=>ne.value===le);return G-ie}))},k=y("checkbox",l),N=`${k}-group`,R=no(k),[B,z]=ip(k,R),$=Sn(v,["value","disabled"]),j=s.length?S.map(F=>f.createElement(lp,{prefixCls:k,key:F.value.toString(),disabled:"disabled"in F?F.disabled:v.disabled,value:F.value,checked:_.includes(F.value),onChange:F.onChange,className:ce(`${N}-item`,F.className),style:F.style,title:F.title,id:F.id,required:F.required},F.label)):o,V=f.useMemo(()=>({toggleOption:M,value:_,disabled:v.disabled,name:v.name,registerValue:I,cancelValue:P}),[M,_,v.disabled,v.name,I,P]),W=ce(N,{[`${N}-rtl`]:C==="rtl"},c,d,z,R,B);return f.createElement("div",{className:W,style:h,role:m,...$,ref:n},f.createElement(sp.Provider,{value:V},j))}),Is=lp;Is.Group=Wx,Is.__ANT_CHECKBOX=!0,process.env.NODE_ENV!=="production"&&(Is.displayName="Checkbox");const jx=Is,Zx=e=>{const{componentCls:n,borderRadius:r,paddingSM:o,colorBorder:s,paddingXS:l,fontSizeLG:c,fontSizeSM:d,borderRadiusLG:h,borderRadiusSM:g,colorBgContainerDisabled:m,lineWidth:v,antCls:y}=e,[C,_]=gr(y,"space");return{[n]:[{display:"inline-flex",alignItems:"center",gap:0,paddingInline:o,margin:0,borderWidth:v,borderStyle:"solid",borderRadius:r,"&:hover":{zIndex:0},[`&${n}-disabled`]:{color:e.colorTextDisabled},"&-large":{fontSize:c,borderRadius:h},"&-small":{paddingInline:l,borderRadius:g,fontSize:d},"&-compact-last-item":{borderEndStartRadius:0,borderStartStartRadius:0},"&-compact-first-item":{borderEndEndRadius:0,borderStartEndRadius:0},"&-compact-item:not(:first-child):not(:last-child)":{borderRadius:0},"&-compact-item:not(:last-child)":{borderInlineEndWidth:0},"&-compact-item:not(:first-child)":{borderInlineStartWidth:0}},{[C("addon-border-color")]:s,[C("addon-background")]:m,[C("addon-border-color-outlined")]:s,[C("addon-background-filled")]:m,borderColor:_("addon-border-color"),background:_("addon-background"),"&-variant-outlined":{[C("addon-border-color")]:_("addon-border-color-outlined")},"&-variant-filled":{[C("addon-border-color")]:"transparent",[C("addon-background")]:_("addon-background-filled"),[`&${n}-disabled`]:{[C("addon-border-color")]:s,[C("addon-background")]:m}},"&-variant-borderless":{border:"none",background:"transparent"},"&-variant-underlined":{border:"none",background:"transparent"}},{"&-status-error":{[C("addon-border-color-outlined")]:e.colorError,[C("addon-background-filled")]:e.colorErrorBg,color:e.colorError},"&-status-warning":{[C("addon-border-color-outlined")]:e.colorWarning,[C("addon-background-filled")]:e.colorWarningBg,color:e.colorWarning}}]}},Ux=Vn(["Space","Addon"],e=>[Zx(e),Yf(e,{focus:!1})]),qx=A.forwardRef((e,n)=>{const{className:r,children:o,style:s,prefixCls:l,variant:c="outlined",disabled:d,status:h,...g}=e,{getPrefixCls:m,direction:v}=A.useContext(Ot),y=m("space-addon",l),[C,_]=Ux(y),{compactItemClassnames:x,compactSize:b}=wl(y,v),E=x0(y,h),S=ce(y,C,x,_,`${y}-variant-${c}`,E,{[`${y}-${b}`]:b,[`${y}-disabled`]:d},r);return A.createElement("div",{ref:n,className:S,style:s,...g},o)});function cp(e){return["small","middle","large"].includes(e)}function up(e){return e?typeof e=="number"&&!Number.isNaN(e):!1}const dp=A.createContext({latestIndex:0}),Gx=dp.Provider,Kx=e=>{const{className:n,prefix:r,index:o,children:s,separator:l,style:c,classNames:d,styles:h}=e,{latestIndex:g}=f.useContext(dp);return to(s)?f.createElement(f.Fragment,null,f.createElement("div",{className:n,style:c},s),o<g&&l&&f.createElement("span",{className:ce(`${r}-item-separator`,d==null?void 0:d.separator),style:h==null?void 0:h.separator},l)):null},Qx=e=>{const{componentCls:n,antCls:r}=e;return{[n]:{display:"inline-flex","&-rtl":{direction:"rtl"},"&-vertical":{flexDirection:"column"},"&-align":{flexDirection:"column","&-center":{alignItems:"center"},"&-start":{alignItems:"flex-start"},"&-end":{alignItems:"flex-end"},"&-baseline":{alignItems:"baseline"}},[`${n}-item:empty`]:{display:"none"},[`${n}-item > ${r}-badge-not-a-wrapper:only-child`]:{display:"block"}}}},Yx=e=>{const{componentCls:n}=e;return{[n]:{"&-gap-row-small":{rowGap:e.spaceGapSmallSize},"&-gap-row-middle":{rowGap:e.spaceGapMiddleSize},"&-gap-row-large":{rowGap:e.spaceGapLargeSize},"&-gap-col-small":{columnGap:e.spaceGapSmallSize},"&-gap-col-middle":{columnGap:e.spaceGapMiddleSize},"&-gap-col-large":{columnGap:e.spaceGapLargeSize}}}},Xx=Vn("Space",e=>{const n=_n(e,{spaceGapSmallSize:e.paddingXS,spaceGapMiddleSize:e.padding,spaceGapLargeSize:e.paddingLG});return[Qx(n),Yx(n)]},()=>({}),{resetStyle:!1}),Ts=f.forwardRef((e,n)=>{const{getPrefixCls:r,direction:o,size:s,className:l,style:c,classNames:d,styles:h}=Ur("space"),{size:g=s??"small",align:m,className:v,rootClassName:y,children:C,direction:_,orientation:x,prefixCls:b,split:E,separator:S,style:P,vertical:I,wrap:M=!1,classNames:k,styles:N,...R}=e,[B,z]=Array.isArray(g)?g:[g,g],$=cp(z),j=cp(B),V=up(z),W=up(B),F=Gn(C,{keepEmpty:!0}),[X,J]=Gd(x,I,_),Z=m===void 0&&!J?"center":m,le=S??E,G=r("space",b),[ie,ne]=Xx(G),de={...e,size:g,orientation:X,align:Z},[oe,ee]=kr([d,k],[h,N],{props:de}),K=ce(G,l,ie,`${G}-${X}`,{[`${G}-rtl`]:o==="rtl",[`${G}-align-${Z}`]:Z,[`${G}-gap-row-${z}`]:$,[`${G}-gap-col-${B}`]:j},v,y,ne,oe.root),Y=ce(`${G}-item`,oe.item),se=F.map((Se,Te)=>{const Ce=(Se==null?void 0:Se.key)||`${Y}-${Te}`;return f.createElement(Kx,{prefix:G,classNames:oe,styles:ee,className:Y,key:Ce,index:Te,separator:le,style:ee.item},Se)});if(process.env.NODE_ENV!=="production"){const Se=hn("Space");[["direction","orientation"],["split","separator"]].forEach(([Te,Ce])=>{Se.deprecated(!(Te in e),Te,Ce)})}const fe=f.useMemo(()=>({latestIndex:F.reduce((Te,Ce,te)=>to(Ce)?te:Te,0)}),[F]);if(F.length===0)return null;const xe={};return M&&(xe.flexWrap="wrap"),!j&&W&&(xe.columnGap=B),!$&&V&&(xe.rowGap=z),f.createElement("div",{ref:n,className:K,style:{...xe,...ee.root,...c,...P},...R},f.createElement(Gx,{value:fe},se))});Ts.Compact=tb,Ts.Addon=qx,process.env.NODE_ENV!=="production"&&(Ts.displayName="Space");const Jx=Ts,fp=e=>{const{getPopupContainer:n,getPrefixCls:r,direction:o}=f.useContext(Ot),{prefixCls:s,type:l="default",danger:c,disabled:d,loading:h,onClick:g,htmlType:m,children:v,className:y,menu:C,arrow:_,autoFocus:x,trigger:b,align:E,open:S,onOpenChange:P,placement:I,getPopupContainer:M,href:k,icon:N=f.createElement(Kh,null),title:R,buttonsRender:B=xe=>xe,mouseEnterDelay:z,mouseLeaveDelay:$,overlayClassName:j,overlayStyle:V,destroyOnHidden:W,destroyPopupOnHide:F,dropdownRender:X,popupRender:J,...Z}=e,le=r("dropdown",s),G=`${le}-button`,ne={menu:C,arrow:_,autoFocus:x,align:E,disabled:d,trigger:d?[]:b,onOpenChange:P,getPopupContainer:M||n,mouseEnterDelay:z,mouseLeaveDelay:$,classNames:{root:j},styles:{root:V},destroyOnHidden:W,popupRender:J||X},{compactSize:de,compactItemClassnames:oe}=wl(le,o),ee=ce(G,oe,y);"destroyPopupOnHide"in e&&(ne.destroyPopupOnHide=F),"open"in e&&(ne.open=S),"placement"in e?ne.placement=I:ne.placement=o==="rtl"?"bottomLeft":"bottomRight",process.env.NODE_ENV!=="production"&&hn("Dropdown.Button").deprecated(!1,"Dropdown.Button","Space.Compact + Dropdown + Button");const K=f.createElement(Xf,{type:l,danger:c,disabled:d,loading:h,onClick:g,htmlType:m,href:k,title:R},v),Y=f.createElement(Xf,{type:l,danger:c,icon:N}),[se,fe]=B([K,Y]);return f.createElement(Jx.Compact,{className:ee,size:de,block:!0,...Z},se,f.createElement(op,{...ne},fe))};fp.__ANT_BUTTON=!0;const ew=fp,hp=op;hp.Button=ew;const tw=hp,aS="",pp=({isRollMap:e,setIsRollMap:n,rollIcon:r,normalIcon:o})=>Zt.jsx(Ih,{title:e?"切换为普通地图":"切换为卷帘",placement:"left",children:Zt.jsx("div",{className:"switch-map-mode",onClick:()=>n(!e),children:e?Zt.jsx("img",{src:r,alt:"卷帘模式",className:"map-icon"}):Zt.jsx("img",{src:o,alt:"普通模式",className:"map-icon"})})}),nw="data:image/png;base64,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",rw="data:image/png;base64,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",ow="data:image/png;base64,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",lS="",iw=A.forwardRef(({mapView:e,isRollMap:n,leftLayerGroupRef:r,rightLayerGroupRef:o,sideBySideControl:s,baseMapList:l,baseMapSelectIcon:c})=>{const[d,h]=A.useState(l),[g,m]=A.useState(!1),v=(_,x)=>{if(!e)return;const b=d.map(E=>E.id===_.id?{...E,checked:x}:E);if(h(b),x){const E=tn.tileLayer(_.mapUrl,{id:_.id,maxZoom:18,zIndex:1,pane:"rightPane",zoomOffset:_.zoomOffset||0});o.current.addLayer(E),s&&s.current&&s.current.setRightLayers(o.current.getLayers())}else o.current.eachLayer(E=>{E.options.id===_.id&&o.current.removeLayer(E)})},y=()=>{if(!e||!o.current)return;o.current.clearLayers();const _=d.find(x=>x.checked);if(_){const x=tn.tileLayer(_.mapUrl,{id:_.id,pane:"rightPane",zoomOffset:_.zoomOffset||0});o.current.addLayer(x)}};A.useEffect(()=>{y()},[]);const C=()=>Zt.jsx("div",{style:{marginLeft:"32px",marginTop:"-34px",backgroundColor:"white",display:"flex",flexDirection:"column",width:"200px",borderRadius:"5px",padding:"10px",gap:"10px",zIndex:1e3},children:d.map(_=>Zt.jsx(jx,{onChange:x=>v(_,x.target.checked),checked:_.checked,style:{width:"200px"},children:Zt.jsx("span",{children:_.name})},_.id))});return Zt.jsx("div",{id:"select-base-map",children:Zt.jsx(tw,{open:g,onOpenChange:m,dropdownRender:C,children:Zt.jsx("div",{onClick:_=>{_.preventDefault(),m(!g)},className:"select-base-map-button",children:Zt.jsx("img",{src:c,alt:"底图选择器",width:25,height:25})})})})}),sw={center:[35.8617,104.1954],zoom:4},aw=A.forwardRef(({mapSettings:e=sw,rollIcon:n=nw,normalIcon:r=rw,baseMapSelectIcon:o=ow,baseMapList:s=[],onIsRollMapChange:l},c)=>{const d=A.useRef(null),h=A.useRef(null),[g,m]=A.useState(),v=A.useRef(null),y=A.useRef(null),[C,_]=A.useState(e.zoom),x=A.useRef(null),b=A.useRef(null),[E,S]=A.useState(!1),P=A.useRef(null),[I,M]=A.useState(Date.now()),k=A.useRef(E);A.useImperativeHandle(c,()=>({addLeftLayers:R=>{!h.current||!v.current||(R.forEach(z=>{z&&z.addTo(v.current)}),x.current&&x.current.setLeftLayers(v.current.getLayers()))},addRightLayers:R=>{!h.current||!y.current||(R.forEach(z=>{z&&z.addTo(y.current)}),x.current&&x.current.setRightLayers(y.current.getLayers()))},clearLeftLayers:()=>{var R;(R=v.current)==null||R.clearLayers()},clearRightLayers:()=>{var R;(R=y.current)==null||R.clearLayers()},getMapInstance:()=>h.current,toggleRollMap:R=>{var B,z,$;if(S(R),R){const j=((B=v.current)==null?void 0:B.getLayers())||[],V=((z=y.current)==null?void 0:z.getLayers())||[];x.current=new tn.Control.sideBySide(j,V),x.current.addTo(h.current)}else($=x.current)==null||$.remove(),x.current=null},getIsRollMap:()=>k.current,getLeftLayersGroup:()=>v.current,getRightLayersGroup:()=>y.current,getMapRef:()=>h.current})),A.useEffect(()=>{if(!d.current||h.current)return;const R=tn.map(d.current,{zoomControl:!1,doubleClickZoom:!1,attributionControl:!1,crs:tn.CRS.EPSG4326}).setView(e.center,e.zoom);R.invalidateSize(),R.createPane("leftPane").style.zIndex="300",R.createPane("rightPane").style.zIndex="300",v.current=tn.layerGroup().addTo(R),y.current=tn.layerGroup().addTo(R);const B=tn.Control.extend({options:{position:"topleft"},onAdd:V=>{const W=tn.DomUtil.create("div","leaflet-control-container"),F=oo(W);F.render(Zt.jsx(Zc,{zoomLevel:C}));const X=()=>{const J=V.getZoom();_(J),F.render(Zt.jsx(Zc,{zoomLevel:J}))};return V.on("zoomend",X),W}}),z=tn.Control.extend({options:{position:"topleft"},onAdd:V=>{const W=tn.DomUtil.create("div","leaflet-control-container"),F=oo(W);return P.current=F,F.render(Zt.jsx(iw,{mapView:V,isRollMap:E,baseMapSelectIcon:o,leftLayerGroupRef:v,rightLayerGroupRef:y,sideBySideControl:x,baseMapList:s},I)),W}}),$=tn.Control.extend({options:{position:"topleft"},onAdd:V=>{const W=tn.DomUtil.create("div","leaflet-control-container"),F=oo(W);return P.current=F,F.render(Zt.jsx(pp,{isRollMap:E,setIsRollMap:S,rollIcon:n,normalIcon:r},I)),W}}),j=()=>m(R.getZoom());return R.on("zoomend",j),R.addControl(new B),tn.control.zoom({position:"topleft"}).addTo(R),R.addControl(new z),R.addControl(new $),h.current=R,()=>{const V=x.current,W=b.current;if(V&&W){V.off("dividermove",W),R.off("move",W);const F=R.getPane("leftPane"),X=R.getPane("rightPane");F&&(F.style.clip=""),X&&(X.style.clip="")}R.off("zoomend",j),R.remove(),h.current=null}},[]);const N=R=>{var $,j,V;if(S(R),k.current=R,!!h.current)if(R){const W=(($=v.current)==null?void 0:$.getLayers())||[],F=((j=y.current)==null?void 0:j.getLayers())||[];x.current=tn.control.sideBySide(W,F),x.current.addTo(h.current),x.current.on("dividermove",()=>{var X;(X=h.current)==null||X.eachLayer(J=>{J instanceof tn.Marker})})}else{(V=x.current)==null||V.remove(),x.current=null;var B=h.current.getPane("leftPane"),z=h.current.getPane("rightPane");B&&(B.style.clip=""),z&&(z.style.clip="")}};return A.useEffect(()=>{h.current&&(N(E),l==null||l(E),P.current&&P.current.render(Zt.jsx(pp,{isRollMap:E,setIsRollMap:S,rollIcon:n,normalIcon:r},Date.now())))},[E,l]),Zt.jsx("div",{ref:d,style:{height:"100%",width:"100%"}})});fn.default=aw,Object.defineProperties(fn,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-swipe-map",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A React component that displays two leaflet maps side by side",
|
|
6
6
|
"main": "./dist/index.umd.js",
|
|
@@ -32,6 +32,6 @@
|
|
|
32
32
|
"antd": "^6.2.3",
|
|
33
33
|
"leaflet": "^1.9.4",
|
|
34
34
|
"leaflet-side-by-side": "^2.2.0",
|
|
35
|
-
"react-swipe-map": "^1.0.
|
|
35
|
+
"react-swipe-map": "^1.0.2"
|
|
36
36
|
}
|
|
37
37
|
}
|