@mint-ui/map 1.2.0-test.42 → 1.2.0-test.44

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,20 +55,19 @@ export interface CanvasOption {
55
55
  * };
56
56
  *
57
57
  * // ✅ 올바른 사용 (헬퍼 함수 사용)
58
- * const dataArray = createCanvasDataArray([serverData], (item) => ({
59
- * id: String(item.id),
58
+ * const data = createCanvasData(serverData, {
59
+ * id: String(serverData.id),
60
60
  * position: new Position(lat, lng)
61
- * }));
62
- * const data = dataArray[0]; // 단일 항목이 필요한 경우
61
+ * });
63
62
  * ```
64
63
  */
65
64
  export declare type CanvasData<T = {}> = T & CanvasOption;
66
65
  /**
67
- * 서버 데이터 배열을 CanvasData 배열로 변환하는 헬퍼 함수
66
+ * 서버 데이터를 CanvasData 변환하는 헬퍼 함수들
68
67
  *
69
- * @see createCanvasDataArray in ./utils.ts
68
+ * @see createCanvasData, createCanvasDataArray in ./utils.ts
70
69
  */
71
- export { createCanvasDataArray } from './utils';
70
+ export { createCanvasData, createCanvasDataArray } from './utils';
72
71
  /**
73
72
  * 렌더링 유틸리티 함수들 (좌표 변환)
74
73
  *
@@ -14,4 +14,5 @@ exports.CanvasDataType = void 0;
14
14
  CanvasDataType["POLYGON"] = "POLYGON";
15
15
  })(exports.CanvasDataType || (exports.CanvasDataType = {}));
16
16
 
17
+ exports.createCanvasData = utils.createCanvasData;
17
18
  exports.createCanvasDataArray = utils.createCanvasDataArray;
@@ -60,6 +60,39 @@ export declare const calculateTextBoxWidth: ({ text, fontConfig, padding, minWid
60
60
  padding: number;
61
61
  minWidth: number;
62
62
  }) => number;
63
+ /**
64
+ * 서버 데이터를 CanvasData로 변환하는 헬퍼 함수
65
+ *
66
+ * 서버 데이터의 필드가 CanvasOption과 충돌하는 경우 (예: id, position 등),
67
+ * 이 함수를 사용하여 명시적으로 매핑할 수 있습니다.
68
+ *
69
+ * @template T 서버에서 받은 원본 데이터 타입
70
+ * @param serverData 서버에서 받은 원본 데이터
71
+ * @param canvasOptions CanvasOption 필드들 (충돌하는 필드는 여기서 명시적으로 지정)
72
+ * @returns CanvasData<T> 타입의 데이터
73
+ *
74
+ * @example
75
+ * ```typescript
76
+ * interface ServerData {
77
+ * id: number; // CanvasOption의 id와 충돌
78
+ * name: string;
79
+ * }
80
+ *
81
+ * const serverData: ServerData = { id: 123, name: "Test" };
82
+ *
83
+ * // ✅ 올바른 사용
84
+ * const canvasData = createCanvasData(serverData, {
85
+ * id: String(serverData.id), // 명시적으로 변환
86
+ * position: new Position(37.5, 127.0)
87
+ * });
88
+ *
89
+ * // canvasData는 CanvasData<ServerData> 타입이며:
90
+ * // - id: string (CanvasOption의 id)
91
+ * // - name: string (서버 데이터의 name)
92
+ * // - position: Position (CanvasOption의 position)
93
+ * ```
94
+ */
95
+ export declare function createCanvasData<T extends Record<string, any>>(serverData: T, canvasOptions: CanvasOption): CanvasData<T>;
63
96
  /**
64
97
  * 서버 데이터 배열을 CanvasData 배열로 변환하는 헬퍼 함수
65
98
  *
@@ -212,6 +212,44 @@ var calculateTextBoxWidth = function (_a) {
212
212
  var textWidth = tempCtx.measureText(text).width;
213
213
  return Math.max(minWidth, textWidth + padding);
214
214
  };
215
+ /**
216
+ * 서버 데이터를 CanvasData로 변환하는 헬퍼 함수
217
+ *
218
+ * 서버 데이터의 필드가 CanvasOption과 충돌하는 경우 (예: id, position 등),
219
+ * 이 함수를 사용하여 명시적으로 매핑할 수 있습니다.
220
+ *
221
+ * @template T 서버에서 받은 원본 데이터 타입
222
+ * @param serverData 서버에서 받은 원본 데이터
223
+ * @param canvasOptions CanvasOption 필드들 (충돌하는 필드는 여기서 명시적으로 지정)
224
+ * @returns CanvasData<T> 타입의 데이터
225
+ *
226
+ * @example
227
+ * ```typescript
228
+ * interface ServerData {
229
+ * id: number; // CanvasOption의 id와 충돌
230
+ * name: string;
231
+ * }
232
+ *
233
+ * const serverData: ServerData = { id: 123, name: "Test" };
234
+ *
235
+ * // ✅ 올바른 사용
236
+ * const canvasData = createCanvasData(serverData, {
237
+ * id: String(serverData.id), // 명시적으로 변환
238
+ * position: new Position(37.5, 127.0)
239
+ * });
240
+ *
241
+ * // canvasData는 CanvasData<ServerData> 타입이며:
242
+ * // - id: string (CanvasOption의 id)
243
+ * // - name: string (서버 데이터의 name)
244
+ * // - position: Position (CanvasOption의 position)
245
+ * ```
246
+ */
247
+
248
+ function createCanvasData(serverData, canvasOptions) {
249
+ // 서버 데이터와 CanvasOption을 결합
250
+ // CanvasOption의 필드가 우선되므로 충돌하는 필드는 canvasOptions의 값이 사용됨
251
+ return tslib.__assign(tslib.__assign({}, serverData), canvasOptions);
252
+ }
215
253
  /**
216
254
  * 서버 데이터 배열을 CanvasData 배열로 변환하는 헬퍼 함수
217
255
  *
@@ -249,16 +287,15 @@ var calculateTextBoxWidth = function (_a) {
249
287
 
250
288
  function createCanvasDataArray(serverDataArray, getCanvasOptions) {
251
289
  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);
290
+ var canvasOptions = getCanvasOptions(serverData, index);
291
+ return createCanvasData(serverData, canvasOptions);
256
292
  });
257
293
  }
258
294
 
259
295
  exports.calculateTextBoxWidth = calculateTextBoxWidth;
260
296
  exports.computeMarkerOffset = computeMarkerOffset;
261
297
  exports.computePolygonOffsets = computePolygonOffsets;
298
+ exports.createCanvasData = createCanvasData;
262
299
  exports.createCanvasDataArray = createCanvasDataArray;
263
300
  exports.hexToRgba = hexToRgba;
264
301
  exports.isPointInMarkerData = isPointInMarkerData;
package/dist/index.es.js CHANGED
@@ -988,6 +988,44 @@ var calculateTextBoxWidth = function (_a) {
988
988
  var textWidth = tempCtx.measureText(text).width;
989
989
  return Math.max(minWidth, textWidth + padding);
990
990
  };
991
+ /**
992
+ * 서버 데이터를 CanvasData로 변환하는 헬퍼 함수
993
+ *
994
+ * 서버 데이터의 필드가 CanvasOption과 충돌하는 경우 (예: id, position 등),
995
+ * 이 함수를 사용하여 명시적으로 매핑할 수 있습니다.
996
+ *
997
+ * @template T 서버에서 받은 원본 데이터 타입
998
+ * @param serverData 서버에서 받은 원본 데이터
999
+ * @param canvasOptions CanvasOption 필드들 (충돌하는 필드는 여기서 명시적으로 지정)
1000
+ * @returns CanvasData<T> 타입의 데이터
1001
+ *
1002
+ * @example
1003
+ * ```typescript
1004
+ * interface ServerData {
1005
+ * id: number; // CanvasOption의 id와 충돌
1006
+ * name: string;
1007
+ * }
1008
+ *
1009
+ * const serverData: ServerData = { id: 123, name: "Test" };
1010
+ *
1011
+ * // ✅ 올바른 사용
1012
+ * const canvasData = createCanvasData(serverData, {
1013
+ * id: String(serverData.id), // 명시적으로 변환
1014
+ * position: new Position(37.5, 127.0)
1015
+ * });
1016
+ *
1017
+ * // canvasData는 CanvasData<ServerData> 타입이며:
1018
+ * // - id: string (CanvasOption의 id)
1019
+ * // - name: string (서버 데이터의 name)
1020
+ * // - position: Position (CanvasOption의 position)
1021
+ * ```
1022
+ */
1023
+
1024
+ function createCanvasData(serverData, canvasOptions) {
1025
+ // 서버 데이터와 CanvasOption을 결합
1026
+ // CanvasOption의 필드가 우선되므로 충돌하는 필드는 canvasOptions의 값이 사용됨
1027
+ return __assign(__assign({}, serverData), canvasOptions);
1028
+ }
991
1029
  /**
992
1030
  * 서버 데이터 배열을 CanvasData 배열로 변환하는 헬퍼 함수
993
1031
  *
@@ -1025,10 +1063,8 @@ var calculateTextBoxWidth = function (_a) {
1025
1063
 
1026
1064
  function createCanvasDataArray(serverDataArray, getCanvasOptions) {
1027
1065
  return serverDataArray.map(function (serverData, index) {
1028
- var canvasOptions = getCanvasOptions(serverData, index); // 서버 데이터와 CanvasOption을 결합
1029
- // CanvasOption의 필드가 우선되므로 충돌하는 필드는 canvasOptions의 값이 사용됨
1030
-
1031
- return __assign(__assign({}, serverData), canvasOptions);
1066
+ var canvasOptions = getCanvasOptions(serverData, index);
1067
+ return createCanvasData(serverData, canvasOptions);
1032
1068
  });
1033
1069
  }
1034
1070
 
@@ -9885,4 +9921,4 @@ function MintMap(_a) {
9885
9921
  }), loading));
9886
9922
  }
9887
9923
 
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 };
9924
+ 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, 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,6 +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
76
  exports.createCanvasDataArray = utils.createCanvasDataArray;
76
77
  exports.hexToRgba = utils.hexToRgba;
77
78
  exports.isPointInMarkerData = utils.isPointInMarkerData;
package/dist/index.umd.js CHANGED
@@ -992,6 +992,44 @@
992
992
  var textWidth = tempCtx.measureText(text).width;
993
993
  return Math.max(minWidth, textWidth + padding);
994
994
  };
995
+ /**
996
+ * 서버 데이터를 CanvasData로 변환하는 헬퍼 함수
997
+ *
998
+ * 서버 데이터의 필드가 CanvasOption과 충돌하는 경우 (예: id, position 등),
999
+ * 이 함수를 사용하여 명시적으로 매핑할 수 있습니다.
1000
+ *
1001
+ * @template T 서버에서 받은 원본 데이터 타입
1002
+ * @param serverData 서버에서 받은 원본 데이터
1003
+ * @param canvasOptions CanvasOption 필드들 (충돌하는 필드는 여기서 명시적으로 지정)
1004
+ * @returns CanvasData<T> 타입의 데이터
1005
+ *
1006
+ * @example
1007
+ * ```typescript
1008
+ * interface ServerData {
1009
+ * id: number; // CanvasOption의 id와 충돌
1010
+ * name: string;
1011
+ * }
1012
+ *
1013
+ * const serverData: ServerData = { id: 123, name: "Test" };
1014
+ *
1015
+ * // ✅ 올바른 사용
1016
+ * const canvasData = createCanvasData(serverData, {
1017
+ * id: String(serverData.id), // 명시적으로 변환
1018
+ * position: new Position(37.5, 127.0)
1019
+ * });
1020
+ *
1021
+ * // canvasData는 CanvasData<ServerData> 타입이며:
1022
+ * // - id: string (CanvasOption의 id)
1023
+ * // - name: string (서버 데이터의 name)
1024
+ * // - position: Position (CanvasOption의 position)
1025
+ * ```
1026
+ */
1027
+
1028
+ function createCanvasData(serverData, canvasOptions) {
1029
+ // 서버 데이터와 CanvasOption을 결합
1030
+ // CanvasOption의 필드가 우선되므로 충돌하는 필드는 canvasOptions의 값이 사용됨
1031
+ return tslib.__assign(tslib.__assign({}, serverData), canvasOptions);
1032
+ }
995
1033
  /**
996
1034
  * 서버 데이터 배열을 CanvasData 배열로 변환하는 헬퍼 함수
997
1035
  *
@@ -1029,10 +1067,8 @@
1029
1067
 
1030
1068
  function createCanvasDataArray(serverDataArray, getCanvasOptions) {
1031
1069
  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);
1070
+ var canvasOptions = getCanvasOptions(serverData, index);
1071
+ return createCanvasData(serverData, canvasOptions);
1036
1072
  });
1037
1073
  }
1038
1074
 
@@ -9939,6 +9975,7 @@
9939
9975
  exports.calculateTextBoxWidth = calculateTextBoxWidth;
9940
9976
  exports.computeMarkerOffset = computeMarkerOffset;
9941
9977
  exports.computePolygonOffsets = computePolygonOffsets;
9978
+ exports.createCanvasData = createCanvasData;
9942
9979
  exports.createCanvasDataArray = createCanvasDataArray;
9943
9980
  exports.createMapEventHandlers = createMapEventHandlers;
9944
9981
  exports.getClusterInfo = getClusterInfo;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mint-ui/map",
3
- "version": "1.2.0-test.42",
3
+ "version": "1.2.0-test.44",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.es.js",
6
6
  "browser": "./dist/index.umd.js",