@mint-ui/map 1.2.0-test.23 → 1.2.0-test.24
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/dist/components/mint-map/core/MintMapController.d.ts +1 -0
- package/dist/components/mint-map/core/advanced/woongCanvas/WoongCanvasLayer.js +8 -15
- 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 +37 -3
- package/dist/index.es.js +75 -19
- package/dist/index.umd.js +75 -19
- package/package.json +1 -1
|
@@ -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;
|
|
@@ -466,24 +466,17 @@ var WoongCanvasLayer = function (props) {
|
|
|
466
466
|
var selectedItem = selectedItemRef.current; // topOnHover가 true이면 hover된 항목을 최상단에 렌더링
|
|
467
467
|
|
|
468
468
|
if (topOnHover && hovered) {
|
|
469
|
-
// hover된 항목만 최상단에 렌더링 (renderEvent
|
|
469
|
+
// hover된 항목만 최상단에 렌더링 (renderEvent는 한 번만 호출)
|
|
470
470
|
var isHoveredInViewport = enableViewportCulling ? isInViewport(hovered) : true;
|
|
471
471
|
|
|
472
472
|
if (isHoveredInViewport) {
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
ctx.lineWidth = 2;
|
|
481
|
-
ctx.beginPath();
|
|
482
|
-
ctx.arc(position.x, position.y, 10, 0, 2 * Math.PI);
|
|
483
|
-
ctx.fill();
|
|
484
|
-
ctx.stroke();
|
|
485
|
-
ctx.restore();
|
|
486
|
-
}
|
|
473
|
+
renderEvent({
|
|
474
|
+
ctx: ctx,
|
|
475
|
+
hoveredItem: hovered,
|
|
476
|
+
utils: renderUtils,
|
|
477
|
+
selectedItems: selectedItems,
|
|
478
|
+
selectedItem: selectedItem
|
|
479
|
+
});
|
|
487
480
|
}
|
|
488
481
|
} else {
|
|
489
482
|
// topOnHover가 false이거나 hover된 항목이 없으면 일반 렌더링
|
|
@@ -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;
|
|
@@ -341,6 +341,10 @@ function (_super) {
|
|
|
341
341
|
}
|
|
342
342
|
};
|
|
343
343
|
|
|
344
|
+
GoogleMintMapController.prototype.restoreMarkerZIndex = function (marker) {// Google Maps에서는 restoreMarkerZIndex 기능을 지원하지 않습니다.
|
|
345
|
+
// 이 기능은 Naver Maps에서만 사용 가능합니다.
|
|
346
|
+
};
|
|
347
|
+
|
|
344
348
|
GoogleMintMapController.prototype.clearDrawable = function (drawable) {
|
|
345
349
|
if (drawable && drawable.native) {
|
|
346
350
|
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;
|
|
@@ -349,6 +349,10 @@ function (_super) {
|
|
|
349
349
|
}
|
|
350
350
|
};
|
|
351
351
|
|
|
352
|
+
KakaoMintMapController.prototype.restoreMarkerZIndex = function (marker) {// Kakao Maps에서는 restoreMarkerZIndex 기능을 지원하지 않습니다.
|
|
353
|
+
// 이 기능은 Naver Maps에서만 사용 가능합니다.
|
|
354
|
+
};
|
|
355
|
+
|
|
352
356
|
KakaoMintMapController.prototype.clearDrawable = function (drawable) {
|
|
353
357
|
var _this = this;
|
|
354
358
|
|
|
@@ -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;
|
|
@@ -341,20 +341,54 @@ function (_super) {
|
|
|
341
341
|
}
|
|
342
342
|
};
|
|
343
343
|
|
|
344
|
-
NaverMintMapController.prototype.
|
|
344
|
+
NaverMintMapController.prototype.getCurrentZIndex = function (marker) {
|
|
345
345
|
if (this.map && marker.element && marker.element instanceof HTMLElement) {
|
|
346
346
|
var parent_1 = marker.element.parentElement;
|
|
347
347
|
|
|
348
|
-
if (parent_1) {
|
|
349
|
-
|
|
348
|
+
if (parent_1 && parent_1.style.zIndex) {
|
|
349
|
+
var zIndex = Number(parent_1.style.zIndex);
|
|
350
|
+
return isNaN(zIndex) ? undefined : zIndex;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
return undefined;
|
|
355
|
+
};
|
|
356
|
+
|
|
357
|
+
NaverMintMapController.prototype.setMarkerZIndex = function (marker, zIndex) {
|
|
358
|
+
if (this.map && marker.element && marker.element instanceof HTMLElement) {
|
|
359
|
+
var parent_2 = marker.element.parentElement;
|
|
360
|
+
|
|
361
|
+
if (parent_2) {
|
|
362
|
+
parent_2.style.zIndex = String(zIndex);
|
|
350
363
|
}
|
|
351
364
|
}
|
|
352
365
|
};
|
|
353
366
|
|
|
354
367
|
NaverMintMapController.prototype.markerToTheTop = function (marker) {
|
|
368
|
+
// 이미 최상위로 올라간 상태면 (원래 zIndex가 이미 저장됨) 중복 실행 방지
|
|
369
|
+
if (this.markerOriginalZIndex !== undefined) {
|
|
370
|
+
return;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
var currentZIndex = this.getCurrentZIndex(marker); // undefined면 null로 저장 (원래 zIndex가 없었음을 표시)
|
|
374
|
+
|
|
375
|
+
this.markerOriginalZIndex = currentZIndex !== undefined ? currentZIndex : null;
|
|
355
376
|
this.setMarkerZIndex(marker, this.getMaxZIndex(1));
|
|
356
377
|
};
|
|
357
378
|
|
|
379
|
+
NaverMintMapController.prototype.restoreMarkerZIndex = function (marker) {
|
|
380
|
+
if (this.markerOriginalZIndex !== undefined) {
|
|
381
|
+
if (this.markerOriginalZIndex === null) {
|
|
382
|
+
// 원래 zIndex가 없었으면 제거 (또는 초기값 0으로)
|
|
383
|
+
this.setMarkerZIndex(marker, 0);
|
|
384
|
+
} else {
|
|
385
|
+
this.setMarkerZIndex(marker, this.markerOriginalZIndex);
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
this.markerOriginalZIndex = undefined;
|
|
389
|
+
}
|
|
390
|
+
};
|
|
391
|
+
|
|
358
392
|
NaverMintMapController.prototype.clearDrawable = function (drawable) {
|
|
359
393
|
var _a;
|
|
360
394
|
|
package/dist/index.es.js
CHANGED
|
@@ -3327,7 +3327,7 @@ function MapMarkerWrapper(_a) {
|
|
|
3327
3327
|
var onMouseOverHandler = function (e) {
|
|
3328
3328
|
var _a;
|
|
3329
3329
|
|
|
3330
|
-
var marker = markerRef.current;
|
|
3330
|
+
var marker = markerRef.current;
|
|
3331
3331
|
|
|
3332
3332
|
if (marker) {
|
|
3333
3333
|
var mouseOverHandler = (_a = options === null || options === void 0 ? void 0 : options.event) === null || _a === void 0 ? void 0 : _a.get('mouseover');
|
|
@@ -3340,6 +3340,25 @@ function MapMarkerWrapper(_a) {
|
|
|
3340
3340
|
|
|
3341
3341
|
next && topOnHover && controller.markerToTheTop(marker);
|
|
3342
3342
|
}
|
|
3343
|
+
}; // 20251014 | 장한별 | mouseleave 이벤트 추가, 마우스가 마커 위에서 떠날 때 원래 zindex 를 복구하기 위함
|
|
3344
|
+
|
|
3345
|
+
|
|
3346
|
+
var onMouseLeaveHandler = function (e) {
|
|
3347
|
+
var _a;
|
|
3348
|
+
|
|
3349
|
+
var marker = markerRef.current;
|
|
3350
|
+
|
|
3351
|
+
if (marker) {
|
|
3352
|
+
var mouseOutHandler = (_a = options === null || options === void 0 ? void 0 : options.event) === null || _a === void 0 ? void 0 : _a.get('mouseout');
|
|
3353
|
+
var next = true;
|
|
3354
|
+
|
|
3355
|
+
if (mouseOutHandler) {
|
|
3356
|
+
var hasNext = mouseOutHandler(e);
|
|
3357
|
+
hasNext !== undefined && (next = hasNext);
|
|
3358
|
+
}
|
|
3359
|
+
|
|
3360
|
+
next && topOnHover && controller.restoreMarkerZIndex(marker);
|
|
3361
|
+
}
|
|
3343
3362
|
}; //create object
|
|
3344
3363
|
|
|
3345
3364
|
|
|
@@ -3357,10 +3376,12 @@ function MapMarkerWrapper(_a) {
|
|
|
3357
3376
|
}); //드래그 여부 초기화를 먼저 수행하기 위해 capture : true 처리
|
|
3358
3377
|
|
|
3359
3378
|
divElement.addEventListener('mouseover', onMouseOverHandler);
|
|
3379
|
+
divElement.addEventListener('mouseleave', onMouseLeaveHandler);
|
|
3360
3380
|
return function () {
|
|
3361
3381
|
divElement.removeEventListener('click', onClickHandler);
|
|
3362
3382
|
divElement.removeEventListener('mousedown', onMousedownHandler);
|
|
3363
3383
|
divElement.removeEventListener('mouseover', onMouseOverHandler);
|
|
3384
|
+
divElement.removeEventListener('mouseleave', onMouseLeaveHandler);
|
|
3364
3385
|
|
|
3365
3386
|
if (markerRef.current) {
|
|
3366
3387
|
controller.clearDrawable(markerRef.current);
|
|
@@ -6371,24 +6392,17 @@ var WoongCanvasLayer = function (props) {
|
|
|
6371
6392
|
var selectedItem = selectedItemRef.current; // topOnHover가 true이면 hover된 항목을 최상단에 렌더링
|
|
6372
6393
|
|
|
6373
6394
|
if (topOnHover && hovered) {
|
|
6374
|
-
// hover된 항목만 최상단에 렌더링 (renderEvent
|
|
6395
|
+
// hover된 항목만 최상단에 렌더링 (renderEvent는 한 번만 호출)
|
|
6375
6396
|
var isHoveredInViewport = enableViewportCulling ? isInViewport(hovered) : true;
|
|
6376
6397
|
|
|
6377
6398
|
if (isHoveredInViewport) {
|
|
6378
|
-
|
|
6379
|
-
|
|
6380
|
-
|
|
6381
|
-
|
|
6382
|
-
|
|
6383
|
-
|
|
6384
|
-
|
|
6385
|
-
ctx.lineWidth = 2;
|
|
6386
|
-
ctx.beginPath();
|
|
6387
|
-
ctx.arc(position.x, position.y, 10, 0, 2 * Math.PI);
|
|
6388
|
-
ctx.fill();
|
|
6389
|
-
ctx.stroke();
|
|
6390
|
-
ctx.restore();
|
|
6391
|
-
}
|
|
6399
|
+
renderEvent({
|
|
6400
|
+
ctx: ctx,
|
|
6401
|
+
hoveredItem: hovered,
|
|
6402
|
+
utils: renderUtils,
|
|
6403
|
+
selectedItems: selectedItems,
|
|
6404
|
+
selectedItem: selectedItem
|
|
6405
|
+
});
|
|
6392
6406
|
}
|
|
6393
6407
|
} else {
|
|
6394
6408
|
// topOnHover가 false이거나 hover된 항목이 없으면 일반 렌더링
|
|
@@ -7765,20 +7779,54 @@ function (_super) {
|
|
|
7765
7779
|
}
|
|
7766
7780
|
};
|
|
7767
7781
|
|
|
7768
|
-
NaverMintMapController.prototype.
|
|
7782
|
+
NaverMintMapController.prototype.getCurrentZIndex = function (marker) {
|
|
7769
7783
|
if (this.map && marker.element && marker.element instanceof HTMLElement) {
|
|
7770
7784
|
var parent_1 = marker.element.parentElement;
|
|
7771
7785
|
|
|
7772
|
-
if (parent_1) {
|
|
7773
|
-
|
|
7786
|
+
if (parent_1 && parent_1.style.zIndex) {
|
|
7787
|
+
var zIndex = Number(parent_1.style.zIndex);
|
|
7788
|
+
return isNaN(zIndex) ? undefined : zIndex;
|
|
7789
|
+
}
|
|
7790
|
+
}
|
|
7791
|
+
|
|
7792
|
+
return undefined;
|
|
7793
|
+
};
|
|
7794
|
+
|
|
7795
|
+
NaverMintMapController.prototype.setMarkerZIndex = function (marker, zIndex) {
|
|
7796
|
+
if (this.map && marker.element && marker.element instanceof HTMLElement) {
|
|
7797
|
+
var parent_2 = marker.element.parentElement;
|
|
7798
|
+
|
|
7799
|
+
if (parent_2) {
|
|
7800
|
+
parent_2.style.zIndex = String(zIndex);
|
|
7774
7801
|
}
|
|
7775
7802
|
}
|
|
7776
7803
|
};
|
|
7777
7804
|
|
|
7778
7805
|
NaverMintMapController.prototype.markerToTheTop = function (marker) {
|
|
7806
|
+
// 이미 최상위로 올라간 상태면 (원래 zIndex가 이미 저장됨) 중복 실행 방지
|
|
7807
|
+
if (this.markerOriginalZIndex !== undefined) {
|
|
7808
|
+
return;
|
|
7809
|
+
}
|
|
7810
|
+
|
|
7811
|
+
var currentZIndex = this.getCurrentZIndex(marker); // undefined면 null로 저장 (원래 zIndex가 없었음을 표시)
|
|
7812
|
+
|
|
7813
|
+
this.markerOriginalZIndex = currentZIndex !== undefined ? currentZIndex : null;
|
|
7779
7814
|
this.setMarkerZIndex(marker, this.getMaxZIndex(1));
|
|
7780
7815
|
};
|
|
7781
7816
|
|
|
7817
|
+
NaverMintMapController.prototype.restoreMarkerZIndex = function (marker) {
|
|
7818
|
+
if (this.markerOriginalZIndex !== undefined) {
|
|
7819
|
+
if (this.markerOriginalZIndex === null) {
|
|
7820
|
+
// 원래 zIndex가 없었으면 제거 (또는 초기값 0으로)
|
|
7821
|
+
this.setMarkerZIndex(marker, 0);
|
|
7822
|
+
} else {
|
|
7823
|
+
this.setMarkerZIndex(marker, this.markerOriginalZIndex);
|
|
7824
|
+
}
|
|
7825
|
+
|
|
7826
|
+
this.markerOriginalZIndex = undefined;
|
|
7827
|
+
}
|
|
7828
|
+
};
|
|
7829
|
+
|
|
7782
7830
|
NaverMintMapController.prototype.clearDrawable = function (drawable) {
|
|
7783
7831
|
var _a;
|
|
7784
7832
|
|
|
@@ -8533,6 +8581,10 @@ function (_super) {
|
|
|
8533
8581
|
}
|
|
8534
8582
|
};
|
|
8535
8583
|
|
|
8584
|
+
GoogleMintMapController.prototype.restoreMarkerZIndex = function (marker) {// Google Maps에서는 restoreMarkerZIndex 기능을 지원하지 않습니다.
|
|
8585
|
+
// 이 기능은 Naver Maps에서만 사용 가능합니다.
|
|
8586
|
+
};
|
|
8587
|
+
|
|
8536
8588
|
GoogleMintMapController.prototype.clearDrawable = function (drawable) {
|
|
8537
8589
|
if (drawable && drawable.native) {
|
|
8538
8590
|
if (drawable.native instanceof google.maps.Marker || drawable.native instanceof google.maps.Polygon || drawable.native instanceof google.maps.Polyline) {
|
|
@@ -9255,6 +9307,10 @@ function (_super) {
|
|
|
9255
9307
|
}
|
|
9256
9308
|
};
|
|
9257
9309
|
|
|
9310
|
+
KakaoMintMapController.prototype.restoreMarkerZIndex = function (marker) {// Kakao Maps에서는 restoreMarkerZIndex 기능을 지원하지 않습니다.
|
|
9311
|
+
// 이 기능은 Naver Maps에서만 사용 가능합니다.
|
|
9312
|
+
};
|
|
9313
|
+
|
|
9258
9314
|
KakaoMintMapController.prototype.clearDrawable = function (drawable) {
|
|
9259
9315
|
var _this = this;
|
|
9260
9316
|
|
package/dist/index.umd.js
CHANGED
|
@@ -3331,7 +3331,7 @@
|
|
|
3331
3331
|
var onMouseOverHandler = function (e) {
|
|
3332
3332
|
var _a;
|
|
3333
3333
|
|
|
3334
|
-
var marker = markerRef.current;
|
|
3334
|
+
var marker = markerRef.current;
|
|
3335
3335
|
|
|
3336
3336
|
if (marker) {
|
|
3337
3337
|
var mouseOverHandler = (_a = options === null || options === void 0 ? void 0 : options.event) === null || _a === void 0 ? void 0 : _a.get('mouseover');
|
|
@@ -3344,6 +3344,25 @@
|
|
|
3344
3344
|
|
|
3345
3345
|
next && topOnHover && controller.markerToTheTop(marker);
|
|
3346
3346
|
}
|
|
3347
|
+
}; // 20251014 | 장한별 | mouseleave 이벤트 추가, 마우스가 마커 위에서 떠날 때 원래 zindex 를 복구하기 위함
|
|
3348
|
+
|
|
3349
|
+
|
|
3350
|
+
var onMouseLeaveHandler = function (e) {
|
|
3351
|
+
var _a;
|
|
3352
|
+
|
|
3353
|
+
var marker = markerRef.current;
|
|
3354
|
+
|
|
3355
|
+
if (marker) {
|
|
3356
|
+
var mouseOutHandler = (_a = options === null || options === void 0 ? void 0 : options.event) === null || _a === void 0 ? void 0 : _a.get('mouseout');
|
|
3357
|
+
var next = true;
|
|
3358
|
+
|
|
3359
|
+
if (mouseOutHandler) {
|
|
3360
|
+
var hasNext = mouseOutHandler(e);
|
|
3361
|
+
hasNext !== undefined && (next = hasNext);
|
|
3362
|
+
}
|
|
3363
|
+
|
|
3364
|
+
next && topOnHover && controller.restoreMarkerZIndex(marker);
|
|
3365
|
+
}
|
|
3347
3366
|
}; //create object
|
|
3348
3367
|
|
|
3349
3368
|
|
|
@@ -3361,10 +3380,12 @@
|
|
|
3361
3380
|
}); //드래그 여부 초기화를 먼저 수행하기 위해 capture : true 처리
|
|
3362
3381
|
|
|
3363
3382
|
divElement.addEventListener('mouseover', onMouseOverHandler);
|
|
3383
|
+
divElement.addEventListener('mouseleave', onMouseLeaveHandler);
|
|
3364
3384
|
return function () {
|
|
3365
3385
|
divElement.removeEventListener('click', onClickHandler);
|
|
3366
3386
|
divElement.removeEventListener('mousedown', onMousedownHandler);
|
|
3367
3387
|
divElement.removeEventListener('mouseover', onMouseOverHandler);
|
|
3388
|
+
divElement.removeEventListener('mouseleave', onMouseLeaveHandler);
|
|
3368
3389
|
|
|
3369
3390
|
if (markerRef.current) {
|
|
3370
3391
|
controller.clearDrawable(markerRef.current);
|
|
@@ -6375,24 +6396,17 @@
|
|
|
6375
6396
|
var selectedItem = selectedItemRef.current; // topOnHover가 true이면 hover된 항목을 최상단에 렌더링
|
|
6376
6397
|
|
|
6377
6398
|
if (topOnHover && hovered) {
|
|
6378
|
-
// hover된 항목만 최상단에 렌더링 (renderEvent
|
|
6399
|
+
// hover된 항목만 최상단에 렌더링 (renderEvent는 한 번만 호출)
|
|
6379
6400
|
var isHoveredInViewport = enableViewportCulling ? isInViewport(hovered) : true;
|
|
6380
6401
|
|
|
6381
6402
|
if (isHoveredInViewport) {
|
|
6382
|
-
|
|
6383
|
-
|
|
6384
|
-
|
|
6385
|
-
|
|
6386
|
-
|
|
6387
|
-
|
|
6388
|
-
|
|
6389
|
-
ctx.lineWidth = 2;
|
|
6390
|
-
ctx.beginPath();
|
|
6391
|
-
ctx.arc(position.x, position.y, 10, 0, 2 * Math.PI);
|
|
6392
|
-
ctx.fill();
|
|
6393
|
-
ctx.stroke();
|
|
6394
|
-
ctx.restore();
|
|
6395
|
-
}
|
|
6403
|
+
renderEvent({
|
|
6404
|
+
ctx: ctx,
|
|
6405
|
+
hoveredItem: hovered,
|
|
6406
|
+
utils: renderUtils,
|
|
6407
|
+
selectedItems: selectedItems,
|
|
6408
|
+
selectedItem: selectedItem
|
|
6409
|
+
});
|
|
6396
6410
|
}
|
|
6397
6411
|
} else {
|
|
6398
6412
|
// topOnHover가 false이거나 hover된 항목이 없으면 일반 렌더링
|
|
@@ -7769,20 +7783,54 @@
|
|
|
7769
7783
|
}
|
|
7770
7784
|
};
|
|
7771
7785
|
|
|
7772
|
-
NaverMintMapController.prototype.
|
|
7786
|
+
NaverMintMapController.prototype.getCurrentZIndex = function (marker) {
|
|
7773
7787
|
if (this.map && marker.element && marker.element instanceof HTMLElement) {
|
|
7774
7788
|
var parent_1 = marker.element.parentElement;
|
|
7775
7789
|
|
|
7776
|
-
if (parent_1) {
|
|
7777
|
-
|
|
7790
|
+
if (parent_1 && parent_1.style.zIndex) {
|
|
7791
|
+
var zIndex = Number(parent_1.style.zIndex);
|
|
7792
|
+
return isNaN(zIndex) ? undefined : zIndex;
|
|
7793
|
+
}
|
|
7794
|
+
}
|
|
7795
|
+
|
|
7796
|
+
return undefined;
|
|
7797
|
+
};
|
|
7798
|
+
|
|
7799
|
+
NaverMintMapController.prototype.setMarkerZIndex = function (marker, zIndex) {
|
|
7800
|
+
if (this.map && marker.element && marker.element instanceof HTMLElement) {
|
|
7801
|
+
var parent_2 = marker.element.parentElement;
|
|
7802
|
+
|
|
7803
|
+
if (parent_2) {
|
|
7804
|
+
parent_2.style.zIndex = String(zIndex);
|
|
7778
7805
|
}
|
|
7779
7806
|
}
|
|
7780
7807
|
};
|
|
7781
7808
|
|
|
7782
7809
|
NaverMintMapController.prototype.markerToTheTop = function (marker) {
|
|
7810
|
+
// 이미 최상위로 올라간 상태면 (원래 zIndex가 이미 저장됨) 중복 실행 방지
|
|
7811
|
+
if (this.markerOriginalZIndex !== undefined) {
|
|
7812
|
+
return;
|
|
7813
|
+
}
|
|
7814
|
+
|
|
7815
|
+
var currentZIndex = this.getCurrentZIndex(marker); // undefined면 null로 저장 (원래 zIndex가 없었음을 표시)
|
|
7816
|
+
|
|
7817
|
+
this.markerOriginalZIndex = currentZIndex !== undefined ? currentZIndex : null;
|
|
7783
7818
|
this.setMarkerZIndex(marker, this.getMaxZIndex(1));
|
|
7784
7819
|
};
|
|
7785
7820
|
|
|
7821
|
+
NaverMintMapController.prototype.restoreMarkerZIndex = function (marker) {
|
|
7822
|
+
if (this.markerOriginalZIndex !== undefined) {
|
|
7823
|
+
if (this.markerOriginalZIndex === null) {
|
|
7824
|
+
// 원래 zIndex가 없었으면 제거 (또는 초기값 0으로)
|
|
7825
|
+
this.setMarkerZIndex(marker, 0);
|
|
7826
|
+
} else {
|
|
7827
|
+
this.setMarkerZIndex(marker, this.markerOriginalZIndex);
|
|
7828
|
+
}
|
|
7829
|
+
|
|
7830
|
+
this.markerOriginalZIndex = undefined;
|
|
7831
|
+
}
|
|
7832
|
+
};
|
|
7833
|
+
|
|
7786
7834
|
NaverMintMapController.prototype.clearDrawable = function (drawable) {
|
|
7787
7835
|
var _a;
|
|
7788
7836
|
|
|
@@ -8537,6 +8585,10 @@
|
|
|
8537
8585
|
}
|
|
8538
8586
|
};
|
|
8539
8587
|
|
|
8588
|
+
GoogleMintMapController.prototype.restoreMarkerZIndex = function (marker) {// Google Maps에서는 restoreMarkerZIndex 기능을 지원하지 않습니다.
|
|
8589
|
+
// 이 기능은 Naver Maps에서만 사용 가능합니다.
|
|
8590
|
+
};
|
|
8591
|
+
|
|
8540
8592
|
GoogleMintMapController.prototype.clearDrawable = function (drawable) {
|
|
8541
8593
|
if (drawable && drawable.native) {
|
|
8542
8594
|
if (drawable.native instanceof google.maps.Marker || drawable.native instanceof google.maps.Polygon || drawable.native instanceof google.maps.Polyline) {
|
|
@@ -9259,6 +9311,10 @@
|
|
|
9259
9311
|
}
|
|
9260
9312
|
};
|
|
9261
9313
|
|
|
9314
|
+
KakaoMintMapController.prototype.restoreMarkerZIndex = function (marker) {// Kakao Maps에서는 restoreMarkerZIndex 기능을 지원하지 않습니다.
|
|
9315
|
+
// 이 기능은 Naver Maps에서만 사용 가능합니다.
|
|
9316
|
+
};
|
|
9317
|
+
|
|
9262
9318
|
KakaoMintMapController.prototype.clearDrawable = function (drawable) {
|
|
9263
9319
|
var _this = this;
|
|
9264
9320
|
|