@mint-ui/map 1.2.0-test.7 → 1.2.0-test.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.
|
@@ -38,6 +38,7 @@ export interface WoongKonvaMarkerProps<T> extends Pick<MarkerOptions, 'zIndex' |
|
|
|
38
38
|
selectedItems?: KonvaCanvasMarkerData<T>[];
|
|
39
39
|
/** 외부에서 전달된 단일 선택 아이템 (특별한 효과용) */
|
|
40
40
|
selectedItem?: KonvaCanvasMarkerData<T> | null;
|
|
41
|
+
disablePointerEvents?: boolean;
|
|
41
42
|
}
|
|
42
43
|
/**
|
|
43
44
|
* 🔥 React.memo 최적화: 마커 배열과 selectedItems 변경 체크
|
|
@@ -48,5 +49,5 @@ export interface WoongKonvaMarkerProps<T> extends Pick<MarkerOptions, 'zIndex' |
|
|
|
48
49
|
*
|
|
49
50
|
* 주의: JSON.stringify() 사용 금지! (매우 느림)
|
|
50
51
|
*/
|
|
51
|
-
declare const WoongKonvaMarker: <T>({ markers, dataType, onClick, onMouseOver, onMouseOut, renderBase, renderAnimation, renderEvent, enableMultiSelect, topOnHover, enableViewportCulling, cullingMargin, maxCacheSize, selectedItems: externalSelectedItems, selectedItem: externalSelectedItem, ...options }: WoongKonvaMarkerProps<T>) => React.ReactPortal;
|
|
52
|
+
declare const WoongKonvaMarker: <T>({ markers, dataType, onClick, onMouseOver, onMouseOut, renderBase, renderAnimation, renderEvent, enableMultiSelect, topOnHover, enableViewportCulling, cullingMargin, maxCacheSize, selectedItems: externalSelectedItems, selectedItem: externalSelectedItem, disablePointerEvents, ...options }: WoongKonvaMarkerProps<T>) => React.ReactPortal;
|
|
52
53
|
export default WoongKonvaMarker;
|
|
@@ -56,7 +56,9 @@ var WoongKonvaMarkerComponent = function (_a) {
|
|
|
56
56
|
maxCacheSize = _f === void 0 ? performance.DEFAULT_MAX_CACHE_SIZE : _f,
|
|
57
57
|
externalSelectedItems = _a.selectedItems,
|
|
58
58
|
externalSelectedItem = _a.selectedItem,
|
|
59
|
-
|
|
59
|
+
_g = _a.disablePointerEvents,
|
|
60
|
+
disablePointerEvents = _g === void 0 ? false : _g,
|
|
61
|
+
options = tslib.__rest(_a, ["markers", "dataType", "onClick", "onMouseOver", "onMouseOut", "renderBase", "renderAnimation", "renderEvent", "enableMultiSelect", "topOnHover", "enableViewportCulling", "cullingMargin", "maxCacheSize", "selectedItems", "selectedItem", "disablePointerEvents"]); // --------------------------------------------------------------------------
|
|
60
62
|
// Hooks & Context
|
|
61
63
|
// --------------------------------------------------------------------------
|
|
62
64
|
|
|
@@ -420,10 +422,16 @@ var WoongKonvaMarkerComponent = function (_a) {
|
|
|
420
422
|
|
|
421
423
|
|
|
422
424
|
var doRenderEvent = function () {
|
|
423
|
-
if (!onClick && !onMouseOver && !onMouseOut) return;
|
|
424
|
-
if (!renderEvent) return;
|
|
425
425
|
var layer = eventLayerRef.current;
|
|
426
|
-
if (!layer) return;
|
|
426
|
+
if (!layer) return;
|
|
427
|
+
|
|
428
|
+
if (!onClick && !onMouseOver && !onMouseOut) {
|
|
429
|
+
layer.destroyChildren();
|
|
430
|
+
layer.batchDraw();
|
|
431
|
+
return;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
if (!renderEvent) return; // 🔥 Shape 재사용: 이미 존재하면 재사용, 없으면 생성
|
|
427
435
|
|
|
428
436
|
var shape = layer.findOne('.event-render-shape');
|
|
429
437
|
|
|
@@ -915,11 +923,7 @@ var WoongKonvaMarkerComponent = function (_a) {
|
|
|
915
923
|
controller.removeEventListener('ZOOMSTART', handleZoomStart);
|
|
916
924
|
controller.removeEventListener('ZOOM_CHANGED', handleZoomEnd);
|
|
917
925
|
controller.removeEventListener('CENTER_CHANGED', handleCenterChanged);
|
|
918
|
-
|
|
919
|
-
if (onClick) {
|
|
920
|
-
controller.removeEventListener('CLICK', handleClick);
|
|
921
|
-
}
|
|
922
|
-
|
|
926
|
+
controller.removeEventListener('CLICK', handleClick);
|
|
923
927
|
controller.removeEventListener('MOUSEMOVE', handleMouseMove);
|
|
924
928
|
controller.removeEventListener('DRAGSTART', handleDragStart);
|
|
925
929
|
controller.removeEventListener('DRAGEND', handleDragEnd);
|
|
@@ -1035,7 +1039,8 @@ var WoongKonvaMarkerComponent = function (_a) {
|
|
|
1035
1039
|
style: {
|
|
1036
1040
|
position: 'absolute',
|
|
1037
1041
|
width: '100%',
|
|
1038
|
-
height: '100%'
|
|
1042
|
+
height: '100%',
|
|
1043
|
+
pointerEvents: disablePointerEvents ? 'none' : 'auto'
|
|
1039
1044
|
}
|
|
1040
1045
|
}), divElement);
|
|
1041
1046
|
};
|
|
@@ -1071,6 +1076,26 @@ var WoongKonvaMarker = React__default["default"].memo(WoongKonvaMarkerComponent,
|
|
|
1071
1076
|
return false; // 변경됨 → 리렌더링
|
|
1072
1077
|
}
|
|
1073
1078
|
|
|
1079
|
+
if (prevProps.selectedItem !== nextProps.selectedItem) {
|
|
1080
|
+
return false; // 변경됨 → 리렌더링
|
|
1081
|
+
}
|
|
1082
|
+
|
|
1083
|
+
if (prevProps.onClick !== nextProps.onClick) {
|
|
1084
|
+
return false; // 변경됨 → 리렌더링
|
|
1085
|
+
}
|
|
1086
|
+
|
|
1087
|
+
if (prevProps.onMouseOver !== nextProps.onMouseOver) {
|
|
1088
|
+
return false; // 변경됨 → 리렌더링
|
|
1089
|
+
}
|
|
1090
|
+
|
|
1091
|
+
if (prevProps.onMouseOut !== nextProps.onMouseOut) {
|
|
1092
|
+
return false; // 변경됨 → 리렌더링
|
|
1093
|
+
}
|
|
1094
|
+
|
|
1095
|
+
if (prevProps.disablePointerEvents !== nextProps.disablePointerEvents) {
|
|
1096
|
+
return false; // 변경됨 → 리렌더링
|
|
1097
|
+
}
|
|
1098
|
+
|
|
1074
1099
|
return true; // 같음 → 리렌더링 스킵
|
|
1075
1100
|
});
|
|
1076
1101
|
|
package/dist/index.es.js
CHANGED
|
@@ -5406,7 +5406,9 @@ var WoongKonvaMarkerComponent = function (_a) {
|
|
|
5406
5406
|
maxCacheSize = _f === void 0 ? DEFAULT_MAX_CACHE_SIZE : _f,
|
|
5407
5407
|
externalSelectedItems = _a.selectedItems,
|
|
5408
5408
|
externalSelectedItem = _a.selectedItem,
|
|
5409
|
-
|
|
5409
|
+
_g = _a.disablePointerEvents,
|
|
5410
|
+
disablePointerEvents = _g === void 0 ? false : _g,
|
|
5411
|
+
options = __rest(_a, ["markers", "dataType", "onClick", "onMouseOver", "onMouseOut", "renderBase", "renderAnimation", "renderEvent", "enableMultiSelect", "topOnHover", "enableViewportCulling", "cullingMargin", "maxCacheSize", "selectedItems", "selectedItem", "disablePointerEvents"]); // --------------------------------------------------------------------------
|
|
5410
5412
|
// Hooks & Context
|
|
5411
5413
|
// --------------------------------------------------------------------------
|
|
5412
5414
|
|
|
@@ -5770,10 +5772,16 @@ var WoongKonvaMarkerComponent = function (_a) {
|
|
|
5770
5772
|
|
|
5771
5773
|
|
|
5772
5774
|
var doRenderEvent = function () {
|
|
5773
|
-
if (!onClick && !onMouseOver && !onMouseOut) return;
|
|
5774
|
-
if (!renderEvent) return;
|
|
5775
5775
|
var layer = eventLayerRef.current;
|
|
5776
|
-
if (!layer) return;
|
|
5776
|
+
if (!layer) return;
|
|
5777
|
+
|
|
5778
|
+
if (!onClick && !onMouseOver && !onMouseOut) {
|
|
5779
|
+
layer.destroyChildren();
|
|
5780
|
+
layer.batchDraw();
|
|
5781
|
+
return;
|
|
5782
|
+
}
|
|
5783
|
+
|
|
5784
|
+
if (!renderEvent) return; // 🔥 Shape 재사용: 이미 존재하면 재사용, 없으면 생성
|
|
5777
5785
|
|
|
5778
5786
|
var shape = layer.findOne('.event-render-shape');
|
|
5779
5787
|
|
|
@@ -6265,11 +6273,7 @@ var WoongKonvaMarkerComponent = function (_a) {
|
|
|
6265
6273
|
controller.removeEventListener('ZOOMSTART', handleZoomStart);
|
|
6266
6274
|
controller.removeEventListener('ZOOM_CHANGED', handleZoomEnd);
|
|
6267
6275
|
controller.removeEventListener('CENTER_CHANGED', handleCenterChanged);
|
|
6268
|
-
|
|
6269
|
-
if (onClick) {
|
|
6270
|
-
controller.removeEventListener('CLICK', handleClick);
|
|
6271
|
-
}
|
|
6272
|
-
|
|
6276
|
+
controller.removeEventListener('CLICK', handleClick);
|
|
6273
6277
|
controller.removeEventListener('MOUSEMOVE', handleMouseMove);
|
|
6274
6278
|
controller.removeEventListener('DRAGSTART', handleDragStart);
|
|
6275
6279
|
controller.removeEventListener('DRAGEND', handleDragEnd);
|
|
@@ -6385,7 +6389,8 @@ var WoongKonvaMarkerComponent = function (_a) {
|
|
|
6385
6389
|
style: {
|
|
6386
6390
|
position: 'absolute',
|
|
6387
6391
|
width: '100%',
|
|
6388
|
-
height: '100%'
|
|
6392
|
+
height: '100%',
|
|
6393
|
+
pointerEvents: disablePointerEvents ? 'none' : 'auto'
|
|
6389
6394
|
}
|
|
6390
6395
|
}), divElement);
|
|
6391
6396
|
};
|
|
@@ -6421,6 +6426,26 @@ var WoongKonvaMarker = React.memo(WoongKonvaMarkerComponent, function (prevProps
|
|
|
6421
6426
|
return false; // 변경됨 → 리렌더링
|
|
6422
6427
|
}
|
|
6423
6428
|
|
|
6429
|
+
if (prevProps.selectedItem !== nextProps.selectedItem) {
|
|
6430
|
+
return false; // 변경됨 → 리렌더링
|
|
6431
|
+
}
|
|
6432
|
+
|
|
6433
|
+
if (prevProps.onClick !== nextProps.onClick) {
|
|
6434
|
+
return false; // 변경됨 → 리렌더링
|
|
6435
|
+
}
|
|
6436
|
+
|
|
6437
|
+
if (prevProps.onMouseOver !== nextProps.onMouseOver) {
|
|
6438
|
+
return false; // 변경됨 → 리렌더링
|
|
6439
|
+
}
|
|
6440
|
+
|
|
6441
|
+
if (prevProps.onMouseOut !== nextProps.onMouseOut) {
|
|
6442
|
+
return false; // 변경됨 → 리렌더링
|
|
6443
|
+
}
|
|
6444
|
+
|
|
6445
|
+
if (prevProps.disablePointerEvents !== nextProps.disablePointerEvents) {
|
|
6446
|
+
return false; // 변경됨 → 리렌더링
|
|
6447
|
+
}
|
|
6448
|
+
|
|
6424
6449
|
return true; // 같음 → 리렌더링 스킵
|
|
6425
6450
|
});
|
|
6426
6451
|
|
package/dist/index.umd.js
CHANGED
|
@@ -5410,7 +5410,9 @@
|
|
|
5410
5410
|
maxCacheSize = _f === void 0 ? DEFAULT_MAX_CACHE_SIZE : _f,
|
|
5411
5411
|
externalSelectedItems = _a.selectedItems,
|
|
5412
5412
|
externalSelectedItem = _a.selectedItem,
|
|
5413
|
-
|
|
5413
|
+
_g = _a.disablePointerEvents,
|
|
5414
|
+
disablePointerEvents = _g === void 0 ? false : _g,
|
|
5415
|
+
options = tslib.__rest(_a, ["markers", "dataType", "onClick", "onMouseOver", "onMouseOut", "renderBase", "renderAnimation", "renderEvent", "enableMultiSelect", "topOnHover", "enableViewportCulling", "cullingMargin", "maxCacheSize", "selectedItems", "selectedItem", "disablePointerEvents"]); // --------------------------------------------------------------------------
|
|
5414
5416
|
// Hooks & Context
|
|
5415
5417
|
// --------------------------------------------------------------------------
|
|
5416
5418
|
|
|
@@ -5774,10 +5776,16 @@
|
|
|
5774
5776
|
|
|
5775
5777
|
|
|
5776
5778
|
var doRenderEvent = function () {
|
|
5777
|
-
if (!onClick && !onMouseOver && !onMouseOut) return;
|
|
5778
|
-
if (!renderEvent) return;
|
|
5779
5779
|
var layer = eventLayerRef.current;
|
|
5780
|
-
if (!layer) return;
|
|
5780
|
+
if (!layer) return;
|
|
5781
|
+
|
|
5782
|
+
if (!onClick && !onMouseOver && !onMouseOut) {
|
|
5783
|
+
layer.destroyChildren();
|
|
5784
|
+
layer.batchDraw();
|
|
5785
|
+
return;
|
|
5786
|
+
}
|
|
5787
|
+
|
|
5788
|
+
if (!renderEvent) return; // 🔥 Shape 재사용: 이미 존재하면 재사용, 없으면 생성
|
|
5781
5789
|
|
|
5782
5790
|
var shape = layer.findOne('.event-render-shape');
|
|
5783
5791
|
|
|
@@ -6269,11 +6277,7 @@
|
|
|
6269
6277
|
controller.removeEventListener('ZOOMSTART', handleZoomStart);
|
|
6270
6278
|
controller.removeEventListener('ZOOM_CHANGED', handleZoomEnd);
|
|
6271
6279
|
controller.removeEventListener('CENTER_CHANGED', handleCenterChanged);
|
|
6272
|
-
|
|
6273
|
-
if (onClick) {
|
|
6274
|
-
controller.removeEventListener('CLICK', handleClick);
|
|
6275
|
-
}
|
|
6276
|
-
|
|
6280
|
+
controller.removeEventListener('CLICK', handleClick);
|
|
6277
6281
|
controller.removeEventListener('MOUSEMOVE', handleMouseMove);
|
|
6278
6282
|
controller.removeEventListener('DRAGSTART', handleDragStart);
|
|
6279
6283
|
controller.removeEventListener('DRAGEND', handleDragEnd);
|
|
@@ -6389,7 +6393,8 @@
|
|
|
6389
6393
|
style: {
|
|
6390
6394
|
position: 'absolute',
|
|
6391
6395
|
width: '100%',
|
|
6392
|
-
height: '100%'
|
|
6396
|
+
height: '100%',
|
|
6397
|
+
pointerEvents: disablePointerEvents ? 'none' : 'auto'
|
|
6393
6398
|
}
|
|
6394
6399
|
}), divElement);
|
|
6395
6400
|
};
|
|
@@ -6425,6 +6430,26 @@
|
|
|
6425
6430
|
return false; // 변경됨 → 리렌더링
|
|
6426
6431
|
}
|
|
6427
6432
|
|
|
6433
|
+
if (prevProps.selectedItem !== nextProps.selectedItem) {
|
|
6434
|
+
return false; // 변경됨 → 리렌더링
|
|
6435
|
+
}
|
|
6436
|
+
|
|
6437
|
+
if (prevProps.onClick !== nextProps.onClick) {
|
|
6438
|
+
return false; // 변경됨 → 리렌더링
|
|
6439
|
+
}
|
|
6440
|
+
|
|
6441
|
+
if (prevProps.onMouseOver !== nextProps.onMouseOver) {
|
|
6442
|
+
return false; // 변경됨 → 리렌더링
|
|
6443
|
+
}
|
|
6444
|
+
|
|
6445
|
+
if (prevProps.onMouseOut !== nextProps.onMouseOut) {
|
|
6446
|
+
return false; // 변경됨 → 리렌더링
|
|
6447
|
+
}
|
|
6448
|
+
|
|
6449
|
+
if (prevProps.disablePointerEvents !== nextProps.disablePointerEvents) {
|
|
6450
|
+
return false; // 변경됨 → 리렌더링
|
|
6451
|
+
}
|
|
6452
|
+
|
|
6428
6453
|
return true; // 같음 → 리렌더링 스킵
|
|
6429
6454
|
});
|
|
6430
6455
|
|