@mint-ui/map 1.2.0-test.41 → 1.2.0-test.43

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.
@@ -55,19 +55,20 @@ export interface CanvasOption {
55
55
  * };
56
56
  *
57
57
  * // ✅ 올바른 사용 (헬퍼 함수 사용)
58
- * const data = createCanvasData(serverData, {
59
- * id: String(serverData.id),
58
+ * const dataArray = createCanvasDataArray([serverData], (item) => ({
59
+ * id: String(item.id),
60
60
  * position: new Position(lat, lng)
61
- * });
61
+ * }));
62
+ * const data = dataArray[0]; // 단일 항목이 필요한 경우
62
63
  * ```
63
64
  */
64
65
  export declare type CanvasData<T = {}> = T & CanvasOption;
65
66
  /**
66
- * 서버 데이터를 CanvasData 변환하는 헬퍼 함수
67
+ * 서버 데이터 배열을 CanvasData 배열로 변환하는 헬퍼 함수
67
68
  *
68
- * @see createCanvasData in ./utils.ts
69
+ * @see createCanvasDataArray in ./utils.ts
69
70
  */
70
- export { createCanvasData } from './utils';
71
+ export { createCanvasDataArray } from './utils';
71
72
  /**
72
73
  * 렌더링 유틸리티 함수들 (좌표 변환)
73
74
  *
@@ -14,4 +14,4 @@ exports.CanvasDataType = void 0;
14
14
  CanvasDataType["POLYGON"] = "POLYGON";
15
15
  })(exports.CanvasDataType || (exports.CanvasDataType = {}));
16
16
 
17
- exports.createCanvasData = utils.createCanvasData;
17
+ exports.createCanvasDataArray = utils.createCanvasDataArray;
@@ -61,35 +61,37 @@ export declare const calculateTextBoxWidth: ({ text, fontConfig, padding, minWid
61
61
  minWidth: number;
62
62
  }) => number;
63
63
  /**
64
- * 서버 데이터를 CanvasData 변환하는 헬퍼 함수
64
+ * 서버 데이터 배열을 CanvasData 배열로 변환하는 헬퍼 함수
65
65
  *
66
- * 서버 데이터의 필드가 CanvasOption과 충돌하는 경우 (예: id, position 등),
67
- * 함수를 사용하여 명시적으로 매핑할 수 있습니다.
66
+ * 서버 데이터 배열의 항목을 CanvasData로 변환합니다.
67
+ * 항목마다 다른 CanvasOption을 적용할 수 있습니다.
68
68
  *
69
69
  * @template T 서버에서 받은 원본 데이터 타입
70
- * @param serverData 서버에서 받은 원본 데이터
71
- * @param canvasOptions CanvasOption 필드들 (충돌하는 필드는 여기서 명시적으로 지정)
72
- * @returns CanvasData<T> 타입의 데이터
70
+ * @param serverDataArray 서버에서 받은 원본 데이터 배열
71
+ * @param getCanvasOptions 항목에 대해 CanvasOption을 생성하는 함수
72
+ * @returns CanvasData<T>[] 타입의 데이터 배열
73
73
  *
74
74
  * @example
75
75
  * ```typescript
76
76
  * interface ServerData {
77
77
  * id: number; // CanvasOption의 id와 충돌
78
78
  * name: string;
79
+ * lat: number;
80
+ * lng: number;
79
81
  * }
80
82
  *
81
- * const serverData: ServerData = { id: 123, name: "Test" };
83
+ * const serverDataArray: ServerData[] = [
84
+ * { id: 1, name: "Item 1", lat: 37.5, lng: 127.0 },
85
+ * { id: 2, name: "Item 2", lat: 37.6, lng: 127.1 }
86
+ * ];
82
87
  *
83
88
  * // ✅ 올바른 사용
84
- * const canvasData = createCanvasData(serverData, {
85
- * id: String(serverData.id), // 명시적으로 변환
86
- * position: new Position(37.5, 127.0)
87
- * });
89
+ * const canvasDataArray = createCanvasDataArray(serverDataArray, (item, index) => ({
90
+ * id: String(item.id), // 각 항목마다 명시적으로 변환
91
+ * position: new Position(item.lat, item.lng)
92
+ * }));
88
93
  *
89
- * // canvasData는 CanvasData<ServerData> 타입이며:
90
- * // - id: string (CanvasOption의 id)
91
- * // - name: string (서버 데이터의 name)
92
- * // - position: Position (CanvasOption의 position)
94
+ * // canvasDataArray는 CanvasData<ServerData>[] 타입입니다
93
95
  * ```
94
96
  */
95
- export declare function createCanvasData<T extends Record<string, any>>(serverData: T, canvasOptions: CanvasOption): CanvasData<T>;
97
+ export declare function createCanvasDataArray<T extends Record<string, any>>(serverDataArray: T[], getCanvasOptions: (serverData: T, index: number) => CanvasOption): CanvasData<T>[];
@@ -213,48 +213,53 @@ var calculateTextBoxWidth = function (_a) {
213
213
  return Math.max(minWidth, textWidth + padding);
214
214
  };
215
215
  /**
216
- * 서버 데이터를 CanvasData 변환하는 헬퍼 함수
216
+ * 서버 데이터 배열을 CanvasData 배열로 변환하는 헬퍼 함수
217
217
  *
218
- * 서버 데이터의 필드가 CanvasOption과 충돌하는 경우 (예: id, position 등),
219
- * 함수를 사용하여 명시적으로 매핑할 수 있습니다.
218
+ * 서버 데이터 배열의 항목을 CanvasData로 변환합니다.
219
+ * 항목마다 다른 CanvasOption을 적용할 수 있습니다.
220
220
  *
221
221
  * @template T 서버에서 받은 원본 데이터 타입
222
- * @param serverData 서버에서 받은 원본 데이터
223
- * @param canvasOptions CanvasOption 필드들 (충돌하는 필드는 여기서 명시적으로 지정)
224
- * @returns CanvasData<T> 타입의 데이터
222
+ * @param serverDataArray 서버에서 받은 원본 데이터 배열
223
+ * @param getCanvasOptions 항목에 대해 CanvasOption을 생성하는 함수
224
+ * @returns CanvasData<T>[] 타입의 데이터 배열
225
225
  *
226
226
  * @example
227
227
  * ```typescript
228
228
  * interface ServerData {
229
229
  * id: number; // CanvasOption의 id와 충돌
230
230
  * name: string;
231
+ * lat: number;
232
+ * lng: number;
231
233
  * }
232
234
  *
233
- * const serverData: ServerData = { id: 123, name: "Test" };
235
+ * const serverDataArray: ServerData[] = [
236
+ * { id: 1, name: "Item 1", lat: 37.5, lng: 127.0 },
237
+ * { id: 2, name: "Item 2", lat: 37.6, lng: 127.1 }
238
+ * ];
234
239
  *
235
240
  * // ✅ 올바른 사용
236
- * const canvasData = createCanvasData(serverData, {
237
- * id: String(serverData.id), // 명시적으로 변환
238
- * position: new Position(37.5, 127.0)
239
- * });
241
+ * const canvasDataArray = createCanvasDataArray(serverDataArray, (item, index) => ({
242
+ * id: String(item.id), // 각 항목마다 명시적으로 변환
243
+ * position: new Position(item.lat, item.lng)
244
+ * }));
240
245
  *
241
- * // canvasData는 CanvasData<ServerData> 타입이며:
242
- * // - id: string (CanvasOption의 id)
243
- * // - name: string (서버 데이터의 name)
244
- * // - position: Position (CanvasOption의 position)
246
+ * // canvasDataArray는 CanvasData<ServerData>[] 타입입니다
245
247
  * ```
246
248
  */
247
249
 
248
- function createCanvasData(serverData, canvasOptions) {
249
- // 서버 데이터와 CanvasOption을 결합
250
- // CanvasOption의 필드가 우선되므로 충돌하는 필드는 canvasOptions의 값이 사용됨
251
- return tslib.__assign(tslib.__assign({}, serverData), canvasOptions);
250
+ function createCanvasDataArray(serverDataArray, getCanvasOptions) {
251
+ return serverDataArray.map(function (serverData, index) {
252
+ var canvasOptions = getCanvasOptions(serverData, index); // 서버 데이터와 CanvasOption을 결합
253
+ // CanvasOption의 필드가 우선되므로 충돌하는 필드는 canvasOptions의 값이 사용됨
254
+
255
+ return tslib.__assign(tslib.__assign({}, serverData), canvasOptions);
256
+ });
252
257
  }
253
258
 
254
259
  exports.calculateTextBoxWidth = calculateTextBoxWidth;
255
260
  exports.computeMarkerOffset = computeMarkerOffset;
256
261
  exports.computePolygonOffsets = computePolygonOffsets;
257
- exports.createCanvasData = createCanvasData;
262
+ exports.createCanvasDataArray = createCanvasDataArray;
258
263
  exports.hexToRgba = hexToRgba;
259
264
  exports.isPointInMarkerData = isPointInMarkerData;
260
265
  exports.isPointInPolygon = isPointInPolygon;
package/dist/index.es.js CHANGED
@@ -989,42 +989,47 @@ var calculateTextBoxWidth = function (_a) {
989
989
  return Math.max(minWidth, textWidth + padding);
990
990
  };
991
991
  /**
992
- * 서버 데이터를 CanvasData 변환하는 헬퍼 함수
992
+ * 서버 데이터 배열을 CanvasData 배열로 변환하는 헬퍼 함수
993
993
  *
994
- * 서버 데이터의 필드가 CanvasOption과 충돌하는 경우 (예: id, position 등),
995
- * 함수를 사용하여 명시적으로 매핑할 수 있습니다.
994
+ * 서버 데이터 배열의 항목을 CanvasData로 변환합니다.
995
+ * 항목마다 다른 CanvasOption을 적용할 수 있습니다.
996
996
  *
997
997
  * @template T 서버에서 받은 원본 데이터 타입
998
- * @param serverData 서버에서 받은 원본 데이터
999
- * @param canvasOptions CanvasOption 필드들 (충돌하는 필드는 여기서 명시적으로 지정)
1000
- * @returns CanvasData<T> 타입의 데이터
998
+ * @param serverDataArray 서버에서 받은 원본 데이터 배열
999
+ * @param getCanvasOptions 항목에 대해 CanvasOption을 생성하는 함수
1000
+ * @returns CanvasData<T>[] 타입의 데이터 배열
1001
1001
  *
1002
1002
  * @example
1003
1003
  * ```typescript
1004
1004
  * interface ServerData {
1005
1005
  * id: number; // CanvasOption의 id와 충돌
1006
1006
  * name: string;
1007
+ * lat: number;
1008
+ * lng: number;
1007
1009
  * }
1008
1010
  *
1009
- * const serverData: ServerData = { id: 123, name: "Test" };
1011
+ * const serverDataArray: ServerData[] = [
1012
+ * { id: 1, name: "Item 1", lat: 37.5, lng: 127.0 },
1013
+ * { id: 2, name: "Item 2", lat: 37.6, lng: 127.1 }
1014
+ * ];
1010
1015
  *
1011
1016
  * // ✅ 올바른 사용
1012
- * const canvasData = createCanvasData(serverData, {
1013
- * id: String(serverData.id), // 명시적으로 변환
1014
- * position: new Position(37.5, 127.0)
1015
- * });
1017
+ * const canvasDataArray = createCanvasDataArray(serverDataArray, (item, index) => ({
1018
+ * id: String(item.id), // 각 항목마다 명시적으로 변환
1019
+ * position: new Position(item.lat, item.lng)
1020
+ * }));
1016
1021
  *
1017
- * // canvasData는 CanvasData<ServerData> 타입이며:
1018
- * // - id: string (CanvasOption의 id)
1019
- * // - name: string (서버 데이터의 name)
1020
- * // - position: Position (CanvasOption의 position)
1022
+ * // canvasDataArray는 CanvasData<ServerData>[] 타입입니다
1021
1023
  * ```
1022
1024
  */
1023
1025
 
1024
- function createCanvasData(serverData, canvasOptions) {
1025
- // 서버 데이터와 CanvasOption을 결합
1026
- // CanvasOption의 필드가 우선되므로 충돌하는 필드는 canvasOptions의 값이 사용됨
1027
- return __assign(__assign({}, serverData), canvasOptions);
1026
+ function createCanvasDataArray(serverDataArray, getCanvasOptions) {
1027
+ return serverDataArray.map(function (serverData, index) {
1028
+ var canvasOptions = getCanvasOptions(serverData, index); // 서버 데이터와 CanvasOption을 결합
1029
+ // CanvasOption의 필드가 우선되므로 충돌하는 필드는 canvasOptions의 값이 사용됨
1030
+
1031
+ return __assign(__assign({}, serverData), canvasOptions);
1032
+ });
1028
1033
  }
1029
1034
 
1030
1035
  /**
@@ -9880,4 +9885,4 @@ function MintMap(_a) {
9880
9885
  }), loading));
9881
9886
  }
9882
9887
 
9883
- export { AnimationPlayer, Bounds, CanvasDataType, CanvasMarker, CanvasMarkerClaude, CanvasMarkerHanquf, CircleMarker, DEFAULT_CULLING_MARGIN, DEFAULT_MAX_CACHE_SIZE, Drawable, GeoCalulator, GoogleMintMapController, LRUCache, MapBuildingProjection, MapCanvasMarkerWrapper, MapCanvasWrapper, MapControlWrapper, MapEvent, MapLoadingWithImage, MapMarkerWrapper, MapPolygonWrapper, MapPolylineWrapper, MapUIEvent, Marker, MintMap, MintMapCanvasRenderer, MintMapController, MintMapCore, MintMapProvider, NaverMintMapController, Offset, PointLoading, Polygon, PolygonCalculator, PolygonMarker, Polyline, Position, SPATIAL_GRID_CELL_SIZE, SVGCircle, SVGPolygon, SVGRect, Spacing, SpatialHashGrid, Status, WoongCanvasMarker, WoongCanvasPolygon, WoongCanvasProvider, buildSpatialIndex, calculateTextBoxWidth, computeMarkerOffset, computePolygonOffsets, createCanvasData, createMapEventHandlers, getClusterInfo, getMapOfType, hexToRgba, isInViewport, isPointInMarkerData, isPointInPolygon, isPointInPolygonData, log, mapValuesToArray, syncExternalSelectedItems, syncSelectedItems, updateViewport, useMarkerMoving, useMintMapController, useWoongCanvasContext, validateEvent, waiting };
9888
+ export { AnimationPlayer, Bounds, CanvasDataType, CanvasMarker, CanvasMarkerClaude, CanvasMarkerHanquf, CircleMarker, DEFAULT_CULLING_MARGIN, DEFAULT_MAX_CACHE_SIZE, Drawable, GeoCalulator, GoogleMintMapController, LRUCache, MapBuildingProjection, MapCanvasMarkerWrapper, MapCanvasWrapper, MapControlWrapper, MapEvent, MapLoadingWithImage, MapMarkerWrapper, MapPolygonWrapper, MapPolylineWrapper, MapUIEvent, Marker, MintMap, MintMapCanvasRenderer, MintMapController, MintMapCore, MintMapProvider, NaverMintMapController, Offset, PointLoading, Polygon, PolygonCalculator, PolygonMarker, Polyline, Position, SPATIAL_GRID_CELL_SIZE, SVGCircle, SVGPolygon, SVGRect, Spacing, SpatialHashGrid, Status, WoongCanvasMarker, WoongCanvasPolygon, WoongCanvasProvider, buildSpatialIndex, calculateTextBoxWidth, computeMarkerOffset, computePolygonOffsets, createCanvasDataArray, createMapEventHandlers, getClusterInfo, getMapOfType, hexToRgba, isInViewport, isPointInMarkerData, isPointInPolygon, isPointInPolygonData, log, mapValuesToArray, syncExternalSelectedItems, syncSelectedItems, updateViewport, useMarkerMoving, useMintMapController, useWoongCanvasContext, validateEvent, waiting };
package/dist/index.js CHANGED
@@ -72,7 +72,7 @@ Object.defineProperty(exports, 'CanvasDataType', {
72
72
  exports.calculateTextBoxWidth = utils.calculateTextBoxWidth;
73
73
  exports.computeMarkerOffset = utils.computeMarkerOffset;
74
74
  exports.computePolygonOffsets = utils.computePolygonOffsets;
75
- exports.createCanvasData = utils.createCanvasData;
75
+ exports.createCanvasDataArray = utils.createCanvasDataArray;
76
76
  exports.hexToRgba = utils.hexToRgba;
77
77
  exports.isPointInMarkerData = utils.isPointInMarkerData;
78
78
  exports.isPointInPolygon = utils.isPointInPolygon;
package/dist/index.umd.js CHANGED
@@ -993,42 +993,47 @@
993
993
  return Math.max(minWidth, textWidth + padding);
994
994
  };
995
995
  /**
996
- * 서버 데이터를 CanvasData 변환하는 헬퍼 함수
996
+ * 서버 데이터 배열을 CanvasData 배열로 변환하는 헬퍼 함수
997
997
  *
998
- * 서버 데이터의 필드가 CanvasOption과 충돌하는 경우 (예: id, position 등),
999
- * 함수를 사용하여 명시적으로 매핑할 수 있습니다.
998
+ * 서버 데이터 배열의 항목을 CanvasData로 변환합니다.
999
+ * 항목마다 다른 CanvasOption을 적용할 수 있습니다.
1000
1000
  *
1001
1001
  * @template T 서버에서 받은 원본 데이터 타입
1002
- * @param serverData 서버에서 받은 원본 데이터
1003
- * @param canvasOptions CanvasOption 필드들 (충돌하는 필드는 여기서 명시적으로 지정)
1004
- * @returns CanvasData<T> 타입의 데이터
1002
+ * @param serverDataArray 서버에서 받은 원본 데이터 배열
1003
+ * @param getCanvasOptions 항목에 대해 CanvasOption을 생성하는 함수
1004
+ * @returns CanvasData<T>[] 타입의 데이터 배열
1005
1005
  *
1006
1006
  * @example
1007
1007
  * ```typescript
1008
1008
  * interface ServerData {
1009
1009
  * id: number; // CanvasOption의 id와 충돌
1010
1010
  * name: string;
1011
+ * lat: number;
1012
+ * lng: number;
1011
1013
  * }
1012
1014
  *
1013
- * const serverData: ServerData = { id: 123, name: "Test" };
1015
+ * const serverDataArray: ServerData[] = [
1016
+ * { id: 1, name: "Item 1", lat: 37.5, lng: 127.0 },
1017
+ * { id: 2, name: "Item 2", lat: 37.6, lng: 127.1 }
1018
+ * ];
1014
1019
  *
1015
1020
  * // ✅ 올바른 사용
1016
- * const canvasData = createCanvasData(serverData, {
1017
- * id: String(serverData.id), // 명시적으로 변환
1018
- * position: new Position(37.5, 127.0)
1019
- * });
1021
+ * const canvasDataArray = createCanvasDataArray(serverDataArray, (item, index) => ({
1022
+ * id: String(item.id), // 각 항목마다 명시적으로 변환
1023
+ * position: new Position(item.lat, item.lng)
1024
+ * }));
1020
1025
  *
1021
- * // canvasData는 CanvasData<ServerData> 타입이며:
1022
- * // - id: string (CanvasOption의 id)
1023
- * // - name: string (서버 데이터의 name)
1024
- * // - position: Position (CanvasOption의 position)
1026
+ * // canvasDataArray는 CanvasData<ServerData>[] 타입입니다
1025
1027
  * ```
1026
1028
  */
1027
1029
 
1028
- function createCanvasData(serverData, canvasOptions) {
1029
- // 서버 데이터와 CanvasOption을 결합
1030
- // CanvasOption의 필드가 우선되므로 충돌하는 필드는 canvasOptions의 값이 사용됨
1031
- return tslib.__assign(tslib.__assign({}, serverData), canvasOptions);
1030
+ function createCanvasDataArray(serverDataArray, getCanvasOptions) {
1031
+ return serverDataArray.map(function (serverData, index) {
1032
+ var canvasOptions = getCanvasOptions(serverData, index); // 서버 데이터와 CanvasOption을 결합
1033
+ // CanvasOption의 필드가 우선되므로 충돌하는 필드는 canvasOptions의 값이 사용됨
1034
+
1035
+ return tslib.__assign(tslib.__assign({}, serverData), canvasOptions);
1036
+ });
1032
1037
  }
1033
1038
 
1034
1039
  /**
@@ -9934,7 +9939,7 @@
9934
9939
  exports.calculateTextBoxWidth = calculateTextBoxWidth;
9935
9940
  exports.computeMarkerOffset = computeMarkerOffset;
9936
9941
  exports.computePolygonOffsets = computePolygonOffsets;
9937
- exports.createCanvasData = createCanvasData;
9942
+ exports.createCanvasDataArray = createCanvasDataArray;
9938
9943
  exports.createMapEventHandlers = createMapEventHandlers;
9939
9944
  exports.getClusterInfo = getClusterInfo;
9940
9945
  exports.getMapOfType = getMapOfType;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mint-ui/map",
3
- "version": "1.2.0-test.41",
3
+ "version": "1.2.0-test.43",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.es.js",
6
6
  "browser": "./dist/index.umd.js",