@mint-ui/map 1.1.2 → 1.1.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.
- package/.claude/settings.local.json +16 -0
- package/.vscode/settings.json +11 -0
- package/README.md +190 -0
- package/dist/components/mint-map/core/MintMapController.d.ts +1 -0
- package/dist/components/mint-map/core/wrapper/MapMarkerWrapper.js +22 -1
- package/dist/components/mint-map/google/GoogleMintMapController.d.ts +1 -0
- package/dist/components/mint-map/google/GoogleMintMapController.js +4 -0
- package/dist/components/mint-map/kakao/KakaoMintMapController.d.ts +1 -0
- package/dist/components/mint-map/kakao/KakaoMintMapController.js +4 -0
- package/dist/components/mint-map/naver/NaverMintMapController.d.ts +3 -0
- package/dist/components/mint-map/naver/NaverMintMapController.js +32 -3
- package/dist/index.es.js +62 -4
- package/dist/index.umd.js +62 -4
- package/package.json +1 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Read(//var/folders/7t/vchtbctx3m788mhcq9fn2x540000gn/T/TemporaryItems/NSIRD_screencaptureui_OsfFWn/**)",
|
|
5
|
+
"Read(//Users/hans/Desktop/**)",
|
|
6
|
+
"WebSearch",
|
|
7
|
+
"Read(//var/folders/7t/vchtbctx3m788mhcq9fn2x540000gn/T/TemporaryItems/NSIRD_screencaptureui_4DskwH/**)",
|
|
8
|
+
"WebFetch(domain:www.bdsplanet.com)",
|
|
9
|
+
"mcp__ide__getDiagnostics",
|
|
10
|
+
"Bash(npm run storybook:*)",
|
|
11
|
+
"Read(//var/folders/7t/vchtbctx3m788mhcq9fn2x540000gn/T/TemporaryItems/NSIRD_screencaptureui_HMhrPV/**)"
|
|
12
|
+
],
|
|
13
|
+
"deny": [],
|
|
14
|
+
"ask": []
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"editor.formatOnSave": false,
|
|
3
|
+
"editor.codeActionsOnSave": {
|
|
4
|
+
"source.fixAll": false,
|
|
5
|
+
"source.fixAll.eslint": false,
|
|
6
|
+
"source.organizeImports": false
|
|
7
|
+
},
|
|
8
|
+
"eslint.enable": false,
|
|
9
|
+
"typescript.format.enable": false,
|
|
10
|
+
"javascript.format.enable": false
|
|
11
|
+
}
|
package/README.md
CHANGED
|
@@ -79,3 +79,193 @@ root.render((<MyMapComponent/>))
|
|
|
79
79
|
## Document / Reference Site
|
|
80
80
|
|
|
81
81
|
[https://dev-rsquare.github.io/mint-ui-map-guide](https://dev-rsquare.github.io/mint-ui-map-guide)
|
|
82
|
+
|
|
83
|
+
## 개발 및 NPM 배포
|
|
84
|
+
|
|
85
|
+
### NPM 배포하는 방법
|
|
86
|
+
|
|
87
|
+
#### 1. NPM 계정 로그인 확인
|
|
88
|
+
먼저 NPM에 로그인되어 있는지 확인합니다.
|
|
89
|
+
```bash
|
|
90
|
+
npm whoami
|
|
91
|
+
```
|
|
92
|
+
만약 로그인이 안되어 있다면:
|
|
93
|
+
```bash
|
|
94
|
+
npm login
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
#### 2. 프로젝트 빌드
|
|
98
|
+
배포하기 전에 반드시 프로젝트를 빌드해야 합니다.
|
|
99
|
+
```bash
|
|
100
|
+
npm run build
|
|
101
|
+
```
|
|
102
|
+
이 명령어는 `dist/` 폴더에 배포용 파일들을 생성합니다.
|
|
103
|
+
|
|
104
|
+
#### 3. 버전 업데이트 (필요한 경우)
|
|
105
|
+
새로운 기능이나 버그 수정이 있다면 버전을 올려야 합니다.
|
|
106
|
+
|
|
107
|
+
- **버그 수정**: `1.1.2` → `1.1.3` (patch)
|
|
108
|
+
```bash
|
|
109
|
+
npm version patch
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
- **새로운 기능 추가**: `1.1.2` → `1.2.0` (minor)
|
|
113
|
+
```bash
|
|
114
|
+
npm version minor
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
- **호환성이 깨지는 변경**: `1.1.2` → `2.0.0` (major)
|
|
118
|
+
```bash
|
|
119
|
+
npm version major
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
#### 4. 배포 전 확인 (권장)
|
|
123
|
+
실제 배포하기 전에 어떤 파일들이 배포될지 확인해보세요.
|
|
124
|
+
```bash
|
|
125
|
+
npm pack
|
|
126
|
+
```
|
|
127
|
+
이 명령어는 `.tgz` 파일을 생성하고, 배포될 파일 목록을 보여줍니다.
|
|
128
|
+
|
|
129
|
+
#### 5. NPM에 배포
|
|
130
|
+
스코프 패키지(`@mint-ui/map`)는 기본적으로 private이므로 public으로 배포해야 합니다.
|
|
131
|
+
```bash
|
|
132
|
+
npm publish --access public
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
#### 6. 배포 완료 확인
|
|
136
|
+
배포가 성공했는지 NPM 웹사이트에서 확인하거나:
|
|
137
|
+
```bash
|
|
138
|
+
npm view @mint-ui/map
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### 전체 배포 과정 요약
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
# 1단계: 로그인 확인
|
|
145
|
+
npm whoami
|
|
146
|
+
|
|
147
|
+
# 2단계: 빌드
|
|
148
|
+
npm run build
|
|
149
|
+
|
|
150
|
+
# 3단계: 버전 업데이트 (필요시)
|
|
151
|
+
npm version patch
|
|
152
|
+
|
|
153
|
+
# 4단계: 배포 전 확인 (선택사항)
|
|
154
|
+
npm pack
|
|
155
|
+
|
|
156
|
+
# 5단계: 배포
|
|
157
|
+
npm publish --access public
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### 현재 패키지 정보
|
|
161
|
+
- **패키지명**: `@mint-ui/map`
|
|
162
|
+
- **현재 버전**: `1.1.2`
|
|
163
|
+
- **패키지 타입**: 스코프 패키지 (`@mint-ui` 네임스페이스 사용)
|
|
164
|
+
|
|
165
|
+
### 테스트 버전 배포 (Test Tag)
|
|
166
|
+
|
|
167
|
+
새로운 기능을 개발 중이거나 테스트가 필요한 경우, `test` tag를 사용하여 배포할 수 있습니다.
|
|
168
|
+
|
|
169
|
+
#### 테스트 버전 배포 방법
|
|
170
|
+
|
|
171
|
+
1. **새로운 브랜치 생성 및 이동**
|
|
172
|
+
- main 브랜치에서 분리하여 작업
|
|
173
|
+
```bash
|
|
174
|
+
# 새로운 브랜치 생성 및 체크아웃
|
|
175
|
+
git checkout -b 1.2.0-test.1
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
2. **개발 중인 버전의 pre-release 버전 생성**
|
|
179
|
+
- 예: 1.2.0을 개발 중이라면 `1.2.0-test.1` 형식 사용
|
|
180
|
+
```bash
|
|
181
|
+
# 버전 변경 (git tag 생성하지 않음)
|
|
182
|
+
npm version 1.2.0-test.1 --no-git-tag-version
|
|
183
|
+
|
|
184
|
+
# 빌드
|
|
185
|
+
npm run build
|
|
186
|
+
|
|
187
|
+
# test tag로 배포
|
|
188
|
+
npm publish --access public --tag test
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
3. **변경사항 커밋 및 푸시**
|
|
192
|
+
```bash
|
|
193
|
+
git add .
|
|
194
|
+
git commit -m "chore: release 1.2.0-test.1"
|
|
195
|
+
git push origin 1.2.0-test.1
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
4. **수정 후 재배포 (같은 브랜치에서)**
|
|
199
|
+
```bash
|
|
200
|
+
# 버전 업데이트
|
|
201
|
+
npm version 1.2.0-test.2 --no-git-tag-version
|
|
202
|
+
|
|
203
|
+
# 빌드 및 배포
|
|
204
|
+
npm run build
|
|
205
|
+
npm publish --access public --tag test
|
|
206
|
+
|
|
207
|
+
# 커밋 및 푸시
|
|
208
|
+
git add .
|
|
209
|
+
git commit -m "chore: release 1.2.0-test.2"
|
|
210
|
+
git push origin 1.2.0-test.1
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
또는 새로운 테스트 브랜치를 만들 수도 있습니다:
|
|
214
|
+
```bash
|
|
215
|
+
git checkout -b 1.2.0-test.2
|
|
216
|
+
npm version 1.2.0-test.2 --no-git-tag-version
|
|
217
|
+
npm run build
|
|
218
|
+
npm publish --access public --tag test
|
|
219
|
+
git add .
|
|
220
|
+
git commit -m "chore: release 1.2.0-test.2"
|
|
221
|
+
git push origin 1.2.0-test.2
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
5. **테스트 완료 후 정식 배포**
|
|
225
|
+
```bash
|
|
226
|
+
# main 브랜치로 이동
|
|
227
|
+
git checkout main
|
|
228
|
+
|
|
229
|
+
# 테스트 브랜치 병합 (또는 PR 생성)
|
|
230
|
+
git merge 1.2.0-test.1
|
|
231
|
+
|
|
232
|
+
# 정식 버전으로 업데이트
|
|
233
|
+
npm version 1.2.0
|
|
234
|
+
|
|
235
|
+
# 빌드 및 배포
|
|
236
|
+
npm run build
|
|
237
|
+
npm publish --access public
|
|
238
|
+
|
|
239
|
+
# main에 푸시
|
|
240
|
+
git push origin main
|
|
241
|
+
git push origin 1.2.0 # version 명령어로 생성된 태그도 푸시
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
#### 테스트 버전 설치 방법
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
# test tag로 설치
|
|
248
|
+
npm install @mint-ui/map@test
|
|
249
|
+
|
|
250
|
+
# 특정 test 버전으로 설치
|
|
251
|
+
npm install @mint-ui/map@1.2.0-test.1
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
#### 버전 네이밍 규칙
|
|
255
|
+
|
|
256
|
+
- **현재 버전 기반 테스트**: `1.1.2-test.1` (현재 버전 1.1.2를 테스트하는 경우)
|
|
257
|
+
- **신규 버전 개발 테스트**: `1.2.0-test.1` (새로운 기능으로 1.2.0을 만드는 경우)
|
|
258
|
+
- **테스트 버전 증가**: `1.2.0-test.2`, `1.2.0-test.3` ...
|
|
259
|
+
|
|
260
|
+
#### Tag별 버전 관리
|
|
261
|
+
|
|
262
|
+
- **latest tag** (기본): 안정적인 정식 버전 (예: `1.1.2`)
|
|
263
|
+
- **test tag**: 테스트 중인 버전 (예: `1.2.0-test.1`)
|
|
264
|
+
|
|
265
|
+
`npm install @mint-ui/map` 명령어는 항상 `latest` tag의 버전을 설치하므로, test 버전은 명시적으로 `@test`를 붙여야만 설치됩니다.
|
|
266
|
+
|
|
267
|
+
### 주의사항
|
|
268
|
+
- 배포하기 전에 반드시 `npm run build`를 실행해야 합니다
|
|
269
|
+
- 버전은 한 번 배포하면 되돌릴 수 없으니 신중하게 결정하세요
|
|
270
|
+
- 스코프 패키지는 `--access public` 옵션을 반드시 붙여야 합니다
|
|
271
|
+
- test tag로 배포할 때는 `--no-git-tag-version` 옵션을 사용하여 git tag 생성을 방지합니다
|
|
@@ -24,6 +24,7 @@ export declare abstract class MintMapController {
|
|
|
24
24
|
abstract updateMarker(marker: Marker, options: MarkerOptions): void;
|
|
25
25
|
abstract clearDrawable(drawable: Drawable): boolean;
|
|
26
26
|
abstract markerToTheTop(marker: Marker): void;
|
|
27
|
+
abstract restoreMarkerZIndex(marker: Marker): void;
|
|
27
28
|
abstract isMapDragged(): boolean;
|
|
28
29
|
abstract setMapDragged(value: boolean): void;
|
|
29
30
|
abstract setMarkerZIndex(marker: Marker, zIndex: number): void;
|
|
@@ -172,7 +172,7 @@ function MapMarkerWrapper(_a) {
|
|
|
172
172
|
var onMouseOverHandler = function (e) {
|
|
173
173
|
var _a;
|
|
174
174
|
|
|
175
|
-
var marker = markerRef.current;
|
|
175
|
+
var marker = markerRef.current;
|
|
176
176
|
|
|
177
177
|
if (marker) {
|
|
178
178
|
var mouseOverHandler = (_a = options === null || options === void 0 ? void 0 : options.event) === null || _a === void 0 ? void 0 : _a.get('mouseover');
|
|
@@ -185,6 +185,25 @@ function MapMarkerWrapper(_a) {
|
|
|
185
185
|
|
|
186
186
|
next && topOnHover && controller.markerToTheTop(marker);
|
|
187
187
|
}
|
|
188
|
+
}; // 20251014 | 장한별 | mouseleave 이벤트 추가, 마우스가 마커 위에서 떠날 때 원래 zindex 를 복구하기 위함
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
var onMouseLeaveHandler = function (e) {
|
|
192
|
+
var _a;
|
|
193
|
+
|
|
194
|
+
var marker = markerRef.current;
|
|
195
|
+
|
|
196
|
+
if (marker) {
|
|
197
|
+
var mouseOutHandler = (_a = options === null || options === void 0 ? void 0 : options.event) === null || _a === void 0 ? void 0 : _a.get('mouseout');
|
|
198
|
+
var next = true;
|
|
199
|
+
|
|
200
|
+
if (mouseOutHandler) {
|
|
201
|
+
var hasNext = mouseOutHandler(e);
|
|
202
|
+
hasNext !== undefined && (next = hasNext);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
next && topOnHover && controller.restoreMarkerZIndex(marker);
|
|
206
|
+
}
|
|
188
207
|
}; //create object
|
|
189
208
|
|
|
190
209
|
|
|
@@ -202,10 +221,12 @@ function MapMarkerWrapper(_a) {
|
|
|
202
221
|
}); //드래그 여부 초기화를 먼저 수행하기 위해 capture : true 처리
|
|
203
222
|
|
|
204
223
|
divElement.addEventListener('mouseover', onMouseOverHandler);
|
|
224
|
+
divElement.addEventListener('mouseleave', onMouseLeaveHandler);
|
|
205
225
|
return function () {
|
|
206
226
|
divElement.removeEventListener('click', onClickHandler);
|
|
207
227
|
divElement.removeEventListener('mousedown', onMousedownHandler);
|
|
208
228
|
divElement.removeEventListener('mouseover', onMouseOverHandler);
|
|
229
|
+
divElement.removeEventListener('mouseleave', onMouseLeaveHandler);
|
|
209
230
|
|
|
210
231
|
if (markerRef.current) {
|
|
211
232
|
controller.clearDrawable(markerRef.current);
|
|
@@ -28,6 +28,7 @@ export declare class GoogleMintMapController extends MintMapController {
|
|
|
28
28
|
private getMaxZIndex;
|
|
29
29
|
setMarkerZIndex(marker: Marker, zIndex: number): void;
|
|
30
30
|
markerToTheTop(marker: Marker): void;
|
|
31
|
+
restoreMarkerZIndex(marker: Marker): void;
|
|
31
32
|
clearDrawable(drawable: Drawable): boolean;
|
|
32
33
|
private dragged;
|
|
33
34
|
isMapDragged(): boolean;
|
|
@@ -335,6 +335,10 @@ function (_super) {
|
|
|
335
335
|
}
|
|
336
336
|
};
|
|
337
337
|
|
|
338
|
+
GoogleMintMapController.prototype.restoreMarkerZIndex = function (marker) {// Google Maps에서는 restoreMarkerZIndex 기능을 지원하지 않습니다.
|
|
339
|
+
// 이 기능은 Naver Maps에서만 사용 가능합니다.
|
|
340
|
+
};
|
|
341
|
+
|
|
338
342
|
GoogleMintMapController.prototype.clearDrawable = function (drawable) {
|
|
339
343
|
if (drawable && drawable.native) {
|
|
340
344
|
if (drawable.native instanceof google.maps.Marker || drawable.native instanceof google.maps.Polygon || drawable.native instanceof google.maps.Polyline) {
|
|
@@ -31,6 +31,7 @@ export declare class KakaoMintMapController extends MintMapController {
|
|
|
31
31
|
private getMaxZIndex;
|
|
32
32
|
setMarkerZIndex(marker: Marker, zIndex: number): void;
|
|
33
33
|
markerToTheTop(marker: Marker): void;
|
|
34
|
+
restoreMarkerZIndex(marker: Marker): void;
|
|
34
35
|
clearDrawable(drawable: Drawable): boolean;
|
|
35
36
|
private dragged;
|
|
36
37
|
isMapDragged(): boolean;
|
|
@@ -343,6 +343,10 @@ function (_super) {
|
|
|
343
343
|
}
|
|
344
344
|
};
|
|
345
345
|
|
|
346
|
+
KakaoMintMapController.prototype.restoreMarkerZIndex = function (marker) {// Kakao Maps에서는 restoreMarkerZIndex 기능을 지원하지 않습니다.
|
|
347
|
+
// 이 기능은 Naver Maps에서만 사용 가능합니다.
|
|
348
|
+
};
|
|
349
|
+
|
|
346
350
|
KakaoMintMapController.prototype.clearDrawable = function (drawable) {
|
|
347
351
|
var _this = this;
|
|
348
352
|
|
|
@@ -27,9 +27,12 @@ export declare class NaverMintMapController extends MintMapController {
|
|
|
27
27
|
createMarker(marker: Marker): void;
|
|
28
28
|
updateMarker(marker: Marker, options: MarkerOptions): void;
|
|
29
29
|
private markerMaxZIndex;
|
|
30
|
+
private markerOriginalZIndex;
|
|
30
31
|
private getMaxZIndex;
|
|
32
|
+
private getCurrentZIndex;
|
|
31
33
|
setMarkerZIndex(marker: Marker, zIndex: number): void;
|
|
32
34
|
markerToTheTop(marker: Marker): void;
|
|
35
|
+
restoreMarkerZIndex(marker: Marker): void;
|
|
33
36
|
clearDrawable(drawable: Drawable): boolean;
|
|
34
37
|
private dragged;
|
|
35
38
|
isMapDragged(): boolean;
|
|
@@ -335,20 +335,49 @@ function (_super) {
|
|
|
335
335
|
}
|
|
336
336
|
};
|
|
337
337
|
|
|
338
|
-
NaverMintMapController.prototype.
|
|
338
|
+
NaverMintMapController.prototype.getCurrentZIndex = function (marker) {
|
|
339
339
|
if (this.map && marker.element && marker.element instanceof HTMLElement) {
|
|
340
340
|
var parent_1 = marker.element.parentElement;
|
|
341
341
|
|
|
342
|
-
if (parent_1) {
|
|
343
|
-
|
|
342
|
+
if (parent_1 && parent_1.style.zIndex) {
|
|
343
|
+
var zIndex = Number(parent_1.style.zIndex);
|
|
344
|
+
return isNaN(zIndex) ? undefined : zIndex;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
return undefined;
|
|
349
|
+
};
|
|
350
|
+
|
|
351
|
+
NaverMintMapController.prototype.setMarkerZIndex = function (marker, zIndex) {
|
|
352
|
+
if (this.map && marker.element && marker.element instanceof HTMLElement) {
|
|
353
|
+
var parent_2 = marker.element.parentElement;
|
|
354
|
+
|
|
355
|
+
if (parent_2) {
|
|
356
|
+
parent_2.style.zIndex = String(zIndex);
|
|
344
357
|
}
|
|
345
358
|
}
|
|
346
359
|
};
|
|
347
360
|
|
|
348
361
|
NaverMintMapController.prototype.markerToTheTop = function (marker) {
|
|
362
|
+
var currentZIndex = this.getCurrentZIndex(marker); // undefined면 null로 저장 (원래 zIndex가 없었음을 표시)
|
|
363
|
+
|
|
364
|
+
this.markerOriginalZIndex = currentZIndex !== undefined ? currentZIndex : null;
|
|
349
365
|
this.setMarkerZIndex(marker, this.getMaxZIndex(1));
|
|
350
366
|
};
|
|
351
367
|
|
|
368
|
+
NaverMintMapController.prototype.restoreMarkerZIndex = function (marker) {
|
|
369
|
+
if (this.markerOriginalZIndex !== undefined) {
|
|
370
|
+
if (this.markerOriginalZIndex === null) {
|
|
371
|
+
// 원래 zIndex가 없었으면 제거 (또는 초기값 0으로)
|
|
372
|
+
this.setMarkerZIndex(marker, 0);
|
|
373
|
+
} else {
|
|
374
|
+
this.setMarkerZIndex(marker, this.markerOriginalZIndex);
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
this.markerOriginalZIndex = undefined;
|
|
378
|
+
}
|
|
379
|
+
};
|
|
380
|
+
|
|
352
381
|
NaverMintMapController.prototype.clearDrawable = function (drawable) {
|
|
353
382
|
var _a;
|
|
354
383
|
|
package/dist/index.es.js
CHANGED
|
@@ -2102,7 +2102,7 @@ function MapMarkerWrapper(_a) {
|
|
|
2102
2102
|
var onMouseOverHandler = function (e) {
|
|
2103
2103
|
var _a;
|
|
2104
2104
|
|
|
2105
|
-
var marker = markerRef.current;
|
|
2105
|
+
var marker = markerRef.current;
|
|
2106
2106
|
|
|
2107
2107
|
if (marker) {
|
|
2108
2108
|
var mouseOverHandler = (_a = options === null || options === void 0 ? void 0 : options.event) === null || _a === void 0 ? void 0 : _a.get('mouseover');
|
|
@@ -2115,6 +2115,25 @@ function MapMarkerWrapper(_a) {
|
|
|
2115
2115
|
|
|
2116
2116
|
next && topOnHover && controller.markerToTheTop(marker);
|
|
2117
2117
|
}
|
|
2118
|
+
}; // 20251014 | 장한별 | mouseleave 이벤트 추가, 마우스가 마커 위에서 떠날 때 원래 zindex 를 복구하기 위함
|
|
2119
|
+
|
|
2120
|
+
|
|
2121
|
+
var onMouseLeaveHandler = function (e) {
|
|
2122
|
+
var _a;
|
|
2123
|
+
|
|
2124
|
+
var marker = markerRef.current;
|
|
2125
|
+
|
|
2126
|
+
if (marker) {
|
|
2127
|
+
var mouseOutHandler = (_a = options === null || options === void 0 ? void 0 : options.event) === null || _a === void 0 ? void 0 : _a.get('mouseout');
|
|
2128
|
+
var next = true;
|
|
2129
|
+
|
|
2130
|
+
if (mouseOutHandler) {
|
|
2131
|
+
var hasNext = mouseOutHandler(e);
|
|
2132
|
+
hasNext !== undefined && (next = hasNext);
|
|
2133
|
+
}
|
|
2134
|
+
|
|
2135
|
+
next && topOnHover && controller.restoreMarkerZIndex(marker);
|
|
2136
|
+
}
|
|
2118
2137
|
}; //create object
|
|
2119
2138
|
|
|
2120
2139
|
|
|
@@ -2132,10 +2151,12 @@ function MapMarkerWrapper(_a) {
|
|
|
2132
2151
|
}); //드래그 여부 초기화를 먼저 수행하기 위해 capture : true 처리
|
|
2133
2152
|
|
|
2134
2153
|
divElement.addEventListener('mouseover', onMouseOverHandler);
|
|
2154
|
+
divElement.addEventListener('mouseleave', onMouseLeaveHandler);
|
|
2135
2155
|
return function () {
|
|
2136
2156
|
divElement.removeEventListener('click', onClickHandler);
|
|
2137
2157
|
divElement.removeEventListener('mousedown', onMousedownHandler);
|
|
2138
2158
|
divElement.removeEventListener('mouseover', onMouseOverHandler);
|
|
2159
|
+
divElement.removeEventListener('mouseleave', onMouseLeaveHandler);
|
|
2139
2160
|
|
|
2140
2161
|
if (markerRef.current) {
|
|
2141
2162
|
controller.clearDrawable(markerRef.current);
|
|
@@ -3862,20 +3883,49 @@ function (_super) {
|
|
|
3862
3883
|
}
|
|
3863
3884
|
};
|
|
3864
3885
|
|
|
3865
|
-
NaverMintMapController.prototype.
|
|
3886
|
+
NaverMintMapController.prototype.getCurrentZIndex = function (marker) {
|
|
3866
3887
|
if (this.map && marker.element && marker.element instanceof HTMLElement) {
|
|
3867
3888
|
var parent_1 = marker.element.parentElement;
|
|
3868
3889
|
|
|
3869
|
-
if (parent_1) {
|
|
3870
|
-
|
|
3890
|
+
if (parent_1 && parent_1.style.zIndex) {
|
|
3891
|
+
var zIndex = Number(parent_1.style.zIndex);
|
|
3892
|
+
return isNaN(zIndex) ? undefined : zIndex;
|
|
3893
|
+
}
|
|
3894
|
+
}
|
|
3895
|
+
|
|
3896
|
+
return undefined;
|
|
3897
|
+
};
|
|
3898
|
+
|
|
3899
|
+
NaverMintMapController.prototype.setMarkerZIndex = function (marker, zIndex) {
|
|
3900
|
+
if (this.map && marker.element && marker.element instanceof HTMLElement) {
|
|
3901
|
+
var parent_2 = marker.element.parentElement;
|
|
3902
|
+
|
|
3903
|
+
if (parent_2) {
|
|
3904
|
+
parent_2.style.zIndex = String(zIndex);
|
|
3871
3905
|
}
|
|
3872
3906
|
}
|
|
3873
3907
|
};
|
|
3874
3908
|
|
|
3875
3909
|
NaverMintMapController.prototype.markerToTheTop = function (marker) {
|
|
3910
|
+
var currentZIndex = this.getCurrentZIndex(marker); // undefined면 null로 저장 (원래 zIndex가 없었음을 표시)
|
|
3911
|
+
|
|
3912
|
+
this.markerOriginalZIndex = currentZIndex !== undefined ? currentZIndex : null;
|
|
3876
3913
|
this.setMarkerZIndex(marker, this.getMaxZIndex(1));
|
|
3877
3914
|
};
|
|
3878
3915
|
|
|
3916
|
+
NaverMintMapController.prototype.restoreMarkerZIndex = function (marker) {
|
|
3917
|
+
if (this.markerOriginalZIndex !== undefined) {
|
|
3918
|
+
if (this.markerOriginalZIndex === null) {
|
|
3919
|
+
// 원래 zIndex가 없었으면 제거 (또는 초기값 0으로)
|
|
3920
|
+
this.setMarkerZIndex(marker, 0);
|
|
3921
|
+
} else {
|
|
3922
|
+
this.setMarkerZIndex(marker, this.markerOriginalZIndex);
|
|
3923
|
+
}
|
|
3924
|
+
|
|
3925
|
+
this.markerOriginalZIndex = undefined;
|
|
3926
|
+
}
|
|
3927
|
+
};
|
|
3928
|
+
|
|
3879
3929
|
NaverMintMapController.prototype.clearDrawable = function (drawable) {
|
|
3880
3930
|
var _a;
|
|
3881
3931
|
|
|
@@ -4630,6 +4680,10 @@ function (_super) {
|
|
|
4630
4680
|
}
|
|
4631
4681
|
};
|
|
4632
4682
|
|
|
4683
|
+
GoogleMintMapController.prototype.restoreMarkerZIndex = function (marker) {// Google Maps에서는 restoreMarkerZIndex 기능을 지원하지 않습니다.
|
|
4684
|
+
// 이 기능은 Naver Maps에서만 사용 가능합니다.
|
|
4685
|
+
};
|
|
4686
|
+
|
|
4633
4687
|
GoogleMintMapController.prototype.clearDrawable = function (drawable) {
|
|
4634
4688
|
if (drawable && drawable.native) {
|
|
4635
4689
|
if (drawable.native instanceof google.maps.Marker || drawable.native instanceof google.maps.Polygon || drawable.native instanceof google.maps.Polyline) {
|
|
@@ -5352,6 +5406,10 @@ function (_super) {
|
|
|
5352
5406
|
}
|
|
5353
5407
|
};
|
|
5354
5408
|
|
|
5409
|
+
KakaoMintMapController.prototype.restoreMarkerZIndex = function (marker) {// Kakao Maps에서는 restoreMarkerZIndex 기능을 지원하지 않습니다.
|
|
5410
|
+
// 이 기능은 Naver Maps에서만 사용 가능합니다.
|
|
5411
|
+
};
|
|
5412
|
+
|
|
5355
5413
|
KakaoMintMapController.prototype.clearDrawable = function (drawable) {
|
|
5356
5414
|
var _this = this;
|
|
5357
5415
|
|
package/dist/index.umd.js
CHANGED
|
@@ -2106,7 +2106,7 @@
|
|
|
2106
2106
|
var onMouseOverHandler = function (e) {
|
|
2107
2107
|
var _a;
|
|
2108
2108
|
|
|
2109
|
-
var marker = markerRef.current;
|
|
2109
|
+
var marker = markerRef.current;
|
|
2110
2110
|
|
|
2111
2111
|
if (marker) {
|
|
2112
2112
|
var mouseOverHandler = (_a = options === null || options === void 0 ? void 0 : options.event) === null || _a === void 0 ? void 0 : _a.get('mouseover');
|
|
@@ -2119,6 +2119,25 @@
|
|
|
2119
2119
|
|
|
2120
2120
|
next && topOnHover && controller.markerToTheTop(marker);
|
|
2121
2121
|
}
|
|
2122
|
+
}; // 20251014 | 장한별 | mouseleave 이벤트 추가, 마우스가 마커 위에서 떠날 때 원래 zindex 를 복구하기 위함
|
|
2123
|
+
|
|
2124
|
+
|
|
2125
|
+
var onMouseLeaveHandler = function (e) {
|
|
2126
|
+
var _a;
|
|
2127
|
+
|
|
2128
|
+
var marker = markerRef.current;
|
|
2129
|
+
|
|
2130
|
+
if (marker) {
|
|
2131
|
+
var mouseOutHandler = (_a = options === null || options === void 0 ? void 0 : options.event) === null || _a === void 0 ? void 0 : _a.get('mouseout');
|
|
2132
|
+
var next = true;
|
|
2133
|
+
|
|
2134
|
+
if (mouseOutHandler) {
|
|
2135
|
+
var hasNext = mouseOutHandler(e);
|
|
2136
|
+
hasNext !== undefined && (next = hasNext);
|
|
2137
|
+
}
|
|
2138
|
+
|
|
2139
|
+
next && topOnHover && controller.restoreMarkerZIndex(marker);
|
|
2140
|
+
}
|
|
2122
2141
|
}; //create object
|
|
2123
2142
|
|
|
2124
2143
|
|
|
@@ -2136,10 +2155,12 @@
|
|
|
2136
2155
|
}); //드래그 여부 초기화를 먼저 수행하기 위해 capture : true 처리
|
|
2137
2156
|
|
|
2138
2157
|
divElement.addEventListener('mouseover', onMouseOverHandler);
|
|
2158
|
+
divElement.addEventListener('mouseleave', onMouseLeaveHandler);
|
|
2139
2159
|
return function () {
|
|
2140
2160
|
divElement.removeEventListener('click', onClickHandler);
|
|
2141
2161
|
divElement.removeEventListener('mousedown', onMousedownHandler);
|
|
2142
2162
|
divElement.removeEventListener('mouseover', onMouseOverHandler);
|
|
2163
|
+
divElement.removeEventListener('mouseleave', onMouseLeaveHandler);
|
|
2143
2164
|
|
|
2144
2165
|
if (markerRef.current) {
|
|
2145
2166
|
controller.clearDrawable(markerRef.current);
|
|
@@ -3866,20 +3887,49 @@
|
|
|
3866
3887
|
}
|
|
3867
3888
|
};
|
|
3868
3889
|
|
|
3869
|
-
NaverMintMapController.prototype.
|
|
3890
|
+
NaverMintMapController.prototype.getCurrentZIndex = function (marker) {
|
|
3870
3891
|
if (this.map && marker.element && marker.element instanceof HTMLElement) {
|
|
3871
3892
|
var parent_1 = marker.element.parentElement;
|
|
3872
3893
|
|
|
3873
|
-
if (parent_1) {
|
|
3874
|
-
|
|
3894
|
+
if (parent_1 && parent_1.style.zIndex) {
|
|
3895
|
+
var zIndex = Number(parent_1.style.zIndex);
|
|
3896
|
+
return isNaN(zIndex) ? undefined : zIndex;
|
|
3897
|
+
}
|
|
3898
|
+
}
|
|
3899
|
+
|
|
3900
|
+
return undefined;
|
|
3901
|
+
};
|
|
3902
|
+
|
|
3903
|
+
NaverMintMapController.prototype.setMarkerZIndex = function (marker, zIndex) {
|
|
3904
|
+
if (this.map && marker.element && marker.element instanceof HTMLElement) {
|
|
3905
|
+
var parent_2 = marker.element.parentElement;
|
|
3906
|
+
|
|
3907
|
+
if (parent_2) {
|
|
3908
|
+
parent_2.style.zIndex = String(zIndex);
|
|
3875
3909
|
}
|
|
3876
3910
|
}
|
|
3877
3911
|
};
|
|
3878
3912
|
|
|
3879
3913
|
NaverMintMapController.prototype.markerToTheTop = function (marker) {
|
|
3914
|
+
var currentZIndex = this.getCurrentZIndex(marker); // undefined면 null로 저장 (원래 zIndex가 없었음을 표시)
|
|
3915
|
+
|
|
3916
|
+
this.markerOriginalZIndex = currentZIndex !== undefined ? currentZIndex : null;
|
|
3880
3917
|
this.setMarkerZIndex(marker, this.getMaxZIndex(1));
|
|
3881
3918
|
};
|
|
3882
3919
|
|
|
3920
|
+
NaverMintMapController.prototype.restoreMarkerZIndex = function (marker) {
|
|
3921
|
+
if (this.markerOriginalZIndex !== undefined) {
|
|
3922
|
+
if (this.markerOriginalZIndex === null) {
|
|
3923
|
+
// 원래 zIndex가 없었으면 제거 (또는 초기값 0으로)
|
|
3924
|
+
this.setMarkerZIndex(marker, 0);
|
|
3925
|
+
} else {
|
|
3926
|
+
this.setMarkerZIndex(marker, this.markerOriginalZIndex);
|
|
3927
|
+
}
|
|
3928
|
+
|
|
3929
|
+
this.markerOriginalZIndex = undefined;
|
|
3930
|
+
}
|
|
3931
|
+
};
|
|
3932
|
+
|
|
3883
3933
|
NaverMintMapController.prototype.clearDrawable = function (drawable) {
|
|
3884
3934
|
var _a;
|
|
3885
3935
|
|
|
@@ -4634,6 +4684,10 @@
|
|
|
4634
4684
|
}
|
|
4635
4685
|
};
|
|
4636
4686
|
|
|
4687
|
+
GoogleMintMapController.prototype.restoreMarkerZIndex = function (marker) {// Google Maps에서는 restoreMarkerZIndex 기능을 지원하지 않습니다.
|
|
4688
|
+
// 이 기능은 Naver Maps에서만 사용 가능합니다.
|
|
4689
|
+
};
|
|
4690
|
+
|
|
4637
4691
|
GoogleMintMapController.prototype.clearDrawable = function (drawable) {
|
|
4638
4692
|
if (drawable && drawable.native) {
|
|
4639
4693
|
if (drawable.native instanceof google.maps.Marker || drawable.native instanceof google.maps.Polygon || drawable.native instanceof google.maps.Polyline) {
|
|
@@ -5356,6 +5410,10 @@
|
|
|
5356
5410
|
}
|
|
5357
5411
|
};
|
|
5358
5412
|
|
|
5413
|
+
KakaoMintMapController.prototype.restoreMarkerZIndex = function (marker) {// Kakao Maps에서는 restoreMarkerZIndex 기능을 지원하지 않습니다.
|
|
5414
|
+
// 이 기능은 Naver Maps에서만 사용 가능합니다.
|
|
5415
|
+
};
|
|
5416
|
+
|
|
5359
5417
|
KakaoMintMapController.prototype.clearDrawable = function (drawable) {
|
|
5360
5418
|
var _this = this;
|
|
5361
5419
|
|