@mint-ui/map 1.2.0-test.31 → 1.2.0-test.32

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 (27) hide show
  1. package/dist/components/mint-map/core/MintMapCore.js +5 -5
  2. package/dist/components/mint-map/core/advanced/index.d.ts +1 -1
  3. package/dist/components/mint-map/core/advanced/{woongCanvas/shared → shared}/context.d.ts +5 -5
  4. package/dist/components/mint-map/core/advanced/{woongCanvas/shared → shared}/context.js +8 -8
  5. package/dist/components/mint-map/core/advanced/{woongCanvas/shared → shared}/performance.d.ts +1 -1
  6. package/dist/components/mint-map/core/advanced/{woongCanvas/shared → shared}/performance.js +1 -1
  7. package/dist/components/mint-map/core/advanced/{woongCanvas/shared → shared}/types.d.ts +8 -11
  8. package/dist/components/mint-map/core/advanced/{woongCanvas/shared → shared}/utils.d.ts +2 -2
  9. package/dist/components/mint-map/core/advanced/{woongCanvas/shared → shared}/utils.js +3 -3
  10. package/dist/components/mint-map/core/advanced/woongCanvasMarker/WoongCanvasMarker.d.ts +97 -0
  11. package/dist/components/mint-map/core/advanced/{woongCanvas/WoongCanvasLayer.js → woongCanvasMarker/WoongCanvasMarker.js} +42 -123
  12. package/dist/components/mint-map/core/advanced/woongCanvasMarker/index.d.ts +4 -0
  13. package/dist/components/mint-map/core/advanced/woongCanvasPolygon/WoongCanvasPolygon.d.ts +113 -0
  14. package/dist/components/mint-map/core/advanced/woongCanvasPolygon/index.d.ts +3 -0
  15. package/dist/components/mint-map/core/advanced/{woongCanvas/shared → woongCanvasPolygon}/renderer.d.ts +1 -1
  16. package/dist/components/mint-map/google/GoogleMintMapController.js +4 -4
  17. package/dist/components/mint-map/kakao/KakaoMintMapController.js +4 -4
  18. package/dist/components/mint-map/naver/NaverMintMapController.js +4 -4
  19. package/dist/index.es.js +43 -350
  20. package/dist/index.js +9 -8
  21. package/dist/index.umd.js +46 -352
  22. package/package.json +1 -1
  23. package/dist/components/mint-map/core/advanced/woongCanvas/WoongCanvasLayer.d.ts +0 -162
  24. package/dist/components/mint-map/core/advanced/woongCanvas/index.d.ts +0 -3
  25. package/dist/components/mint-map/core/advanced/woongCanvas/shared/renderer.js +0 -234
  26. /package/dist/components/mint-map/core/advanced/{woongCanvas/shared → shared}/index.d.ts +0 -0
  27. /package/dist/components/mint-map/core/advanced/{woongCanvas/shared → shared}/types.js +0 -0
@@ -0,0 +1,113 @@
1
+ import React from "react";
2
+ import { MarkerOptions } from "../../../types";
3
+ import { KonvaCanvasData } from "../shared";
4
+ export { WoongCanvasProvider, LRUCache, SpatialHashGrid } from "../shared";
5
+ export type { KonvaCanvasOption, KonvaCanvasData, RenderUtils } from "../shared";
6
+ /**
7
+ * WoongCanvasPolygon Props - 폴리곤 전용
8
+ */
9
+ export interface WoongCanvasPolygonProps<T> extends Pick<MarkerOptions, 'zIndex' | 'anchor' | 'visible'> {
10
+ /** 렌더링할 폴리곤 데이터 배열 */
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) */
19
+ enableMultiSelect?: boolean;
20
+ /** 뷰포트 컬링 활성화 여부 (기본: true) */
21
+ enableViewportCulling?: boolean;
22
+ /** 뷰포트 컬링 여유 공간 (기본: 100px) */
23
+ cullingMargin?: number;
24
+ /** LRU 캐시 최대 크기 (기본: 10000) */
25
+ maxCacheSize?: number;
26
+ /** 외부에서 제어하는 선택된 항목 배열 (선택) */
27
+ selectedItems?: KonvaCanvasData<T>[];
28
+ /** 외부에서 전달된 단일 선택 아이템 (특별한 효과용) */
29
+ selectedItem?: KonvaCanvasData<T> | null;
30
+ /** 상호작용 비활성화 (hover, click 등 모든 이벤트 차단) */
31
+ disableInteraction?: boolean;
32
+ /** 기본 폴리곤 채우기 색상 (필수) */
33
+ baseFillColor: string;
34
+ /** 기본 폴리곤 테두리 색상 (필수) */
35
+ baseStrokeColor: string;
36
+ /** 기본 폴리곤 테두리 두께 (필수) */
37
+ baseLineWidth: number;
38
+ /** 선택된 폴리곤 채우기 색상 (선택) */
39
+ selectedFillColor?: string;
40
+ /** 선택된 폴리곤 테두리 색상 (선택) */
41
+ selectedStrokeColor?: string;
42
+ /** 선택된 폴리곤 테두리 두께 (선택) */
43
+ selectedLineWidth?: number;
44
+ /** 마지막 선택된 폴리곤 채우기 색상 (선택, 기본값: selectedFillColor) */
45
+ activeFillColor?: string;
46
+ /** 마지막 선택된 폴리곤 테두리 색상 (선택, 기본값: selectedStrokeColor) */
47
+ activeStrokeColor?: string;
48
+ /** 마지막 선택된 폴리곤 테두리 두께 (선택, 기본값: selectedLineWidth) */
49
+ activeLineWidth?: number;
50
+ /** Hover 시 폴리곤 채우기 색상 (선택, 기본값: selectedFillColor) */
51
+ hoveredFillColor?: string;
52
+ /** Hover 시 폴리곤 테두리 색상 (선택, 기본값: selectedStrokeColor) */
53
+ hoveredStrokeColor?: string;
54
+ /** Hover 시 폴리곤 테두리 두께 (선택, 기본값: selectedLineWidth) */
55
+ hoveredLineWidth?: number;
56
+ }
57
+ declare const WoongCanvasPolygon: <T>(props: WoongCanvasPolygonProps<T>) => React.ReactPortal;
58
+ /**
59
+ * 🚀 WoongCanvasPolygon - Konva 기반 초고성능 폴리곤 렌더링 컴포넌트
60
+ *
61
+ * ## 📌 주요 특징
62
+ * - **30,000개 이상의 폴리곤을 60fps로 렌더링**
63
+ * - **Multi-Layer 아키텍처**: Base/Event 레이어 분리
64
+ * - **Spatial Hash Grid**: O(1) 수준의 빠른 Hit Test
65
+ * - **LRU 캐시**: 좌표 변환 결과 캐싱으로 성능 최적화
66
+ * - **Viewport Culling**: 화면에 보이는 영역만 렌더링
67
+ * - **자동 렌더링**: 스타일 props만 전달하면 내부에서 자동으로 렌더링
68
+ *
69
+ * ## 🎯 사용 방법
70
+ *
71
+ * ```tsx
72
+ * <WoongCanvasPolygon
73
+ * data={polygons}
74
+ * baseFillColor="rgba(255, 100, 100, 0.5)"
75
+ * baseStrokeColor="rgba(200, 50, 50, 0.8)"
76
+ * baseLineWidth={2}
77
+ * selectedFillColor="rgba(255, 193, 7, 0.7)"
78
+ * selectedStrokeColor="rgba(255, 152, 0, 1)"
79
+ * selectedLineWidth={4}
80
+ * hoveredFillColor="rgba(100, 150, 255, 0.8)" // optional
81
+ * hoveredStrokeColor="rgba(0, 100, 200, 1)" // optional
82
+ * hoveredLineWidth={3} // optional
83
+ * enableMultiSelect={true}
84
+ * onClick={handleClick}
85
+ * />
86
+ * ```
87
+ *
88
+ * ## 📊 데이터 형식
89
+ * ```typescript
90
+ * const data: KonvaCanvasData<T>[] = [
91
+ * {
92
+ * id: 'unique-id',
93
+ * position: new Position(lat, lng),
94
+ * paths: {
95
+ * type: 'MultiPolygon',
96
+ * coordinates: [[[[lng, lat], [lng, lat], ...]]]
97
+ * },
98
+ * isDonutPolygon: false, // optional
99
+ * // 커스텀 데이터
100
+ * ...customData
101
+ * }
102
+ * ];
103
+ * ```
104
+ *
105
+ * ## ⚡ 성능 최적화 팁
106
+ * 1. **enableViewportCulling**: 대량 데이터 시 필수 (기본 true)
107
+ * 2. **selectedItems 외부 관리**: 상태를 외부에서 관리하여 리렌더링 최소화
108
+ *
109
+ * @template T 폴리곤 데이터의 추가 속성 타입
110
+ *
111
+ * @see {@link https://github.com/your-repo/docs/WoongCanvasPolygon.md} 전체 문서
112
+ */
113
+ export default WoongCanvasPolygon;
@@ -0,0 +1,3 @@
1
+ export { default as WoongCanvasPolygon } from "./WoongCanvasPolygon";
2
+ export * from "./WoongCanvasPolygon";
3
+ export * from "../shared";
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * 이 파일은 폴리곤 렌더링을 위한 헬퍼 함수와 팩토리 함수를 제공합니다.
5
5
  */
6
- import { CustomRenderBase, CustomRenderEvent, KonvaCanvasData } from "./types";
6
+ import { CustomRenderBase, CustomRenderEvent, KonvaCanvasData } from "../shared/types";
7
7
  /**
8
8
  * 폴리곤 그리기 헬퍼 함수 (도넛 폴리곤 지원)
9
9
  */
@@ -21,10 +21,10 @@ require('../naver/NaverMintMapController.js');
21
21
  require('../core/advanced/canvas/CanvasMarkerClaude.js');
22
22
  require('../core/advanced/MapLoadingComponents.js');
23
23
  require('konva');
24
- require('../core/advanced/woongCanvas/shared/types.js');
25
- require('../core/advanced/woongCanvas/shared/utils.js');
26
- require('../core/advanced/woongCanvas/shared/context.js');
27
- require('../core/advanced/woongCanvas/shared/performance.js');
24
+ require('../core/advanced/shared/types.js');
25
+ require('../core/advanced/shared/utils.js');
26
+ require('../core/advanced/shared/context.js');
27
+ require('../core/advanced/shared/performance.js');
28
28
  require('../core/wrapper/MapControlWrapper.js');
29
29
 
30
30
  var GoogleMintMapController =
@@ -22,10 +22,10 @@ require('../naver/NaverMintMapController.js');
22
22
  require('../core/advanced/canvas/CanvasMarkerClaude.js');
23
23
  require('../core/advanced/MapLoadingComponents.js');
24
24
  require('konva');
25
- require('../core/advanced/woongCanvas/shared/types.js');
26
- require('../core/advanced/woongCanvas/shared/utils.js');
27
- require('../core/advanced/woongCanvas/shared/context.js');
28
- require('../core/advanced/woongCanvas/shared/performance.js');
25
+ require('../core/advanced/shared/types.js');
26
+ require('../core/advanced/shared/utils.js');
27
+ require('../core/advanced/shared/context.js');
28
+ require('../core/advanced/shared/performance.js');
29
29
  require('../core/wrapper/MapControlWrapper.js');
30
30
 
31
31
  var KakaoMintMapController =
@@ -21,10 +21,10 @@ var polygon = require('../core/util/polygon.js');
21
21
  require('../core/advanced/canvas/CanvasMarkerClaude.js');
22
22
  require('../core/advanced/MapLoadingComponents.js');
23
23
  require('konva');
24
- require('../core/advanced/woongCanvas/shared/types.js');
25
- require('../core/advanced/woongCanvas/shared/utils.js');
26
- require('../core/advanced/woongCanvas/shared/context.js');
27
- require('../core/advanced/woongCanvas/shared/performance.js');
24
+ require('../core/advanced/shared/types.js');
25
+ require('../core/advanced/shared/utils.js');
26
+ require('../core/advanced/shared/context.js');
27
+ require('../core/advanced/shared/performance.js');
28
28
  require('../core/wrapper/MapControlWrapper.js');
29
29
 
30
30
  var NaverMintMapController =