@rousen/react-naver-maps 0.0.7 → 0.0.9
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 +112 -271
- package/dist/components/Map.d.ts +80 -18
- package/dist/components/Map.d.ts.map +1 -1
- package/dist/components/Marker.d.ts +42 -14
- package/dist/components/Marker.d.ts.map +1 -1
- package/dist/index.d.ts +122 -32
- package/dist/index.esm.js +140 -59
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +140 -59
- package/dist/index.js.map +1 -1
- package/package.json +73 -77
package/README.md
CHANGED
|
@@ -1,271 +1,112 @@
|
|
|
1
|
-
# react-naver-maps
|
|
2
|
-
|
|
3
|
-
네이버 지도 API를 React에서 쉽게 사용할 수 있도록 만든 라이브러리입니다.
|
|
4
|
-
|
|
5
|
-
## 설치
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm install @rousen/react-naver-maps
|
|
9
|
-
# 또는
|
|
10
|
-
yarn add @rousen/react-naver-maps
|
|
11
|
-
# 또는
|
|
12
|
-
pnpm add @rousen/react-naver-maps
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
##
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
###
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
/>
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
### Polyline 컴포넌트 예제
|
|
117
|
-
|
|
118
|
-
```tsx
|
|
119
|
-
<Polyline
|
|
120
|
-
path={[
|
|
121
|
-
[127.0276, 37.4979],
|
|
122
|
-
[127.0286, 37.4989],
|
|
123
|
-
[127.0296, 37.4979],
|
|
124
|
-
]}
|
|
125
|
-
strokeColor="#ff0000"
|
|
126
|
-
strokeWeight={3}
|
|
127
|
-
onClick={(event) => console.log("선 클릭", event)}
|
|
128
|
-
/>
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
## API
|
|
132
|
-
|
|
133
|
-
### 컴포넌트
|
|
134
|
-
|
|
135
|
-
- `Map` - 네이버 지도 컨테이너 컴포넌트
|
|
136
|
-
- `MapProvider` - 맵 인스턴스 관리 프로바이더
|
|
137
|
-
- `Marker` - 마커 컴포넌트
|
|
138
|
-
- `Overlay` - 커스텀 오버레이 컴포넌트
|
|
139
|
-
- `Polygon` - 다각형 컴포넌트
|
|
140
|
-
- `Polyline` - 선 컴포넌트
|
|
141
|
-
|
|
142
|
-
### 훅
|
|
143
|
-
|
|
144
|
-
- `useMap()` - 현재 맵 인스턴스 및 모든 맵 인스턴스에 접근
|
|
145
|
-
|
|
146
|
-
### 타입
|
|
147
|
-
|
|
148
|
-
- `MapProps` - Map 컴포넌트 props 타입
|
|
149
|
-
- `MarkerProps` - Marker 컴포넌트 props 타입
|
|
150
|
-
- `PolylineProps` - Polyline 컴포넌트 props 타입
|
|
151
|
-
|
|
152
|
-
## 개발
|
|
153
|
-
|
|
154
|
-
### 의존성 설치
|
|
155
|
-
|
|
156
|
-
```bash
|
|
157
|
-
npm install
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
### 개발 모드 실행
|
|
161
|
-
|
|
162
|
-
```bash
|
|
163
|
-
npm run dev
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
### 빌드
|
|
167
|
-
|
|
168
|
-
```bash
|
|
169
|
-
npm run build
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
### Storybook 실행
|
|
173
|
-
|
|
174
|
-
```bash
|
|
175
|
-
npm run storybook
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
### Storybook 빌드
|
|
179
|
-
|
|
180
|
-
```bash
|
|
181
|
-
npm run build-storybook
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
### 타입 체크
|
|
185
|
-
|
|
186
|
-
```bash
|
|
187
|
-
npm run type-check
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
### 린트
|
|
191
|
-
|
|
192
|
-
```bash
|
|
193
|
-
npm run lint
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
## 프로젝트 구조
|
|
197
|
-
|
|
198
|
-
```
|
|
199
|
-
src/
|
|
200
|
-
├── components/ # React 컴포넌트들
|
|
201
|
-
│ ├── Map.tsx # 지도 컴포넌트
|
|
202
|
-
│ ├── Map.stories.tsx # Map Storybook 스토리
|
|
203
|
-
│ ├── MapProvider.tsx # 맵 컨텍스트 프로바이더 및 useMap 훅
|
|
204
|
-
│ ├── Marker.tsx # 마커 컴포넌트
|
|
205
|
-
│ ├── Marker.stories.tsx
|
|
206
|
-
│ ├── Overlay.tsx # 커스텀 오버레이 컴포넌트
|
|
207
|
-
│ ├── Overlay.stories.tsx
|
|
208
|
-
│ ├── Polygon.tsx # 다각형 컴포넌트
|
|
209
|
-
│ └── Polyline.tsx # 선 컴포넌트
|
|
210
|
-
├── hooks/ # 커스텀 훅들
|
|
211
|
-
│ └── useScriptLoader.ts # 네이버 맵스 SDK 스크립트 로더 훅
|
|
212
|
-
├── utils/ # 유틸리티 함수들
|
|
213
|
-
│ ├── scriptLoader.ts # 네이버 맵스 SDK 동적 로딩
|
|
214
|
-
│ └── customOverlay.ts # 커스텀 오버레이 클래스 생성
|
|
215
|
-
├── const.ts # 상수 정의
|
|
216
|
-
└── index.ts # 라이브러리 진입점 (공개 API)
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
### 폴더 구조 설명
|
|
220
|
-
|
|
221
|
-
- **`components/`**: 모든 React 컴포넌트와 Storybook 스토리 파일
|
|
222
|
-
- `Map.tsx`: 네이버 지도 컨테이너 컴포넌트 및 MapContext 제공
|
|
223
|
-
- `MapProvider.tsx`: 여러 맵 인스턴스를 관리하는 Provider와 `useMap` 훅
|
|
224
|
-
- `Marker.tsx`, `Overlay.tsx`, `Polygon.tsx`, `Polyline.tsx`: 각종 오버레이 컴포넌트
|
|
225
|
-
- **`hooks/`**: 재사용 가능한 커스텀 훅들
|
|
226
|
-
- `useScriptLoader.ts`: 네이버 맵스 SDK 스크립트를 동적으로 로드하는 훅
|
|
227
|
-
- **`utils/`**: 순수 함수 유틸리티들
|
|
228
|
-
- `scriptLoader.ts`: 네이버 맵스 SDK 스크립트 동적 로딩 로직
|
|
229
|
-
- `customOverlay.ts`: React 컴포넌트를 네이버 맵스 오버레이로 변환하는 유틸리티
|
|
230
|
-
- **`index.ts`**: 라이브러리의 공개 API 진입점
|
|
231
|
-
|
|
232
|
-
## 주요 기능
|
|
233
|
-
|
|
234
|
-
- 🗺️ **네이버 지도 통합**: 네이버 지도 API를 React 컴포넌트로 쉽게 사용
|
|
235
|
-
- 📍 **다양한 오버레이 지원**: Marker, Overlay, Polygon, Polyline 컴포넌트 제공
|
|
236
|
-
- 🎯 **타입 안정성**: TypeScript로 작성되어 완전한 타입 정의 제공
|
|
237
|
-
- 🔄 **동적 스크립트 로딩**: 네이버 맵스 SDK를 자동으로 로드
|
|
238
|
-
- 🎨 **커스텀 오버레이**: React 컴포넌트를 지도 오버레이로 사용 가능
|
|
239
|
-
- 📦 **트리 쉐이킹 지원**: 사용하지 않는 코드는 번들에서 제외
|
|
240
|
-
- 🔌 **서브모듈 지원**: GL, Traffic, Transit 등 네이버 맵스 서브모듈 지원
|
|
241
|
-
- 🎭 **Storybook**: 컴포넌트 예제 및 문서화
|
|
242
|
-
|
|
243
|
-
## 호환성
|
|
244
|
-
|
|
245
|
-
이 라이브러리는 다음 환경에서 테스트되었습니다:
|
|
246
|
-
|
|
247
|
-
- ✅ **Vite** - 완전 지원
|
|
248
|
-
- ✅ **Webpack 5** - 완전 지원
|
|
249
|
-
- ✅ **Next.js** - 완전 지원
|
|
250
|
-
- ✅ **Create React App** - 완전 지원
|
|
251
|
-
- ✅ **TypeScript** - 타입 정의 포함
|
|
252
|
-
- ✅ **ESM & CommonJS** - 양쪽 모두 지원
|
|
253
|
-
- ✅ **트리 쉐이킹** - 지원
|
|
254
|
-
|
|
255
|
-
## 요구사항
|
|
256
|
-
|
|
257
|
-
- React >= 16.8.0 (Hooks 지원 필요)
|
|
258
|
-
- React DOM >= 16.8.0
|
|
259
|
-
- 네이버 클라우드 플랫폼(NCP) 클라이언트 ID
|
|
260
|
-
|
|
261
|
-
## 기술 스택
|
|
262
|
-
|
|
263
|
-
- **React** - UI 라이브러리
|
|
264
|
-
- **TypeScript** - 타입 안정성
|
|
265
|
-
- **Rollup** - 번들러
|
|
266
|
-
- **Storybook** - 컴포넌트 문서화 및 개발 환경
|
|
267
|
-
- **ESLint** - 코드 품질 관리
|
|
268
|
-
|
|
269
|
-
## 라이선스
|
|
270
|
-
|
|
271
|
-
MIT
|
|
1
|
+
# react-naver-maps
|
|
2
|
+
|
|
3
|
+
네이버 지도 API를 React에서 쉽게 사용할 수 있도록 만든 라이브러리입니다.
|
|
4
|
+
|
|
5
|
+
## 설치
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @rousen/react-naver-maps
|
|
9
|
+
# 또는
|
|
10
|
+
yarn add @rousen/react-naver-maps
|
|
11
|
+
# 또는
|
|
12
|
+
pnpm add @rousen/react-naver-maps
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 빠른 시작
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import { Map, MapProvider, Marker } from "@rousen/react-naver-maps";
|
|
19
|
+
|
|
20
|
+
function App() {
|
|
21
|
+
return (
|
|
22
|
+
<Map ncpKeyId="your-ncp-key-id">
|
|
23
|
+
<Marker position={{ x: 127.0276, y: 37.4979 }} />
|
|
24
|
+
</Map>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
더 자세한 사용법과 API 문서는 [문서 사이트](https://your-docusaurus-site.com)를 참고하세요.
|
|
30
|
+
|
|
31
|
+
## 개발
|
|
32
|
+
|
|
33
|
+
### 의존성 설치
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npm install
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 개발 모드 실행
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npm run dev
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 빌드
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npm run build
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 타입 체크
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
npm run type-check
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 린트
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npm run lint
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## 문서
|
|
64
|
+
|
|
65
|
+
상세한 사용법, API 문서, 예제는 [문서 사이트](https://your-docusaurus-site.com)에서 확인할 수 있습니다.
|
|
66
|
+
|
|
67
|
+
로컬에서 문서를 실행하려면:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
npm run docs:dev
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## 주요 기능
|
|
74
|
+
|
|
75
|
+
- 🗺️ 네이버 지도 API를 React 컴포넌트로 쉽게 사용
|
|
76
|
+
- 📍 Marker, Overlay, Polygon, Polyline 등 다양한 오버레이 지원
|
|
77
|
+
- 🎯 TypeScript로 작성되어 완전한 타입 정의 제공
|
|
78
|
+
- 🔄 네이버 맵스 SDK 자동 로드
|
|
79
|
+
- 🎨 React 컴포넌트를 지도 오버레이로 사용 가능
|
|
80
|
+
- 📦 트리 쉐이킹 지원
|
|
81
|
+
- 🔌 GL, Traffic, Transit 등 서브모듈 지원
|
|
82
|
+
- ⚡ 풍부한 이벤트 핸들러 지원
|
|
83
|
+
|
|
84
|
+
## 호환성
|
|
85
|
+
|
|
86
|
+
이 라이브러리는 다음 환경에서 테스트되었습니다:
|
|
87
|
+
|
|
88
|
+
- ✅ **Vite** - 완전 지원
|
|
89
|
+
- ✅ **Webpack 5** - 완전 지원
|
|
90
|
+
- ✅ **Next.js** - 완전 지원
|
|
91
|
+
- ✅ **Create React App** - 완전 지원
|
|
92
|
+
- ✅ **TypeScript** - 타입 정의 포함
|
|
93
|
+
- ✅ **ESM & CommonJS** - 양쪽 모두 지원
|
|
94
|
+
- ✅ **트리 쉐이킹** - 지원
|
|
95
|
+
|
|
96
|
+
## 요구사항
|
|
97
|
+
|
|
98
|
+
- React >= 16.8.0 (Hooks 지원 필요)
|
|
99
|
+
- React DOM >= 16.8.0
|
|
100
|
+
- 네이버 클라우드 플랫폼(NCP) 클라이언트 ID
|
|
101
|
+
|
|
102
|
+
## 기술 스택
|
|
103
|
+
|
|
104
|
+
- **React** - UI 라이브러리
|
|
105
|
+
- **TypeScript** - 타입 안정성
|
|
106
|
+
- **Rollup** - 번들러
|
|
107
|
+
- **Docusaurus** - 문서 사이트 생성
|
|
108
|
+
- **ESLint** - 코드 품질 관리
|
|
109
|
+
|
|
110
|
+
## 라이선스
|
|
111
|
+
|
|
112
|
+
MIT
|
package/dist/components/Map.d.ts
CHANGED
|
@@ -1,31 +1,93 @@
|
|
|
1
1
|
import { ReactNode } from "react";
|
|
2
2
|
import { NaverMapsSubmodule } from "../utils/scriptLoader";
|
|
3
|
+
declare const EVENT_TO_PROP: {
|
|
4
|
+
readonly init: "onInit";
|
|
5
|
+
readonly zoomstart: "onZoomStart";
|
|
6
|
+
readonly zoomend: "onZoomEnd";
|
|
7
|
+
readonly bounds_changed: "onBoundsChanged";
|
|
8
|
+
readonly dragstart: "onDragStart";
|
|
9
|
+
readonly dragend: "onDragEnd";
|
|
10
|
+
readonly idle: "onIdle";
|
|
11
|
+
readonly resize: "onResize";
|
|
12
|
+
readonly scroll: "onScroll";
|
|
13
|
+
readonly addLayer: "onAddLayer";
|
|
14
|
+
readonly center_changed: "onCenterChanged";
|
|
15
|
+
readonly centerPoint_changed: "onCenterPointChanged";
|
|
16
|
+
readonly click: "onClick";
|
|
17
|
+
readonly dbclick: "onDbclick";
|
|
18
|
+
readonly doubletap: "onDoubletap";
|
|
19
|
+
readonly mapType_changed: "onMapTypeChanged";
|
|
20
|
+
readonly mapTypeId_changed: "onMapTypeIdChanged";
|
|
21
|
+
readonly mousedown: "onMousedown";
|
|
22
|
+
readonly mousemove: "onMousemove";
|
|
23
|
+
readonly mouseout: "onMouseout";
|
|
24
|
+
readonly mouseover: "onMouseover";
|
|
25
|
+
readonly mouseup: "onMouseup";
|
|
26
|
+
readonly panning: "onPanning";
|
|
27
|
+
readonly pinch: "onPinch";
|
|
28
|
+
readonly pinch_start: "onPinchStart";
|
|
29
|
+
readonly projection_changed: "onProjectionChanged";
|
|
30
|
+
readonly removeLayer: "onRemoveLayer";
|
|
31
|
+
readonly size_changed: "onSizeChanged";
|
|
32
|
+
};
|
|
33
|
+
type EventKey = keyof typeof EVENT_TO_PROP;
|
|
34
|
+
type PropKey = (typeof EVENT_TO_PROP)[EventKey];
|
|
3
35
|
interface MapCallbacks {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
36
|
+
addLayer?: (layer: naver.maps.Layer) => void;
|
|
37
|
+
center_changed?: (center: naver.maps.Coord) => void;
|
|
38
|
+
centerPoint_changed?: (centerPoint: naver.maps.LatLng) => void;
|
|
39
|
+
click?: (event: naver.maps.PointerEvent) => void;
|
|
40
|
+
dbclick?: (event: naver.maps.PointerEvent) => void;
|
|
41
|
+
doubletap?: (event: naver.maps.PointerEvent) => void;
|
|
42
|
+
bounds_changed?: (bounds: naver.maps.Bounds) => void;
|
|
43
|
+
zoomstart?: () => void;
|
|
44
|
+
zoomend?: () => void;
|
|
45
|
+
zoom_changed?: (zoom: number) => void;
|
|
46
|
+
drag?: (event: naver.maps.PointerEvent) => void;
|
|
47
|
+
dragstart?: (event: naver.maps.PointerEvent) => void;
|
|
48
|
+
dragend?: (event: naver.maps.PointerEvent) => void;
|
|
49
|
+
idle?: () => void;
|
|
50
|
+
init?: () => void;
|
|
51
|
+
scroll?: () => void;
|
|
52
|
+
rightclick?: (event: naver.maps.PointerEvent) => void;
|
|
53
|
+
tap?: (event: naver.maps.PointerEvent) => void;
|
|
54
|
+
tiles_loaded?: () => void;
|
|
55
|
+
touchend?: (event: naver.maps.PointerEvent) => void;
|
|
56
|
+
touchstart?: (event: naver.maps.PointerEvent) => void;
|
|
57
|
+
touchmove?: (event: naver.maps.PointerEvent) => void;
|
|
58
|
+
twofintertap?: (event: naver.maps.PointerEvent) => void;
|
|
59
|
+
keydown?: (event: naver.maps.DOMEvent) => void;
|
|
60
|
+
keyup?: (event: naver.maps.DOMEvent) => void;
|
|
61
|
+
longtap?: (event: naver.maps.PointerEvent) => void;
|
|
62
|
+
mapType_changed?: (mapType: naver.maps.MapType) => void;
|
|
63
|
+
mapTypeId_changed?: (mapTypeId: naver.maps.MapTypeId) => void;
|
|
64
|
+
mousedown?: (event: naver.maps.PointerEvent) => void;
|
|
65
|
+
mousemove?: (event: naver.maps.PointerEvent) => void;
|
|
66
|
+
mouseout?: (event: naver.maps.PointerEvent) => void;
|
|
67
|
+
mouseover?: (event: naver.maps.PointerEvent) => void;
|
|
68
|
+
mouseup?: (event: naver.maps.PointerEvent) => void;
|
|
69
|
+
panning?: () => void;
|
|
70
|
+
pinch?: (event: naver.maps.PointerEvent) => void;
|
|
71
|
+
pinch_start?: (event: naver.maps.PointerEvent) => void;
|
|
72
|
+
projection_changed?: (projection: naver.maps.Projection) => void;
|
|
73
|
+
removeLayer?: (layerName: naver.maps.Layer["name"]) => void;
|
|
74
|
+
resize?: () => void;
|
|
75
|
+
size_changed?: (size: naver.maps.Size) => void;
|
|
12
76
|
}
|
|
13
|
-
|
|
77
|
+
type HandlerOfProp<P extends PropKey> = MapCallbacks[{
|
|
78
|
+
[E in EventKey]: (typeof EVENT_TO_PROP)[E] extends P ? E : never;
|
|
79
|
+
}[EventKey]];
|
|
80
|
+
type MapEventProps = {
|
|
81
|
+
[P in PropKey]?: HandlerOfProp<P>;
|
|
82
|
+
};
|
|
83
|
+
export interface MapProps extends MapEventProps {
|
|
14
84
|
ncpKeyId: string;
|
|
15
85
|
id?: string;
|
|
16
86
|
mapTypeId?: naver.maps.MapTypeId;
|
|
17
87
|
mapOptions?: naver.maps.MapOptions;
|
|
18
|
-
children
|
|
88
|
+
children?: ReactNode;
|
|
19
89
|
submodules?: NaverMapsSubmodule[];
|
|
20
90
|
style?: React.CSSProperties;
|
|
21
|
-
onLoad?: MapCallbacks["load"];
|
|
22
|
-
onZoomStart?: MapCallbacks["zoomstart"];
|
|
23
|
-
onZoomEnd?: MapCallbacks["zoomend"];
|
|
24
|
-
onDragEnd?: MapCallbacks["dragend"];
|
|
25
|
-
onDragStart?: MapCallbacks["dragstart"];
|
|
26
|
-
onIdle?: MapCallbacks["idle"];
|
|
27
|
-
onResize?: MapCallbacks["resize"];
|
|
28
|
-
onScroll?: MapCallbacks["scroll"];
|
|
29
91
|
}
|
|
30
92
|
declare const Map: import("react").ForwardRefExoticComponent<MapProps & import("react").RefAttributes<naver.maps.Map>>;
|
|
31
93
|
export default Map;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Map.d.ts","sourceRoot":"","sources":["../../src/components/Map.tsx"],"names":[],"mappings":"AACA,OAAO,EAKL,SAAS,EAIV,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAI3D,UAAU,YAAY;IACpB,
|
|
1
|
+
{"version":3,"file":"Map.d.ts","sourceRoot":"","sources":["../../src/components/Map.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
declare const EVENT_TO_PROP: {
|
|
2
|
+
readonly click: "onClick";
|
|
3
|
+
readonly position_changed: "onPositionChanged";
|
|
4
|
+
readonly rightclick: "onRightclick";
|
|
5
|
+
readonly title_changed: "onTitleChanged";
|
|
6
|
+
readonly touchend: "onTouchEnd";
|
|
7
|
+
readonly touchstart: "onTouchStart";
|
|
8
|
+
readonly visible_changed: "onVisibleChanged";
|
|
9
|
+
readonly zindex_changed: "onZIndexChanged";
|
|
10
|
+
readonly clickable_changed: "onClickableChanged";
|
|
11
|
+
readonly dblclick: "onDblclick";
|
|
12
|
+
readonly draggable_changed: "onDraggableChanged";
|
|
13
|
+
readonly icon_changed: "onIconChanged";
|
|
14
|
+
readonly icon_loaded: "onIconLoaded";
|
|
15
|
+
readonly mousedown: "onMousedown";
|
|
16
|
+
readonly mouseup: "onMouseup";
|
|
17
|
+
};
|
|
18
|
+
type EventKey = keyof typeof EVENT_TO_PROP;
|
|
19
|
+
type PropKey = (typeof EVENT_TO_PROP)[EventKey];
|
|
5
20
|
interface MarkerCallbacks {
|
|
6
|
-
click?: (
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
21
|
+
click?: (event: naver.maps.PointerEvent) => void;
|
|
22
|
+
clickable_changed?: (clickable: boolean) => void;
|
|
23
|
+
dblclick?: (event: naver.maps.PointerEvent) => void;
|
|
24
|
+
draggable_changed?: (draggable: boolean) => void;
|
|
25
|
+
icon_changed?: (icon: string | naver.maps.ImageIcon | naver.maps.SymbolIcon | naver.maps.HtmlIcon) => void;
|
|
26
|
+
icon_loaded?: (marker: naver.maps.Marker) => void;
|
|
27
|
+
mousedown?: (event: naver.maps.PointerEvent) => void;
|
|
28
|
+
mouseup?: (event: naver.maps.PointerEvent) => void;
|
|
29
|
+
position_changed?: (position: naver.maps.Coord) => void;
|
|
30
|
+
rightclick?: (event: naver.maps.PointerEvent) => void;
|
|
31
|
+
title_changed?: (title: string) => void;
|
|
32
|
+
touchend?: (event: naver.maps.PointerEvent) => void;
|
|
33
|
+
touchstart?: (event: naver.maps.PointerEvent) => void;
|
|
34
|
+
visible_changed?: (visible: boolean) => void;
|
|
35
|
+
zindex_changed?: (zIndex: number) => void;
|
|
10
36
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
37
|
+
type HandlerOfProp<P extends PropKey> = MarkerCallbacks[{
|
|
38
|
+
[E in EventKey]: (typeof EVENT_TO_PROP)[E] extends P ? E : never;
|
|
39
|
+
}[EventKey]];
|
|
40
|
+
type MarkerEventProps = {
|
|
41
|
+
[P in PropKey]?: HandlerOfProp<P>;
|
|
42
|
+
};
|
|
43
|
+
export interface MarkerProps extends naver.maps.MarkerOptions, MarkerEventProps {
|
|
16
44
|
}
|
|
17
|
-
declare const Marker: ({
|
|
45
|
+
declare const Marker: ({ position, zIndex, animation, clickable, cursor, draggable, icon, shape, title, visible, ...eventProps }: MarkerProps) => null;
|
|
18
46
|
export default Marker;
|
|
19
47
|
//# sourceMappingURL=Marker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Marker.d.ts","sourceRoot":"","sources":["../../src/components/Marker.tsx"],"names":[],"mappings":"AAIA,UAAU,
|
|
1
|
+
{"version":3,"file":"Marker.d.ts","sourceRoot":"","sources":["../../src/components/Marker.tsx"],"names":[],"mappings":"AAIA,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;CAgBT,CAAC;AAEX,KAAK,QAAQ,GAAG,MAAM,OAAO,aAAa,CAAC;AAC3C,KAAK,OAAO,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC;AAEhD,UAAU,eAAe;IACvB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC;IACjD,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC;IACpD,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,YAAY,CAAC,EAAE,CACb,IAAI,EACA,MAAM,GACN,KAAK,CAAC,IAAI,CAAC,SAAS,GACpB,KAAK,CAAC,IAAI,CAAC,UAAU,GACrB,KAAK,CAAC,IAAI,CAAC,QAAQ,KACpB,IAAI,CAAC;IACV,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;IAClD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC;IACrD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC;IACnD,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;IACxD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC;IACtD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC;IACpD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC;IACtD,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED,KAAK,aAAa,CAAC,CAAC,SAAS,OAAO,IAAI,eAAe,CAAC;KACrD,CAAC,IAAI,QAAQ,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK;CACjE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEb,KAAK,gBAAgB,GAAG;KACrB,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,IAAI,CAAC,aAAa,EAC9B,gBAAgB;CAAG;AAEvB,QAAA,MAAM,MAAM,GAAI,2GAYb,WAAW,SA6Gb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|