@mint-ui/map 1.2.0-test.35 → 1.2.0-test.36

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.
Files changed (22) hide show
  1. package/dist/components/mint-map/core/advanced/shared/context.d.ts +9 -71
  2. package/dist/components/mint-map/core/advanced/shared/context.js +43 -137
  3. package/dist/components/mint-map/core/advanced/shared/helpers.d.ts +5 -13
  4. package/dist/components/mint-map/core/advanced/shared/helpers.js +8 -20
  5. package/dist/components/mint-map/core/advanced/shared/hooks.d.ts +6 -76
  6. package/dist/components/mint-map/core/advanced/shared/hooks.js +18 -112
  7. package/dist/components/mint-map/core/advanced/shared/performance.d.ts +9 -188
  8. package/dist/components/mint-map/core/advanced/shared/performance.js +53 -229
  9. package/dist/components/mint-map/core/advanced/shared/types.d.ts +18 -153
  10. package/dist/components/mint-map/core/advanced/shared/types.js +0 -1
  11. package/dist/components/mint-map/core/advanced/shared/utils.d.ts +21 -126
  12. package/dist/components/mint-map/core/advanced/shared/utils.js +43 -151
  13. package/dist/components/mint-map/core/advanced/shared/viewport.d.ts +4 -34
  14. package/dist/components/mint-map/core/advanced/shared/viewport.js +4 -34
  15. package/dist/components/mint-map/core/advanced/woongCanvasMarker/WoongCanvasMarker.d.ts +22 -74
  16. package/dist/components/mint-map/core/advanced/woongCanvasMarker/WoongCanvasMarker.js +122 -516
  17. package/dist/components/mint-map/core/advanced/woongCanvasPolygon/WoongCanvasPolygon.d.ts +26 -76
  18. package/dist/components/mint-map/core/advanced/woongCanvasPolygon/WoongCanvasPolygon.js +118 -432
  19. package/dist/components/mint-map/core/advanced/woongCanvasPolygon/renderer.d.ts +3 -3
  20. package/dist/index.es.js +409 -1632
  21. package/dist/index.umd.js +409 -1632
  22. package/package.json +1 -1
@@ -1,97 +1,45 @@
1
1
  import React from "react";
2
2
  import { MarkerOptions } from "../../../types";
3
- import { KonvaCanvasData, CustomRenderBase, CustomRenderAnimation, CustomRenderEvent } from "../shared";
3
+ import { CanvasData, CustomRenderBase, CustomRenderEvent } from "../shared";
4
4
  export { WoongCanvasProvider, LRUCache, SpatialHashGrid, CanvasDataType } from "../shared";
5
- export type { KonvaCanvasOption, KonvaCanvasData, CustomRenderBase, CustomRenderAnimation, CustomRenderEvent, RenderUtils, RenderBaseParams, RenderAnimationParams, RenderEventParams } from "../shared";
5
+ export type { CanvasOption, CanvasData, CustomRenderBase, CustomRenderEvent, RenderUtils, RenderBaseParams, RenderEventParams } from "../shared";
6
6
  /**
7
- * WoongCanvasMarker Props - 마커 전용
7
+ * WoongCanvasMarker Props
8
+ *
9
+ * @template T 마커 데이터의 추가 속성 타입
8
10
  */
9
11
  export interface WoongCanvasMarkerProps<T> extends Pick<MarkerOptions, 'zIndex' | 'anchor' | 'visible'> {
10
12
  /** 렌더링할 마커 데이터 배열 */
11
- data: KonvaCanvasData<T>[];
12
- /** 마커 클릭 시 호출되는 콜백 (선택) */
13
- onClick?: (payload: KonvaCanvasData<T>, selectedIds: Set<string>) => void;
14
- /** 마커에 마우스 오버 시 호출되는 콜백 (선택) */
15
- onMouseOver?: (payload: KonvaCanvasData<T>) => void;
16
- /** 마커에서 마우스 아웃 시 호출되는 콜백 (선택) */
17
- onMouseOut?: (payload: KonvaCanvasData<T>) => void;
18
- /** 다중 선택 활성화 여부 (기본: false) */
13
+ data: CanvasData<T>[];
14
+ /** 마커 클릭 시 호출되는 콜백 함수 */
15
+ onClick?: (payload: CanvasData<T>, selectedIds: Set<string>) => void;
16
+ /** 마커에 마우스 오버 시 호출되는 콜백 함수 */
17
+ onMouseOver?: (payload: CanvasData<T>) => void;
18
+ /** 마커에서 마우스 아웃 시 호출되는 콜백 함수 */
19
+ onMouseOut?: (payload: CanvasData<T>) => void;
20
+ /** 다중 선택 활성화 여부 (기본값: false) */
19
21
  enableMultiSelect?: boolean;
20
- /** hover 시 마커를 최상단으로 표시 (기본: false) */
22
+ /** hover 시 마커를 최상단으로 표시할지 여부 (기본값: false) */
21
23
  topOnHover?: boolean;
22
- /** 뷰포트 컬링 활성화 여부 (기본: true) */
23
- enableViewportCulling?: boolean;
24
- /** 뷰포트 컬링 여유 공간 (기본: 100px) */
24
+ /** 뷰포트 컬링 여유 공간 (픽셀 단위, 기본값: 100) */
25
25
  cullingMargin?: number;
26
- /** LRU 캐시 최대 크기 (기본: 10000) */
26
+ /** LRU 캐시 최대 크기 (기본값: 10000) */
27
27
  maxCacheSize?: number;
28
- /** 외부에서 제어하는 선택된 항목 배열 (선택) */
29
- selectedItems?: KonvaCanvasData<T>[];
30
- /** 외부에서 전달된 단일 선택 아이템 (특별한 효과용) */
31
- selectedItem?: KonvaCanvasData<T> | null;
32
- /** 상호작용 비활성화 (hover, click 등 모든 이벤트 차단) */
28
+ /** 외부에서 제어하는 선택된 항목 배열 */
29
+ selectedItems?: CanvasData<T>[];
30
+ /** 외부에서 전달된 단일 선택 아이템 */
31
+ selectedItem?: CanvasData<T> | null;
32
+ /** 상호작용 비활성화 여부 (기본값: false) */
33
33
  disableInteraction?: boolean;
34
34
  /** Base Layer 렌더링 함수 (필수) */
35
35
  renderBase: CustomRenderBase<T>;
36
- /** Animation Layer 렌더링 함수 (선택, 애니메이션용) */
37
- renderAnimation?: CustomRenderAnimation<T>;
38
36
  /** Event Layer 렌더링 함수 (선택) */
39
37
  renderEvent?: CustomRenderEvent<T>;
40
38
  }
41
39
  declare const WoongCanvasMarker: <T>(props: WoongCanvasMarkerProps<T>) => React.ReactPortal;
42
40
  /**
43
- * 🚀 WoongCanvasMarker - Konva 기반 초고성능 마커 렌더링 컴포넌트
44
- *
45
- * ## 📌 주요 특징
46
- * - **30,000개 이상의 마커를 60fps로 렌더링**
47
- * - **Multi-Layer 아키텍처**: Base/Animation/Event 레이어 분리
48
- * - **Spatial Hash Grid**: O(1) 수준의 빠른 Hit Test
49
- * - **LRU 캐시**: 좌표 변환 결과 캐싱으로 성능 최적화
50
- * - **Viewport Culling**: 화면에 보이는 영역만 렌더링
51
- * - **커스텀 렌더링**: renderBase, renderAnimation, renderEvent로 완전한 커스터마이징 가능
52
- *
53
- * ## 🎯 사용 방법
54
- *
55
- * ```tsx
56
- * <WoongCanvasMarker
57
- * data={markers}
58
- * renderBase={renderMarkerBase} // required
59
- * renderAnimation={renderMarkerAnimation} // optional
60
- * renderEvent={renderMarkerEvent} // optional
61
- * topOnHover={true}
62
- * onClick={handleClick}
63
- * />
64
- * ```
65
- *
66
- * ## 📊 데이터 형식
67
- * ```typescript
68
- * const data: KonvaCanvasData<T>[] = [
69
- * {
70
- * id: 'unique-id',
71
- * position: new Position(lat, lng),
72
- * // MARKER: boxWidth/boxHeight 권장 (Hit Test 정확도)
73
- * boxWidth: 60,
74
- * boxHeight: 75,
75
- * tailHeight: 9, // optional (Viewport Culling용)
76
- * // 커스텀 데이터
77
- * ...customData
78
- * }
79
- * ];
80
- * ```
81
- *
82
- * ## ⚡ 성능 최적화 팁
83
- * 1. **동적 boxWidth 계산**: `measureText()`로 실제 너비 계산 후 전달
84
- * 2. **enableViewportCulling**: 대량 데이터 시 필수 (기본 true)
85
- * 3. **selectedItems 외부 관리**: 상태를 외부에서 관리하여 리렌더링 최소화
41
+ * WoongCanvasMarker - Konva 기반 고성능 마커 렌더링 컴포넌트
86
42
  *
87
43
  * @template T 마커 데이터의 추가 속성 타입
88
- *
89
- * @example
90
- * // 동적 boxWidth 계산 예시
91
- * const tempCtx = document.createElement('canvas').getContext('2d');
92
- * tempCtx.font = 'bold 15px Arial';
93
- * const boxWidth = Math.max(60, tempCtx.measureText(text).width + 20);
94
- *
95
- * @see {@link https://github.com/your-repo/docs/WoongCanvasMarker.md} 전체 문서
96
44
  */
97
45
  export default WoongCanvasMarker;