@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
- options = tslib.__rest(_a, ["markers", "dataType", "onClick", "onMouseOver", "onMouseOut", "renderBase", "renderAnimation", "renderEvent", "enableMultiSelect", "topOnHover", "enableViewportCulling", "cullingMargin", "maxCacheSize", "selectedItems", "selectedItem"]); // --------------------------------------------------------------------------
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; // 🔥 Shape 재사용: 이미 존재하면 재사용, 없으면 생성
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
- options = __rest(_a, ["markers", "dataType", "onClick", "onMouseOver", "onMouseOut", "renderBase", "renderAnimation", "renderEvent", "enableMultiSelect", "topOnHover", "enableViewportCulling", "cullingMargin", "maxCacheSize", "selectedItems", "selectedItem"]); // --------------------------------------------------------------------------
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; // 🔥 Shape 재사용: 이미 존재하면 재사용, 없으면 생성
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
- options = tslib.__rest(_a, ["markers", "dataType", "onClick", "onMouseOver", "onMouseOut", "renderBase", "renderAnimation", "renderEvent", "enableMultiSelect", "topOnHover", "enableViewportCulling", "cullingMargin", "maxCacheSize", "selectedItems", "selectedItem"]); // --------------------------------------------------------------------------
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; // 🔥 Shape 재사용: 이미 존재하면 재사용, 없으면 생성
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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mint-ui/map",
3
- "version": "1.2.0-test.7",
3
+ "version": "1.2.0-test.9",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.es.js",
6
6
  "browser": "./dist/index.umd.js",