@mint-ui/map 1.2.0-test.50 → 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.
package/dist/index.es.js CHANGED
@@ -5757,7 +5757,12 @@ var CanvasMarkerLayer = function (props) {
5757
5757
  * 이 파일은 폴리곤 렌더링을 위한 헬퍼 함수와 팩토리 함수를 제공합니다.
5758
5758
  * GeoJSON MultiPolygon 형식을 지원하며, 도넛 폴리곤(구멍이 있는 폴리곤)도 처리할 수 있습니다.
5759
5759
  */
5760
-
5760
+ // 기본 스타일 상수 (customStyle 방식에서 사용)
5761
+ var DEFAULT_BASE_STYLE = {
5762
+ fillColor: 'rgba(128, 128, 128, 0.5)',
5763
+ strokeColor: 'rgba(0, 0, 0, 0.8)',
5764
+ lineWidth: 2
5765
+ };
5761
5766
  /**
5762
5767
  * 폴리곤 그리기 헬퍼 함수 (도넛 폴리곤 지원)
5763
5768
  *
@@ -5785,6 +5790,7 @@ var CanvasMarkerLayer = function (props) {
5785
5790
  * });
5786
5791
  * ```
5787
5792
  */
5793
+
5788
5794
  var drawPolygon = function (_a) {
5789
5795
  var ctx = _a.ctx,
5790
5796
  polygonOffsets = _a.polygonOffsets,
@@ -6039,13 +6045,13 @@ var renderPolygonEvent = function (baseFillColor, baseStrokeColor, baseLineWidth
6039
6045
  };
6040
6046
  };
6041
6047
  /**
6042
- * 폴리곤 Base 렌더링 함수 팩토리 (함수 방식)
6048
+ * 폴리곤 Base 렌더링 함수 팩토리 (객체 방식)
6043
6049
  *
6044
6050
  * Base Layer에서 사용할 렌더링 함수를 생성합니다.
6045
- * renderStyle 함수를 사용하여 폴리곤의 상태에 따라 스타일을 동적으로 결정합니다.
6051
+ * renderStyle 객체를 사용하여 기본 스타일을 적용합니다.
6046
6052
  *
6047
6053
  * @template T 폴리곤 데이터의 추가 속성 타입
6048
- * @param renderStyle 폴리곤 스타일 함수
6054
+ * @param renderStyle 폴리곤 스타일 객체
6049
6055
  * @returns Base Layer 렌더링 함수
6050
6056
  *
6051
6057
  * @remarks
@@ -6055,17 +6061,13 @@ var renderPolygonEvent = function (baseFillColor, baseStrokeColor, baseLineWidth
6055
6061
  *
6056
6062
  * @example
6057
6063
  * ```typescript
6058
- * const renderBase = renderPolygonBaseWithFunction<MyDataType>(
6059
- * (item, context) => ({
6060
- * fillColor: 'rgba(255, 100, 100, 0.5)',
6061
- * strokeColor: 'rgba(200, 50, 50, 0.8)',
6062
- * lineWidth: 2
6063
- * })
6064
- * );
6064
+ * const renderBase = renderPolygonBaseWithObject<MyDataType>({
6065
+ * base: { fillColor: 'rgba(255, 100, 100, 0.5)', strokeColor: 'rgba(200, 50, 50, 0.8)', lineWidth: 2 }
6066
+ * });
6065
6067
  * ```
6066
6068
  */
6067
6069
 
6068
- var renderPolygonBaseWithFunction = function (renderStyle) {
6070
+ var renderPolygonBaseWithObject = function (renderStyle) {
6069
6071
  return function (_a) {
6070
6072
  var ctx = _a.ctx,
6071
6073
  items = _a.items,
@@ -6080,14 +6082,177 @@ var renderPolygonBaseWithFunction = function (renderStyle) {
6080
6082
  if (!item.paths) continue; // 좌표 변환 (자동 캐싱)
6081
6083
 
6082
6084
  var polygonOffsets = utils.getOrComputePolygonOffsets(item);
6083
- if (!polygonOffsets) continue; // 스타일 함수로 스타일 가져오기 (Base Layer는 선택되지 않은 항목만)
6085
+ if (!polygonOffsets) continue; // Base Layer는 선택되지 않은 항목만 그리므로 base 스타일 사용
6086
+
6087
+ var style = renderStyle.base; // 폴리곤 그리기
6088
+
6089
+ drawPolygon({
6090
+ ctx: ctx,
6091
+ polygonOffsets: polygonOffsets,
6092
+ isDonutPolygon: item.isDonutPolygon || false,
6093
+ fillColor: style.fillColor,
6094
+ strokeColor: style.strokeColor,
6095
+ lineWidth: style.lineWidth
6096
+ });
6097
+ }
6098
+ };
6099
+ };
6100
+ /**
6101
+ * 폴리곤 Event 렌더링 함수 팩토리 (객체 방식)
6102
+ *
6103
+ * Event Layer에서 사용할 렌더링 함수를 생성합니다.
6104
+ * renderStyle 객체를 사용하여 개별 props 방식과 동일한 알고리즘으로 스타일을 적용합니다.
6105
+ *
6106
+ * @template T 폴리곤 데이터의 추가 속성 타입
6107
+ * @param renderStyle 폴리곤 스타일 객체
6108
+ * @returns Event Layer 렌더링 함수
6109
+ *
6110
+ * @remarks
6111
+ * - **렌더링 순서**: 선택된 항목 → 마지막 선택된 항목 → hover된 항목 (최상단)
6112
+ * - **성능**: O(m), m은 선택된 항목 수 + hover된 항목 수
6113
+ * - 좌표 변환은 자동으로 캐싱되어 성능 최적화됨
6114
+ * - **알고리즘**: 개별 props 방식과 동일
6115
+ * - 기본값 설정: selected/active/hovered가 없으면 base 또는 상위 값 사용
6116
+ * - 선택된 항목: selected 스타일
6117
+ * - 마지막 선택된 항목 (호버 안 됨): active 스타일
6118
+ * - 호버된 항목: 선택되어 있으면 active, 아니면 hovered 스타일
6119
+ *
6120
+ * @example
6121
+ * ```typescript
6122
+ * const renderEvent = renderPolygonEventWithObject<MyDataType>({
6123
+ * base: { fillColor: 'rgba(255, 100, 100, 0.5)', strokeColor: 'rgba(200, 50, 50, 0.8)', lineWidth: 2 },
6124
+ * selected: { fillColor: 'rgba(255, 193, 7, 0.7)', strokeColor: 'rgba(255, 152, 0, 1)', lineWidth: 4 },
6125
+ * active: { fillColor: 'rgba(255, 152, 0, 0.8)', strokeColor: 'rgba(255, 87, 34, 1)', lineWidth: 5 },
6126
+ * hovered: { fillColor: 'rgba(100, 150, 255, 0.8)', strokeColor: 'rgba(0, 100, 200, 1)', lineWidth: 3 }
6127
+ * });
6128
+ * ```
6129
+ */
6130
+
6131
+ var renderPolygonEventWithObject = function (renderStyle) {
6132
+ // 기본값 설정 (개별 props 방식과 동일한 로직)
6133
+ var _selectedStyle = renderStyle.selected || renderStyle.base;
6134
+
6135
+ var _activeStyle = renderStyle.active || _selectedStyle;
6136
+
6137
+ var _hoveredStyle = renderStyle.hovered || _selectedStyle;
6138
+
6139
+ return function (_a) {
6140
+ var ctx = _a.ctx,
6141
+ hoveredItem = _a.hoveredItem,
6142
+ utils = _a.utils,
6143
+ selectedItems = _a.selectedItems,
6144
+ selectedItem = _a.selectedItem; // 성능 최적화: selectedItems를 Set으로 변환하여 O(1) 조회 (매번 some() 체크 방지)
6145
+
6146
+ var selectedIdsSet = selectedItems ? new Set(selectedItems.map(function (item) {
6147
+ return item.id;
6148
+ })) : new Set();
6149
+ var hoveredItemId = hoveredItem === null || hoveredItem === void 0 ? void 0 : hoveredItem.id;
6150
+ var selectedItemId = selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.id; // 1. 선택된 항목들 그리기 (마지막 선택 항목과 호버된 항목 제외)
6151
+
6152
+ if (selectedItems === null || selectedItems === void 0 ? void 0 : selectedItems.length) {
6153
+ for (var _i = 0, selectedItems_2 = selectedItems; _i < selectedItems_2.length; _i++) {
6154
+ var item = selectedItems_2[_i]; // 마지막 선택 항목과 호버된 항목은 나중에 따로 그림
6155
+
6156
+ if (item.id === selectedItemId || item.id === hoveredItemId) continue;
6157
+ if (!item.paths) continue;
6158
+ var polygonOffsets = utils.getOrComputePolygonOffsets(item);
6159
+ if (!polygonOffsets) continue;
6160
+ drawPolygon({
6161
+ ctx: ctx,
6162
+ polygonOffsets: polygonOffsets,
6163
+ isDonutPolygon: item.isDonutPolygon || false,
6164
+ fillColor: _selectedStyle.fillColor,
6165
+ strokeColor: _selectedStyle.strokeColor,
6166
+ lineWidth: _selectedStyle.lineWidth
6167
+ });
6168
+ }
6169
+ } // 2. 마지막 선택된 항목 그리기 (호버되지 않은 경우)
6170
+
6171
+
6172
+ if ((selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.paths) && hoveredItemId !== selectedItemId) {
6173
+ var polygonOffsets = utils.getOrComputePolygonOffsets(selectedItem);
6174
+
6175
+ if (polygonOffsets) {
6176
+ drawPolygon({
6177
+ ctx: ctx,
6178
+ polygonOffsets: polygonOffsets,
6179
+ isDonutPolygon: selectedItem.isDonutPolygon || false,
6180
+ fillColor: _activeStyle.fillColor,
6181
+ strokeColor: _activeStyle.strokeColor,
6182
+ lineWidth: _activeStyle.lineWidth
6183
+ });
6184
+ }
6185
+ } // 3. 호버된 항목 그리기 (가장 위에 표시)
6186
+
6187
+
6188
+ if (hoveredItem === null || hoveredItem === void 0 ? void 0 : hoveredItem.paths) {
6189
+ var polygonOffsets = utils.getOrComputePolygonOffsets(hoveredItem);
6190
+ if (!polygonOffsets) return; // 좌표 변환 실패 시 스킵 (return은 렌더링 함수 종료)
6191
+ // 성능 최적화: Set을 사용하여 O(1) 조회 (이전: O(m) some() 체크)
6192
+
6193
+ var isSelected = selectedIdsSet.has(hoveredItem.id);
6194
+ drawPolygon({
6195
+ ctx: ctx,
6196
+ polygonOffsets: polygonOffsets,
6197
+ isDonutPolygon: hoveredItem.isDonutPolygon || false,
6198
+ fillColor: isSelected ? _activeStyle.fillColor : _hoveredStyle.fillColor,
6199
+ strokeColor: isSelected ? _activeStyle.strokeColor : _hoveredStyle.strokeColor,
6200
+ lineWidth: isSelected ? _activeStyle.lineWidth : _hoveredStyle.lineWidth
6201
+ });
6202
+ }
6203
+ };
6204
+ };
6205
+ /**
6206
+ * 폴리곤 Base 렌더링 함수 팩토리 (커스터마이징 방식)
6207
+ *
6208
+ * Base Layer에서 사용할 렌더링 함수를 생성합니다.
6209
+ * customStyle 함수를 사용하여 각 폴리곤의 스타일을 자유롭게 커스터마이징합니다.
6210
+ *
6211
+ * @template T 폴리곤 데이터의 추가 속성 타입
6212
+ * @param customStyle 폴리곤 스타일 커스터마이징 함수
6213
+ * @returns Base Layer 렌더링 함수
6214
+ *
6215
+ * @remarks
6216
+ * - 선택된 항목은 Event Layer에서 그려지므로 Base Layer에서는 스킵
6217
+ * - 성능: O(n), n은 렌더링할 폴리곤 개수
6218
+ * - 좌표 변환은 자동으로 캐싱되어 성능 최적화됨
6219
+ *
6220
+ * @example
6221
+ * ```typescript
6222
+ * const renderBase = renderPolygonBaseWithCustomStyle<MyDataType>(
6223
+ * (item, context, defaultStyle) => {
6224
+ * if (item.someProperty > 100) {
6225
+ * return { fillColor: 'red', strokeColor: 'darkred', lineWidth: 3 };
6226
+ * }
6227
+ * return defaultStyle;
6228
+ * }
6229
+ * );
6230
+ * ```
6231
+ */
6232
+
6233
+ var renderPolygonBaseWithCustomStyle = function (customStyle) {
6234
+ return function (_a) {
6235
+ var ctx = _a.ctx,
6236
+ items = _a.items,
6237
+ selectedIds = _a.selectedIds,
6238
+ utils = _a.utils;
6239
+
6240
+ for (var _i = 0, items_3 = items; _i < items_3.length; _i++) {
6241
+ var item = items_3[_i]; // 선택된 항목은 Event Layer에서 그림 (중복 렌더링 방지)
6242
+
6243
+ if (selectedIds.has(item.id)) continue; // paths가 없으면 스킵
6244
+
6245
+ if (!item.paths) continue; // 좌표 변환 (자동 캐싱)
6246
+
6247
+ var polygonOffsets = utils.getOrComputePolygonOffsets(item);
6248
+ if (!polygonOffsets) continue; // Base Layer는 선택되지 않은 항목만 그리므로 기본 스타일 사용
6084
6249
 
6085
6250
  var context = {
6086
6251
  isSelected: false,
6087
6252
  isHovered: false,
6088
6253
  isActive: false
6089
6254
  };
6090
- var style = renderStyle(item, context); // 폴리곤 그리기
6255
+ var style = customStyle(item, context, DEFAULT_BASE_STYLE); // 폴리곤 그리기
6091
6256
 
6092
6257
  drawPolygon({
6093
6258
  ctx: ctx,
@@ -6101,47 +6266,47 @@ var renderPolygonBaseWithFunction = function (renderStyle) {
6101
6266
  };
6102
6267
  };
6103
6268
  /**
6104
- * 폴리곤 Event 렌더링 함수 팩토리 (함수 방식)
6269
+ * 폴리곤 Event 렌더링 함수 팩토리 (커스터마이징 방식)
6105
6270
  *
6106
6271
  * Event Layer에서 사용할 렌더링 함수를 생성합니다.
6107
- * renderStyle 함수를 사용하여 각 폴리곤의 상태에 따라 스타일을 동적으로 결정합니다.
6272
+ * customStyle 함수를 사용하여 각 폴리곤의 스타일을 자유롭게 커스터마이징합니다.
6108
6273
  *
6109
6274
  * @template T 폴리곤 데이터의 추가 속성 타입
6110
- * @param renderStyle 폴리곤 스타일 함수
6275
+ * @param customStyle 폴리곤 스타일 커스터마이징 함수
6111
6276
  * @returns Event Layer 렌더링 함수
6112
6277
  *
6113
6278
  * @remarks
6114
6279
  * - **렌더링 순서**: 선택된 항목 → 마지막 선택된 항목 → hover된 항목 (최상단)
6115
6280
  * - **성능**: O(m), m은 선택된 항목 수 + hover된 항목 수
6116
6281
  * - 좌표 변환은 자동으로 캐싱되어 성능 최적화됨
6117
- * - hover된 항목이 선택되어 있으면 active 스타일 적용
6118
6282
  *
6119
6283
  * @example
6120
6284
  * ```typescript
6121
- * const renderEvent = renderPolygonEventWithFunction<MyDataType>(
6122
- * (item, context) => {
6285
+ * const renderEvent = renderPolygonEventWithCustomStyle<MyDataType>(
6286
+ * (item, context, defaultStyle) => {
6123
6287
  * if (context.isActive) {
6124
- * return { fillColor: 'rgba(255, 152, 0, 0.8)', strokeColor: 'rgba(255, 87, 34, 1)', lineWidth: 5 };
6288
+ * return { fillColor: 'yellow', strokeColor: 'orange', lineWidth: 5 };
6125
6289
  * }
6126
6290
  * if (context.isHovered) {
6127
- * return { fillColor: 'rgba(100, 150, 255, 0.8)', strokeColor: 'rgba(0, 100, 200, 1)', lineWidth: 3 };
6291
+ * return { fillColor: 'blue', strokeColor: 'darkblue', lineWidth: 3 };
6128
6292
  * }
6129
6293
  * if (context.isSelected) {
6130
- * return { fillColor: 'rgba(255, 193, 7, 0.7)', strokeColor: 'rgba(255, 152, 0, 1)', lineWidth: 4 };
6294
+ * return { fillColor: 'green', strokeColor: 'darkgreen', lineWidth: 4 };
6131
6295
  * }
6132
- * return { fillColor: 'rgba(255, 100, 100, 0.5)', strokeColor: 'rgba(200, 50, 50, 0.8)', lineWidth: 2 };
6296
+ * return defaultStyle;
6133
6297
  * }
6134
6298
  * );
6135
6299
  * ```
6136
6300
  */
6137
6301
 
6138
- var renderPolygonEventWithFunction = function (renderStyle) {
6302
+ var renderPolygonEventWithCustomStyle = function (customStyle) {
6139
6303
  return function (_a) {
6140
6304
  var ctx = _a.ctx,
6141
6305
  hoveredItem = _a.hoveredItem,
6142
6306
  utils = _a.utils,
6143
6307
  selectedItems = _a.selectedItems,
6144
- selectedItem = _a.selectedItem;
6308
+ selectedItem = _a.selectedItem; // 성능 최적화: selectedItems를 Set으로 변환하여 O(1) 조회 (매번 some() 체크 방지)
6309
+
6145
6310
  var selectedIdsSet = selectedItems ? new Set(selectedItems.map(function (item) {
6146
6311
  return item.id;
6147
6312
  })) : new Set();
@@ -6149,8 +6314,8 @@ var renderPolygonEventWithFunction = function (renderStyle) {
6149
6314
  var selectedItemId = selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.id; // 1. 선택된 항목들 그리기 (마지막 선택 항목과 호버된 항목 제외)
6150
6315
 
6151
6316
  if (selectedItems === null || selectedItems === void 0 ? void 0 : selectedItems.length) {
6152
- for (var _i = 0, selectedItems_2 = selectedItems; _i < selectedItems_2.length; _i++) {
6153
- var item = selectedItems_2[_i]; // 마지막 선택 항목과 호버된 항목은 나중에 따로 그림
6317
+ for (var _i = 0, selectedItems_3 = selectedItems; _i < selectedItems_3.length; _i++) {
6318
+ var item = selectedItems_3[_i]; // 마지막 선택 항목과 호버된 항목은 나중에 따로 그림
6154
6319
 
6155
6320
  if (item.id === selectedItemId || item.id === hoveredItemId) continue;
6156
6321
  if (!item.paths) continue;
@@ -6161,7 +6326,7 @@ var renderPolygonEventWithFunction = function (renderStyle) {
6161
6326
  isHovered: false,
6162
6327
  isActive: false
6163
6328
  };
6164
- var style = renderStyle(item, context);
6329
+ var style = customStyle(item, context, DEFAULT_BASE_STYLE);
6165
6330
  drawPolygon({
6166
6331
  ctx: ctx,
6167
6332
  polygonOffsets: polygonOffsets,
@@ -6183,7 +6348,7 @@ var renderPolygonEventWithFunction = function (renderStyle) {
6183
6348
  isHovered: false,
6184
6349
  isActive: true
6185
6350
  };
6186
- var style = renderStyle(selectedItem, context);
6351
+ var style = customStyle(selectedItem, context, DEFAULT_BASE_STYLE);
6187
6352
  drawPolygon({
6188
6353
  ctx: ctx,
6189
6354
  polygonOffsets: polygonOffsets,
@@ -6199,19 +6364,15 @@ var renderPolygonEventWithFunction = function (renderStyle) {
6199
6364
  if (hoveredItem === null || hoveredItem === void 0 ? void 0 : hoveredItem.paths) {
6200
6365
  var polygonOffsets = utils.getOrComputePolygonOffsets(hoveredItem);
6201
6366
  if (!polygonOffsets) return; // 좌표 변환 실패 시 스킵 (return은 렌더링 함수 종료)
6202
- // hover된 항목이 선택되어 있는지 확인
6367
+ // 성능 최적화: Set을 사용하여 O(1) 조회 (이전: O(m) some() 체크)
6203
6368
 
6204
6369
  var isSelected = selectedIdsSet.has(hoveredItem.id);
6205
- var isActive = isSelected && hoveredItem.id === selectedItemId; // 개별 props 방식과 동일한 로직: 선택된 항목이 hover되면 active 스타일을 사용
6206
- // 따라서 선택된 항목이 hover될 때는 isHovered를 false로 설정하여
6207
- // renderStyle 함수에서 isActive를 우선적으로 체크할 수 있도록 함
6208
-
6209
6370
  var context = {
6210
6371
  isSelected: isSelected,
6211
6372
  isHovered: !isSelected,
6212
- isActive: isActive
6373
+ isActive: isSelected && hoveredItem.id === selectedItemId
6213
6374
  };
6214
- var style = renderStyle(hoveredItem, context);
6375
+ var style = customStyle(hoveredItem, context, DEFAULT_BASE_STYLE);
6215
6376
  drawPolygon({
6216
6377
  ctx: ctx,
6217
6378
  polygonOffsets: polygonOffsets,
@@ -6239,13 +6400,16 @@ var CanvasPolygonLayer = function (props) {
6239
6400
  externalSelectedItem = props.selectedItem,
6240
6401
  _e = props.disableInteraction,
6241
6402
  disableInteraction = _e === void 0 ? false : _e,
6242
- options = __rest(props, ["data", "onClick", "enableMultiSelect", "enableViewportCulling", "cullingMargin", "maxCacheSize", "selectedItems", "selectedItem", "disableInteraction"]); // renderStyle이 있으면 함수 방식, baseFillColor가 있으면 개별 props 방식
6403
+ options = __rest(props, ["data", "onClick", "enableMultiSelect", "enableViewportCulling", "cullingMargin", "maxCacheSize", "selectedItems", "selectedItem", "disableInteraction"]); // 가지 방식 하나만 선택: customStyle > renderStyle > 개별 props
6243
6404
 
6244
6405
 
6245
- var isFunctionMode = 'renderStyle' in props && props.renderStyle !== undefined; // 개별 props 방식일 때만 추출
6406
+ var isCustomStyleMode = 'customStyle' in props && props.customStyle !== undefined;
6407
+ var isObjectMode = !isCustomStyleMode && 'renderStyle' in props && props.renderStyle !== undefined;
6408
+ var isIndividualMode = !isCustomStyleMode && !isObjectMode; // 각 방식별 props 추출
6246
6409
 
6247
- var individualProps = isFunctionMode ? undefined : props;
6248
- var functionProps = isFunctionMode ? props : undefined; // --------------------------------------------------------------------------
6410
+ var customStyleProps = isCustomStyleMode ? props : undefined;
6411
+ var objectProps = isObjectMode ? props : undefined;
6412
+ var individualProps = isIndividualMode ? props : undefined; // --------------------------------------------------------------------------
6249
6413
  // Hooks & Context
6250
6414
  // --------------------------------------------------------------------------
6251
6415
 
@@ -6352,11 +6516,11 @@ var CanvasPolygonLayer = function (props) {
6352
6516
  }
6353
6517
  }; // 렌더링 함수 생성 (스타일 지정 방식에 따라 분기)
6354
6518
 
6355
- var renderBase = isFunctionMode && functionProps ? renderPolygonBaseWithFunction(functionProps.renderStyle) : individualProps ? renderPolygonBase(individualProps.baseFillColor, individualProps.baseStrokeColor, individualProps.baseLineWidth) : function () {
6356
- throw new Error('Invalid props: either renderStyle or individual style props must be provided');
6519
+ var renderBase = isCustomStyleMode && customStyleProps ? renderPolygonBaseWithCustomStyle(customStyleProps.customStyle) : isObjectMode && objectProps ? renderPolygonBaseWithObject(objectProps.renderStyle) : isIndividualMode && individualProps ? renderPolygonBase(individualProps.baseFillColor, individualProps.baseStrokeColor, individualProps.baseLineWidth) : function () {
6520
+ throw new Error('Invalid props: one of customStyle, renderStyle, or individual style props must be provided');
6357
6521
  }();
6358
- var renderEvent = isFunctionMode && functionProps ? renderPolygonEventWithFunction(functionProps.renderStyle) : individualProps ? renderPolygonEvent(individualProps.baseFillColor, individualProps.baseStrokeColor, individualProps.baseLineWidth, individualProps.selectedFillColor, individualProps.selectedStrokeColor, individualProps.selectedLineWidth, individualProps.activeFillColor, individualProps.activeStrokeColor, individualProps.activeLineWidth, individualProps.hoveredFillColor, individualProps.hoveredStrokeColor, individualProps.hoveredLineWidth) : function () {
6359
- throw new Error('Invalid props: either renderStyle or individual style props must be provided');
6522
+ var renderEvent = isCustomStyleMode && customStyleProps ? renderPolygonEventWithCustomStyle(customStyleProps.customStyle) : isObjectMode && objectProps ? renderPolygonEventWithObject(objectProps.renderStyle) : isIndividualMode && individualProps ? renderPolygonEvent(individualProps.baseFillColor, individualProps.baseStrokeColor, individualProps.baseLineWidth, individualProps.selectedFillColor, individualProps.selectedStrokeColor, individualProps.selectedLineWidth, individualProps.activeFillColor, individualProps.activeStrokeColor, individualProps.activeLineWidth, individualProps.hoveredFillColor, individualProps.hoveredStrokeColor, individualProps.hoveredLineWidth) : function () {
6523
+ throw new Error('Invalid props: one of customStyle, renderStyle, or individual style props must be provided');
6360
6524
  }(); // Base Layer 렌더링 (뷰포트 컬링 적용)
6361
6525
 
6362
6526
  var doRenderBase = function () {