@mint-ui/map 1.2.0-test.5 → 1.2.0-test.51

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 (49) hide show
  1. package/CLAUDE.md +0 -1
  2. package/dist/components/mint-map/core/MintMapCore.js +5 -6
  3. package/dist/components/mint-map/core/advanced/CanvasMarkerLayer/CanvasMarkerLayer.d.ts +47 -0
  4. package/dist/components/mint-map/core/advanced/CanvasMarkerLayer/CanvasMarkerLayer.js +634 -0
  5. package/dist/components/mint-map/core/advanced/CanvasMarkerLayer/index.d.ts +3 -0
  6. package/dist/components/mint-map/core/advanced/CanvasPolygonLayer/CanvasPolygonLayer.d.ts +252 -0
  7. package/dist/components/mint-map/core/advanced/CanvasPolygonLayer/CanvasPolygonLayer.js +596 -0
  8. package/dist/components/mint-map/core/advanced/CanvasPolygonLayer/index.d.ts +3 -0
  9. package/dist/components/mint-map/core/advanced/CanvasPolygonLayer/renderer.d.ts +237 -0
  10. package/dist/components/mint-map/core/advanced/CanvasPolygonLayer/renderer.js +645 -0
  11. package/dist/components/mint-map/core/advanced/canvas/CanvasMarker.d.ts +7 -0
  12. package/dist/components/mint-map/core/advanced/canvas/CanvasMarkerClaude.js +7 -7
  13. package/dist/components/mint-map/core/advanced/canvas/index.d.ts +0 -1
  14. package/dist/components/mint-map/core/advanced/index.d.ts +3 -1
  15. package/dist/components/mint-map/core/advanced/shared/context.d.ts +39 -0
  16. package/dist/components/mint-map/core/advanced/{woongCanvas/shared → shared}/context.js +62 -79
  17. package/dist/components/mint-map/core/advanced/shared/helpers.d.ts +20 -0
  18. package/dist/components/mint-map/core/advanced/shared/helpers.js +40 -0
  19. package/dist/components/mint-map/core/advanced/shared/hooks.d.ts +74 -0
  20. package/dist/components/mint-map/core/advanced/shared/hooks.js +189 -0
  21. package/dist/components/mint-map/core/advanced/{woongCanvas/shared → shared}/index.d.ts +3 -0
  22. package/dist/components/mint-map/core/advanced/shared/performance.d.ts +77 -0
  23. package/dist/components/mint-map/core/advanced/shared/performance.js +262 -0
  24. package/dist/components/mint-map/core/advanced/shared/types.d.ts +127 -0
  25. package/dist/components/mint-map/core/advanced/{woongCanvas/shared → shared}/types.js +5 -1
  26. package/dist/components/mint-map/core/advanced/shared/utils.d.ts +130 -0
  27. package/dist/components/mint-map/core/advanced/shared/utils.js +303 -0
  28. package/dist/components/mint-map/core/advanced/shared/viewport.d.ts +42 -0
  29. package/dist/components/mint-map/core/advanced/shared/viewport.js +51 -0
  30. package/dist/components/mint-map/google/GoogleMintMapController.js +5 -4
  31. package/dist/components/mint-map/kakao/KakaoMintMapController.js +5 -4
  32. package/dist/components/mint-map/naver/NaverMintMapController.js +5 -4
  33. package/dist/index.es.js +3233 -2687
  34. package/dist/index.js +25 -10
  35. package/dist/index.umd.js +3247 -2689
  36. package/package.json +1 -1
  37. package/dist/components/mint-map/core/advanced/canvas/CanvasMarkerHanquf.d.ts +0 -22
  38. package/dist/components/mint-map/core/advanced/canvas/CanvasMarkerHanquf.js +0 -413
  39. package/dist/components/mint-map/core/advanced/woongCanvas/ClusterMarker.d.ts +0 -11
  40. package/dist/components/mint-map/core/advanced/woongCanvas/WoongKonvaMarker.d.ts +0 -50
  41. package/dist/components/mint-map/core/advanced/woongCanvas/WoongKonvaMarker.js +0 -1065
  42. package/dist/components/mint-map/core/advanced/woongCanvas/index.d.ts +0 -3
  43. package/dist/components/mint-map/core/advanced/woongCanvas/shared/context.d.ts +0 -31
  44. package/dist/components/mint-map/core/advanced/woongCanvas/shared/performance.d.ts +0 -161
  45. package/dist/components/mint-map/core/advanced/woongCanvas/shared/performance.js +0 -343
  46. package/dist/components/mint-map/core/advanced/woongCanvas/shared/types.d.ts +0 -131
  47. package/dist/components/mint-map/core/advanced/woongCanvas/shared/utils.d.ts +0 -31
  48. package/dist/components/mint-map/core/advanced/woongCanvas/shared/utils.js +0 -164
  49. package/dist/components/mint-map/core/util/geohash.js +0 -125
@@ -0,0 +1,252 @@
1
+ import React from "react";
2
+ import { MarkerOptions } from "../../../types";
3
+ import { CanvasData } from "../shared";
4
+ export { CanvasProvider, LRUCache, SpatialHashGrid } from "../shared";
5
+ export type { CanvasOption, CanvasData, RenderUtils } from "../shared";
6
+ /**
7
+ * 폴리곤 스타일 정의
8
+ */
9
+ export interface PolygonStyle {
10
+ /** 채우기 색상 */
11
+ fillColor: string;
12
+ /** 테두리 색상 */
13
+ strokeColor: string;
14
+ /** 테두리 두께 */
15
+ lineWidth: number;
16
+ }
17
+ /**
18
+ * 폴리곤 스타일 컨텍스트 (선택/호버/활성 상태 정보)
19
+ */
20
+ export interface PolygonStyleContext {
21
+ /** 선택 여부 */
22
+ isSelected: boolean;
23
+ /** 호버 여부 */
24
+ isHovered: boolean;
25
+ /** 활성 여부 (마지막 선택된 항목) */
26
+ isActive: boolean;
27
+ }
28
+ /**
29
+ * 폴리곤 스타일 객체
30
+ *
31
+ * 상태별 스타일을 정의합니다. 개별 props 방식과 동일한 알고리즘으로 적용됩니다.
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * renderStyle={{
36
+ * base: { fillColor: 'gray', strokeColor: 'black', lineWidth: 2 },
37
+ * selected: { fillColor: 'green', strokeColor: 'darkgreen', lineWidth: 4 },
38
+ * active: { fillColor: 'yellow', strokeColor: 'orange', lineWidth: 5 },
39
+ * hovered: { fillColor: 'blue', strokeColor: 'darkblue', lineWidth: 3 }
40
+ * }}
41
+ * ```
42
+ */
43
+ export interface PolygonStyleObject {
44
+ /** 기본 폴리곤 스타일 (필수) */
45
+ base: PolygonStyle;
46
+ /** 선택된 폴리곤 스타일 */
47
+ selected?: PolygonStyle;
48
+ /** 활성 폴리곤 스타일 (마지막 선택된 항목) */
49
+ active?: PolygonStyle;
50
+ /** 호버된 폴리곤 스타일 */
51
+ hovered?: PolygonStyle;
52
+ }
53
+ /**
54
+ * 폴리곤 스타일 커스터마이징 함수 타입
55
+ *
56
+ * item 데이터와 상태 정보를 기반으로 자유롭게 스타일을 커스터마이징할 수 있습니다.
57
+ *
58
+ * @param item 폴리곤 데이터
59
+ * @param context 선택/호버/활성 상태 정보
60
+ * @param defaultStyle 기본 스타일 (renderStyle 객체 또는 개별 props로부터 계산된 스타일)
61
+ * @returns 커스터마이징된 폴리곤 스타일
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * customStyle={(item, context, defaultStyle) => {
66
+ * // item의 속성에 따라 동적으로 스타일 결정
67
+ * if (item.someProperty > 100) {
68
+ * return { fillColor: 'red', strokeColor: 'darkred', lineWidth: 3 };
69
+ * }
70
+ *
71
+ * // 기본 스타일을 기반으로 일부만 수정
72
+ * return {
73
+ * ...defaultStyle,
74
+ * fillColor: context.isActive ? 'yellow' : defaultStyle.fillColor
75
+ * };
76
+ * }}
77
+ * ```
78
+ */
79
+ export declare type PolygonStyleCustomizer<T> = (item: CanvasData<T>, context: PolygonStyleContext, defaultStyle: PolygonStyle) => PolygonStyle;
80
+ /**
81
+ * 공통 Props (모든 방식 공통)
82
+ */
83
+ interface CanvasPolygonLayerBaseProps<T> extends Pick<MarkerOptions, 'zIndex' | 'anchor' | 'visible'> {
84
+ /** 렌더링할 폴리곤 데이터 배열 */
85
+ data: CanvasData<T>[];
86
+ /** 폴리곤 클릭 시 호출되는 콜백 함수 */
87
+ onClick?: (payload: CanvasData<T>, selectedIds: Set<string>) => void;
88
+ /** 다중 선택 활성화 여부 (기본값: false) */
89
+ enableMultiSelect?: boolean;
90
+ /** 뷰포트 컬링 활성화 여부 (기본값: false) */
91
+ enableViewportCulling?: boolean;
92
+ /** 뷰포트 컬링 여유 공간 (픽셀 단위, 기본값: 100) */
93
+ cullingMargin?: number;
94
+ /** LRU 캐시 최대 크기 (기본값: 10000) */
95
+ maxCacheSize?: number;
96
+ /** 외부에서 제어하는 선택된 항목 배열 */
97
+ selectedItems?: CanvasData<T>[];
98
+ /** 외부에서 전달된 단일 선택 아이템 */
99
+ selectedItem?: CanvasData<T> | null;
100
+ /** 상호작용 비활성화 여부 (기본값: false) */
101
+ disableInteraction?: boolean;
102
+ }
103
+ /**
104
+ * 개별 Props 방식 (기존 방식)
105
+ *
106
+ * baseFillColor, baseStrokeColor, baseLineWidth가 있으면 자동으로 개별 props 방식으로 인식됩니다.
107
+ */
108
+ interface CanvasPolygonLayerPropsWithIndividualStyles<T> extends CanvasPolygonLayerBaseProps<T> {
109
+ /** 기본 폴리곤 채우기 색상 (필수) */
110
+ baseFillColor: string;
111
+ /** 기본 폴리곤 테두리 색상 (필수) */
112
+ baseStrokeColor: string;
113
+ /** 기본 폴리곤 테두리 두께 (필수) */
114
+ baseLineWidth: number;
115
+ /** 선택된 폴리곤 채우기 색상 */
116
+ selectedFillColor?: string;
117
+ /** 선택된 폴리곤 테두리 색상 */
118
+ selectedStrokeColor?: string;
119
+ /** 선택된 폴리곤 테두리 두께 */
120
+ selectedLineWidth?: number;
121
+ /** 마지막 선택된 폴리곤(Active) 채우기 색상 */
122
+ activeFillColor?: string;
123
+ /** 마지막 선택된 폴리곤(Active) 테두리 색상 */
124
+ activeStrokeColor?: string;
125
+ /** 마지막 선택된 폴리곤(Active) 테두리 두께 */
126
+ activeLineWidth?: number;
127
+ /** Hover 시 폴리곤 채우기 색상 */
128
+ hoveredFillColor?: string;
129
+ /** Hover 시 폴리곤 테두리 색상 */
130
+ hoveredStrokeColor?: string;
131
+ /** Hover 시 폴리곤 테두리 두께 */
132
+ hoveredLineWidth?: number;
133
+ /** 다른 방식 props는 사용 불가 */
134
+ renderStyle?: never;
135
+ customStyle?: never;
136
+ }
137
+ /**
138
+ * 객체 Props 방식 (새로운 방식)
139
+ *
140
+ * renderStyle 객체가 있으면 자동으로 객체 방식으로 인식됩니다.
141
+ * 상태별 스타일을 정의하면 개별 props 방식과 동일한 알고리즘으로 적용됩니다.
142
+ *
143
+ * @example
144
+ * ```typescript
145
+ * renderStyle={{
146
+ * base: { fillColor: 'gray', strokeColor: 'black', lineWidth: 2 },
147
+ * selected: { fillColor: 'green', strokeColor: 'darkgreen', lineWidth: 4 },
148
+ * active: { fillColor: 'yellow', strokeColor: 'orange', lineWidth: 5 },
149
+ * hovered: { fillColor: 'blue', strokeColor: 'darkblue', lineWidth: 3 }
150
+ * }}
151
+ * customStyle={(item, context, defaultStyle) => {
152
+ * // 기본 스타일을 기반으로 추가 커스터마이징
153
+ * return { ...defaultStyle, fillColor: item.someProperty > 100 ? 'red' : defaultStyle.fillColor };
154
+ * }}
155
+ * ```
156
+ */
157
+ interface CanvasPolygonLayerPropsWithObjectStyle<T> extends CanvasPolygonLayerBaseProps<T> {
158
+ /**
159
+ * 폴리곤 스타일 객체
160
+ *
161
+ * 상태별 스타일을 정의합니다. 개별 props 방식과 동일한 알고리즘으로 적용됩니다.
162
+ */
163
+ renderStyle: PolygonStyleObject;
164
+ /** 다른 방식 props는 사용 불가 */
165
+ baseFillColor?: never;
166
+ baseStrokeColor?: never;
167
+ baseLineWidth?: never;
168
+ selectedFillColor?: never;
169
+ selectedStrokeColor?: never;
170
+ selectedLineWidth?: never;
171
+ activeFillColor?: never;
172
+ activeStrokeColor?: never;
173
+ activeLineWidth?: never;
174
+ hoveredFillColor?: never;
175
+ hoveredStrokeColor?: never;
176
+ hoveredLineWidth?: never;
177
+ customStyle?: never;
178
+ }
179
+ /**
180
+ * 함수 Props 방식 (커스터마이징 방식)
181
+ *
182
+ * customStyle 함수가 있으면 자동으로 함수 방식으로 인식됩니다.
183
+ * item 데이터와 상태 정보를 기반으로 자유롭게 스타일을 커스터마이징할 수 있습니다.
184
+ *
185
+ * @example
186
+ * ```typescript
187
+ * customStyle={(item, context, defaultStyle) => {
188
+ * // item의 속성에 따라 동적으로 스타일 결정
189
+ * if (item.someProperty > 100) {
190
+ * return { fillColor: 'red', strokeColor: 'darkred', lineWidth: 3 };
191
+ * }
192
+ *
193
+ * // 상태 정보를 기반으로 스타일 결정
194
+ * if (context.isActive) {
195
+ * return { fillColor: 'yellow', strokeColor: 'orange', lineWidth: 5 };
196
+ * }
197
+ * if (context.isHovered) {
198
+ * return { fillColor: 'blue', strokeColor: 'darkblue', lineWidth: 3 };
199
+ * }
200
+ * if (context.isSelected) {
201
+ * return { fillColor: 'green', strokeColor: 'darkgreen', lineWidth: 4 };
202
+ * }
203
+ *
204
+ * // 기본 스타일
205
+ * return { fillColor: 'gray', strokeColor: 'black', lineWidth: 2 };
206
+ * }}
207
+ * ```
208
+ */
209
+ interface CanvasPolygonLayerPropsWithCustomStyle<T> extends CanvasPolygonLayerBaseProps<T> {
210
+ /**
211
+ * 폴리곤 스타일 커스터마이징 함수
212
+ *
213
+ * item 데이터와 상태 정보를 기반으로 자유롭게 스타일을 커스터마이징할 수 있습니다.
214
+ * defaultStyle은 내부에서 계산된 기본 스타일입니다.
215
+ */
216
+ customStyle: PolygonStyleCustomizer<T>;
217
+ /** 다른 방식 props는 사용 불가 */
218
+ baseFillColor?: never;
219
+ baseStrokeColor?: never;
220
+ baseLineWidth?: never;
221
+ selectedFillColor?: never;
222
+ selectedStrokeColor?: never;
223
+ selectedLineWidth?: never;
224
+ activeFillColor?: never;
225
+ activeStrokeColor?: never;
226
+ activeLineWidth?: never;
227
+ hoveredFillColor?: never;
228
+ hoveredStrokeColor?: never;
229
+ hoveredLineWidth?: never;
230
+ renderStyle?: never;
231
+ }
232
+ /**
233
+ * CanvasPolygonLayer Props (Discriminated Union)
234
+ *
235
+ * 세 가지 스타일 지정 방식을 지원:
236
+ * 1. 개별 props 방식: baseFillColor, baseStrokeColor, baseLineWidth가 있으면 자동으로 개별 props 방식
237
+ * 2. 객체 방식: renderStyle 객체가 있으면 자동으로 객체 방식
238
+ * 3. 함수 방식: customStyle 함수가 있으면 자동으로 함수 방식
239
+ *
240
+ * 세 방식은 동시에 사용할 수 없습니다 (mutually exclusive).
241
+ * styleMode prop은 필요 없으며, 각 prop의 존재 여부로 자동 판단됩니다.
242
+ *
243
+ * @template T 폴리곤 데이터의 추가 속성 타입
244
+ */
245
+ export declare type CanvasPolygonLayerProps<T> = CanvasPolygonLayerPropsWithIndividualStyles<T> | CanvasPolygonLayerPropsWithObjectStyle<T> | CanvasPolygonLayerPropsWithCustomStyle<T>;
246
+ declare const CanvasPolygonLayer: <T>(props: CanvasPolygonLayerProps<T>) => React.ReactPortal;
247
+ /**
248
+ * CanvasPolygonLayer - Konva 기반 고성능 폴리곤 렌더링 컴포넌트
249
+ *
250
+ * @template T 폴리곤 데이터의 추가 속성 타입
251
+ */
252
+ export default CanvasPolygonLayer;