@mint-ui/map 1.2.0-test.49 → 1.2.0-test.50

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.md CHANGED
@@ -90,7 +90,6 @@ The project uses Storybook for component development and documentation:
90
90
 
91
91
  Canvas markers are a key feature for high-performance rendering:
92
92
  - `CanvasMarker.tsx` - Main canvas marker component
93
- - `CanvasMarkerHanquf.tsx` - Specialized canvas marker variant
94
93
  - Renderer function pattern for custom drawing logic
95
94
  - Supports geohash-based clustering
96
95
 
@@ -100,7 +100,7 @@ function MintMapCore(_a) {
100
100
  }, [center]);
101
101
  return React__default["default"].createElement("div", {
102
102
  className: cn('mint-map-root')
103
- }, mapInitialized && React__default["default"].createElement(context.WoongCanvasProvider, null, children), React__default["default"].createElement("div", {
103
+ }, mapInitialized && React__default["default"].createElement(context.CanvasProvider, null, children), React__default["default"].createElement("div", {
104
104
  className: cn('mint-map-container'),
105
105
  style: {
106
106
  visibility: visible ? 'inherit' : 'hidden'
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import { MarkerOptions } from "../../../types";
3
3
  import { CanvasData, CustomRenderBase, CustomRenderEvent } from "../shared";
4
- export { WoongCanvasProvider, LRUCache, SpatialHashGrid, CanvasDataType } from "../shared";
4
+ export { CanvasProvider, LRUCache, SpatialHashGrid, CanvasDataType } from "../shared";
5
5
  export type { CanvasOption, CanvasData, CustomRenderBase, CustomRenderEvent, RenderUtils, RenderBaseParams, RenderEventParams } from "../shared";
6
6
  /**
7
7
  * CanvasMarkerLayer Props
@@ -47,7 +47,7 @@ var CanvasMarkerLayer = function (props) {
47
47
  options = tslib.__rest(props, ["data", "onClick", "onMouseOver", "onMouseOut", "enableMultiSelect", "topOnHover", "enableViewportCulling", "cullingMargin", "maxCacheSize", "selectedItems", "selectedItem", "disableInteraction", "renderBase", "renderEvent"]);
48
48
 
49
49
  var controller = MintMapProvider.useMintMapController();
50
- var context$1 = context.useWoongCanvasContext();
50
+ var context$1 = context.useCanvasContext();
51
51
  var currentZIndex = options.zIndex !== undefined ? options.zIndex : 0; // DOM Refs
52
52
 
53
53
  var divRef = React.useRef(document.createElement('div'));
@@ -628,7 +628,7 @@ Object.defineProperty(exports, 'CanvasDataType', {
628
628
  enumerable: true,
629
629
  get: function () { return types.CanvasDataType; }
630
630
  });
631
- exports.WoongCanvasProvider = context.WoongCanvasProvider;
631
+ exports.CanvasProvider = context.CanvasProvider;
632
632
  exports.LRUCache = performance.LRUCache;
633
633
  exports.SpatialHashGrid = performance.SpatialHashGrid;
634
634
  exports["default"] = CanvasMarkerLayer;
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import { MarkerOptions } from "../../../types";
3
3
  import { CanvasData } from "../shared";
4
- export { WoongCanvasProvider, LRUCache, SpatialHashGrid } from "../shared";
4
+ export { CanvasProvider, LRUCache, SpatialHashGrid } from "../shared";
5
5
  export type { CanvasOption, CanvasData, RenderUtils } from "../shared";
6
6
  /**
7
7
  * 폴리곤 스타일 정의
@@ -50,7 +50,7 @@ var CanvasPolygonLayer = function (props) {
50
50
  // --------------------------------------------------------------------------
51
51
 
52
52
  var controller = MintMapProvider.useMintMapController();
53
- var context$1 = context.useWoongCanvasContext();
53
+ var context$1 = context.useCanvasContext();
54
54
  var currentZIndex = options.zIndex !== undefined ? options.zIndex : 0; // DOM Refs
55
55
 
56
56
  var divRef = React.useRef(document.createElement('div'));
@@ -587,7 +587,7 @@ var CanvasPolygonLayer = function (props) {
587
587
  }), divElement);
588
588
  };
589
589
 
590
- exports.WoongCanvasProvider = context.WoongCanvasProvider;
590
+ exports.CanvasProvider = context.CanvasProvider;
591
591
  exports.LRUCache = performance.LRUCache;
592
592
  exports.SpatialHashGrid = performance.SpatialHashGrid;
593
593
  exports["default"] = CanvasPolygonLayer;
@@ -453,10 +453,14 @@ var renderPolygonEventWithFunction = function (renderStyle) {
453
453
  // hover된 항목이 선택되어 있는지 확인
454
454
 
455
455
  var isSelected = selectedIdsSet.has(hoveredItem.id);
456
+ var isActive = isSelected && hoveredItem.id === selectedItemId; // 개별 props 방식과 동일한 로직: 선택된 항목이 hover되면 active 스타일을 사용
457
+ // 따라서 선택된 항목이 hover될 때는 isHovered를 false로 설정하여
458
+ // renderStyle 함수에서 isActive를 우선적으로 체크할 수 있도록 함
459
+
456
460
  var context = {
457
461
  isSelected: isSelected,
458
- isHovered: true,
459
- isActive: isSelected && hoveredItem.id === selectedItemId
462
+ isHovered: !isSelected,
463
+ isActive: isActive
460
464
  };
461
465
  var style = renderStyle(hoveredItem, context);
462
466
  drawPolygon({
@@ -1,5 +1,12 @@
1
1
  import React from "react";
2
2
  import { MarkerOptions, Offset, Position } from "../../../types";
3
+ /**
4
+ * 2026-01-06 장한별
5
+ * 고주영팀장님이 만든 캔버스 마커
6
+ * 클릭, hover 등의 이벤트가 구현되어있지 않는 버전
7
+ * RA 지도 제품에서 CanvasMarker 컴포넌트를 사용하고 있음
8
+ *
9
+ */
3
10
  export interface CanvasMarkerRendererParams<T> {
4
11
  context: CanvasRenderingContext2D;
5
12
  offset: Offset[];
@@ -107,12 +107,12 @@ var CanvasMarkerClaude = React__default["default"].memo(function CanvasMarkerCla
107
107
  var hoveredPolygonRef = React.useRef(null);
108
108
  var clickedPolygonRef = React.useRef(null);
109
109
  var hoveredMarkerRef = React.useRef(null);
110
- var clickedMarkerRef = React.useRef(null); // 🚀 WoongCanvasMarker 방식: 단순한 data ref (geohash 제거)
110
+ var clickedMarkerRef = React.useRef(null); // 🚀 CanvasMarker 방식: 단순한 data ref (geohash 제거)
111
111
 
112
112
  var polygonsRef = React.useRef([]);
113
113
  var markersRef = React.useRef([]); // 마커 경계 정보 저장 (hit-test용)
114
114
 
115
- var markerBoundsRef = React.useRef(new Map()); // 🚀 드래그 추적용 (WoongCanvasMarker 방식)
115
+ var markerBoundsRef = React.useRef(new Map()); // 🚀 드래그 추적용 (CanvasMarker 방식)
116
116
 
117
117
  var draggingRef = React.useRef(false);
118
118
  var prevCenterOffsetRef = React.useRef(null);
@@ -172,7 +172,7 @@ var CanvasMarkerClaude = React__default["default"].memo(function CanvasMarkerCla
172
172
  if (!baseContextRef.current || !polygonsRef.current || polygonsRef.current.length === 0) return;
173
173
  canvasUtil.clearRect(baseCanvasRef.current, baseContextRef.current);
174
174
  var cacheMissCount = 0; // 캐시 미스 카운트
175
- // 🚀 WoongCanvasMarker 방식: 전체 데이터 순회 (필터링 제거)
175
+ // 🚀 CanvasMarker 방식: 전체 데이터 순회 (필터링 제거)
176
176
 
177
177
  polygonsRef.current.forEach(function (polygon) {
178
178
  if (polygon.visible === false) return; // 🚀 캐시 확인 (ID 기반으로 변경)
@@ -243,7 +243,7 @@ var CanvasMarkerClaude = React__default["default"].memo(function CanvasMarkerCla
243
243
  if (!markersRef.current || markersRef.current.length === 0) return;
244
244
  canvasUtil.clearRect(baseMarkerCanvasRef.current, baseMarkerContextRef.current); // 마커 경계 정보 초기화
245
245
 
246
- markerBoundsRef.current.clear(); // 🚀 WoongCanvasMarker 방식: 전체 데이터 순회 (필터링 제거)
246
+ markerBoundsRef.current.clear(); // 🚀 CanvasMarker 방식: 전체 데이터 순회 (필터링 제거)
247
247
 
248
248
  markersRef.current.forEach(function (marker) {
249
249
  var _a, _b;
@@ -566,7 +566,7 @@ var CanvasMarkerClaude = React__default["default"].memo(function CanvasMarkerCla
566
566
  }
567
567
 
568
568
  return null;
569
- }; // IDLE 이벤트 핸들러 (WoongCanvasMarker 최적화 적용)
569
+ }; // IDLE 이벤트 핸들러 (CanvasMarker 최적화 적용)
570
570
 
571
571
 
572
572
  var handleIdle = function () {
@@ -632,7 +632,7 @@ var CanvasMarkerClaude = React__default["default"].memo(function CanvasMarkerCla
632
632
  x: event.clientX - rect.left,
633
633
  y: event.clientY - rect.top
634
634
  };
635
- }; // 🚀 지도 클릭 이벤트 핸들러 (WoongCanvasMarker 방식 - controller.addEventListener)
635
+ }; // 🚀 지도 클릭 이벤트 핸들러 (CanvasMarker 방식 - controller.addEventListener)
636
636
 
637
637
 
638
638
  var handleMapClick = function (event) {
@@ -724,7 +724,7 @@ var CanvasMarkerClaude = React__default["default"].memo(function CanvasMarkerCla
724
724
  var rafIdRef = React.useRef(); // 마우스 이벤트 핸들러 (requestAnimationFrame으로 최적화)
725
725
 
726
726
  var handleMouseMove = function (e) {
727
- // 🚀 드래그 중이면 호버 처리 스킵 (WoongCanvasMarker 방식)
727
+ // 🚀 드래그 중이면 호버 처리 스킵 (CanvasMarker 방식)
728
728
  if (draggingRef.current) return; // 이미 RAF가 대기 중이면 스킵
729
729
 
730
730
  if (rafIdRef.current) return;
@@ -1,3 +1,2 @@
1
1
  export * from './CanvasMarker';
2
- export * from './CanvasMarkerHanquf';
3
2
  export * from './CanvasMarkerClaude';
@@ -2,7 +2,7 @@ import React from "react";
2
2
  import { Offset } from "../../../types";
3
3
  import { CanvasData } from "./types";
4
4
  /**
5
- * WoongCanvas 컴포넌트 인스턴스 인터페이스
5
+ * Canvas 컴포넌트 인스턴스 인터페이스
6
6
  *
7
7
  * @template T 마커/폴리곤 데이터의 추가 속성 타입
8
8
  */
@@ -18,22 +18,22 @@ export interface ComponentInstance<T> {
18
18
  getSelectedIds: () => Set<string>;
19
19
  isInteractionDisabled: () => boolean;
20
20
  }
21
- interface WoongCanvasContextValue {
21
+ interface CanvasContextValue {
22
22
  registerComponent: <T>(instance: ComponentInstance<T>) => void;
23
23
  unregisterComponent: <T>(instance: ComponentInstance<T>) => void;
24
24
  }
25
25
  /**
26
- * WoongCanvasProvider 컴포넌트
26
+ * CanvasProvider 컴포넌트
27
27
  *
28
- * 다중 WoongCanvas 인스턴스를 관리하고 zIndex 기반 이벤트 우선순위를 처리합니다.
28
+ * 다중 Canvas 인스턴스를 관리하고 zIndex 기반 이벤트 우선순위를 처리합니다.
29
29
  */
30
- export declare const WoongCanvasProvider: React.FC<{
30
+ export declare const CanvasProvider: React.FC<{
31
31
  children: React.ReactNode;
32
32
  }>;
33
33
  /**
34
- * WoongCanvas Context Hook
34
+ * Canvas Context Hook
35
35
  *
36
- * @returns WoongCanvasContextValue 또는 null (Provider 없으면)
36
+ * @returns CanvasContextValue 또는 null (Provider 없으면)
37
37
  */
38
- export declare const useWoongCanvasContext: () => WoongCanvasContextValue | null;
38
+ export declare const useCanvasContext: () => CanvasContextValue | null;
39
39
  export {};
@@ -9,14 +9,14 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
9
9
 
10
10
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
11
11
 
12
- var WoongCanvasContext = React.createContext(null);
12
+ var CanvasContext = React.createContext(null);
13
13
  /**
14
- * WoongCanvasProvider 컴포넌트
14
+ * CanvasProvider 컴포넌트
15
15
  *
16
- * 다중 WoongCanvas 인스턴스를 관리하고 zIndex 기반 이벤트 우선순위를 처리합니다.
16
+ * 다중 Canvas 인스턴스를 관리하고 zIndex 기반 이벤트 우선순위를 처리합니다.
17
17
  */
18
18
 
19
- var WoongCanvasProvider = function (_a) {
19
+ var CanvasProvider = function (_a) {
20
20
  var children = _a.children;
21
21
  var controller = MintMapProvider.useMintMapController();
22
22
  var componentsRef = React.useRef([]);
@@ -129,19 +129,19 @@ var WoongCanvasProvider = function (_a) {
129
129
  unregisterComponent: unregisterComponent
130
130
  };
131
131
  }, [registerComponent, unregisterComponent]);
132
- return React__default["default"].createElement(WoongCanvasContext.Provider, {
132
+ return React__default["default"].createElement(CanvasContext.Provider, {
133
133
  value: contextValue
134
134
  }, children);
135
135
  };
136
136
  /**
137
- * WoongCanvas Context Hook
137
+ * Canvas Context Hook
138
138
  *
139
- * @returns WoongCanvasContextValue 또는 null (Provider 없으면)
139
+ * @returns CanvasContextValue 또는 null (Provider 없으면)
140
140
  */
141
141
 
142
- var useWoongCanvasContext = function () {
143
- return React.useContext(WoongCanvasContext);
142
+ var useCanvasContext = function () {
143
+ return React.useContext(CanvasContext);
144
144
  };
145
145
 
146
- exports.WoongCanvasProvider = WoongCanvasProvider;
147
- exports.useWoongCanvasContext = useWoongCanvasContext;
146
+ exports.CanvasProvider = CanvasProvider;
147
+ exports.useCanvasContext = useCanvasContext;
@@ -5,7 +5,7 @@ import type { Offset } from "../../../types";
5
5
  * 이벤트 유효성 검증 및 좌표 변환
6
6
  *
7
7
  * @param event 이벤트 파라미터
8
- * @param context CanvasContext 인스턴스 (WoongCanvasContext)
8
+ * @param context CanvasContext 인스턴스
9
9
  * @param controller MintMapController 인스턴스
10
10
  * @returns 유효한 화면 좌표 또는 null
11
11
  */
@@ -6,7 +6,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
6
6
  * 이벤트 유효성 검증 및 좌표 변환
7
7
  *
8
8
  * @param event 이벤트 파라미터
9
- * @param context CanvasContext 인스턴스 (WoongCanvasContext)
9
+ * @param context CanvasContext 인스턴스
10
10
  * @param controller MintMapController 인스턴스
11
11
  * @returns 유효한 화면 좌표 또는 null
12
12
  */