@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.
@@ -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; //console.log('onMouseOverHandler', marker);
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.setMarkerZIndex = function (marker, zIndex) {
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
- parent_1.style.zIndex = String(zIndex);
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; //console.log('onMouseOverHandler', marker);
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.setMarkerZIndex = function (marker, zIndex) {
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
- parent_1.style.zIndex = String(zIndex);
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; //console.log('onMouseOverHandler', marker);
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.setMarkerZIndex = function (marker, zIndex) {
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
- parent_1.style.zIndex = String(zIndex);
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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mint-ui/map",
3
- "version": "1.1.2",
3
+ "version": "1.1.3",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.es.js",
6
6
  "browser": "./dist/index.umd.js",