@mint-ui/map 1.2.0-test.66 → 1.2.0-test.67

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.
@@ -164,20 +164,12 @@ var CanvasMarkerLayer = function (props) {
164
164
  name: 'base-render-shape',
165
165
  perfectDrawEnabled: false,
166
166
  sceneFunc: function (konvaContext) {
167
- var ctx = konvaContext;
168
- var hovered = hoveredItemRef.current; // 뷰포트 컬링: 화면에 보이는 항목만 필터링
167
+ var ctx = konvaContext; // 뷰포트 컬링: 화면에 보이는 항목만 필터링
169
168
 
170
169
  var visibleItems = enableViewportCullingRef.current ? dataRef.current.filter(function (item) {
171
170
  return isInViewport(item);
172
- }) : dataRef.current; // topStageZIndex가 설정된 경우 hover된 항목은 Top Layer에서 처리
173
-
174
- if (topStageZIndex !== undefined && hovered) {
175
- visibleItems = visibleItems.filter(function (item) {
176
- return item.id !== hovered.id;
177
- });
178
- } // Base Layer는 기본 마커만 렌더링 (성능 최적화)
179
- // hover/selected는 Event Layer에서 덧그리므로 Base Layer에서는 제외
180
-
171
+ }) : dataRef.current; // Base Layer는 기본 마커만 렌더링 (hover된 항목도 포함)
172
+ // hover 스타일은 Event Layer와 Top Layer에서 덧그려짐
181
173
 
182
174
  renderBase({
183
175
  ctx: ctx,
@@ -185,8 +177,7 @@ var CanvasMarkerLayer = function (props) {
185
177
  items: visibleItems,
186
178
  selectedIds: new Set(),
187
179
  utils: renderUtils
188
- }); // topStageZIndex가 설정된 경우 hover된 항목은 Top Layer에서 처리하므로 여기서는 스킵
189
- // topStageZIndex가 없으면 성능 우선으로 Base Layer 재렌더링 안 함 (hover된 항목이 뒤편 마커 위로 올라갈 수 있음)
180
+ });
190
181
  }
191
182
  });
192
183
  layer.add(shape);
@@ -221,37 +212,19 @@ var CanvasMarkerLayer = function (props) {
221
212
  })) {
222
213
  selectedItems = tslib.__spreadArray(tslib.__spreadArray([], selectedItems, true), [selectedItemRef.current], false);
223
214
  }
224
- } // topStageZIndex가 설정된 경우 hover 항목은 Top Layer에서 처리
225
- // event 레이어에서는 hover된 항목을 완전히 제외하고 선택된 항목만 렌더링
226
-
227
-
228
- if (topStageZIndex !== undefined && hovered) {
229
- // hover된 항목을 제외한 선택된 항목들 (성능 최적화: 필요할 때만 필터링)
230
- var selectedItemsWithoutHovered = selectedItems.length > 0 ? selectedItems.filter(function (item) {
231
- return item.id !== hovered.id;
232
- }) : selectedItems; // 선택된 항목만 그리기 (hover된 항목은 Top Layer에서 처리)
233
-
234
- renderEvent({
235
- ctx: ctx,
236
- hoveredItem: null,
237
- selectedItem: selectedItemRef.current,
238
- selectedItems: selectedItemsWithoutHovered,
239
- topOnHover: true,
240
- utils: renderUtils
241
- });
242
- } else {
243
- // topStageZIndex가 없으면 hover된 항목을 selectedItems에 추가하지 않음 (성능 우선)
244
- // renderEvent 함수가 hoveredItem을 별도로 처리하므로, selectedItems는 그대로 전달
245
- // 이렇게 하면 hover 변경 시 선택된 항목들을 다시 그리지 않고 hover된 항목만 업데이트됨
246
- renderEvent({
247
- ctx: ctx,
248
- hoveredItem: hovered,
249
- selectedItem: selectedItemRef.current,
250
- selectedItems: selectedItems,
251
- topOnHover: false,
252
- utils: renderUtils
253
- });
254
- }
215
+ } // Event Layer는 hover 효과 선택 상태를 덧그림
216
+ // topStageZIndex가 있으면 hover된 항목은 Top Stage에서도 처리되지만,
217
+ // Event Layer에서도 hover 스타일을 덧그려서 Base Layer 위에 표시됨
218
+
219
+
220
+ renderEvent({
221
+ ctx: ctx,
222
+ hasTopStage: topStageZIndex !== undefined,
223
+ hoveredItem: hovered,
224
+ selectedItem: selectedItemRef.current,
225
+ selectedItems: selectedItems,
226
+ utils: renderUtils
227
+ });
255
228
  }
256
229
  });
257
230
  layer.add(shape);
@@ -316,10 +289,10 @@ var CanvasMarkerLayer = function (props) {
316
289
  var hoverSelectedItems = hoveredIsSelected ? [currentHovered] : [];
317
290
  renderEvent({
318
291
  ctx: ctx,
292
+ hasTopStage: true,
319
293
  hoveredItem: currentHovered,
320
294
  selectedItem: selectedItemRef.current,
321
295
  selectedItems: hoverSelectedItems,
322
- topOnHover: true,
323
296
  utils: renderUtils
324
297
  });
325
298
  } else {
@@ -458,8 +431,8 @@ var CanvasMarkerLayer = function (props) {
458
431
 
459
432
  if (topStageZIndex !== undefined) {
460
433
  // topStageZIndex가 설정된 경우 Top Layer에서 hover된 항목 렌더링
461
- // Base Layer는 hover 상태 변경 시 재렌더링 불필요 (sceneFunc 내에서 hover 항목 제외 처리)
462
- // Event Layer는 선택된 항목만 렌더링하므로 업데이트 필요
434
+ // Base Layer는 모든 마커를 포함하므로 hover 상태 변경 시 재렌더링 불필요
435
+ // Event Layer는 hover 스타일과 선택된 항목을 렌더링하므로 업데이트 필요
463
436
  doRenderEvent();
464
437
  doRenderTop();
465
438
  } else if (renderEvent) {
@@ -554,8 +527,8 @@ var CanvasMarkerLayer = function (props) {
554
527
  controller.setMapCursor('grab');
555
528
 
556
529
  if (topStageZIndex !== undefined) {
557
- // Base Layer는 hover 상태 변경 시 재렌더링 불필요 (sceneFunc 내에서 hover 항목 제외 처리)
558
- // Event Layer는 선택된 항목만 렌더링하므로 업데이트 필요
530
+ // Base Layer는 모든 마커를 포함하므로 hover 상태 변경 시 재렌더링 불필요
531
+ // Event Layer는 hover 스타일과 선택된 항목을 렌더링하므로 업데이트 필요
559
532
  doRenderEvent();
560
533
  doRenderTop();
561
534
  } else if (renderEvent) {
@@ -129,8 +129,8 @@ export interface RenderEventParams<T> {
129
129
  utils: RenderUtils<T>;
130
130
  selectedItems?: CanvasData<T>[];
131
131
  selectedItem?: CanvasData<T> | null;
132
- /** hover 마커를 최상단으로 표시할지 여부 (기본값: false) */
133
- topOnHover?: boolean;
132
+ /** topStageZIndex가 설정되어 있는지 여부 (기본값: false) */
133
+ hasTopStage?: boolean;
134
134
  }
135
135
  /**
136
136
  * 커스텀 렌더링 함수 타입 - Event Layer
package/dist/index.es.js CHANGED
@@ -4075,20 +4075,12 @@ var CanvasMarkerLayer = function (props) {
4075
4075
  name: 'base-render-shape',
4076
4076
  perfectDrawEnabled: false,
4077
4077
  sceneFunc: function (konvaContext) {
4078
- var ctx = konvaContext;
4079
- var hovered = hoveredItemRef.current; // 뷰포트 컬링: 화면에 보이는 항목만 필터링
4078
+ var ctx = konvaContext; // 뷰포트 컬링: 화면에 보이는 항목만 필터링
4080
4079
 
4081
4080
  var visibleItems = enableViewportCullingRef.current ? dataRef.current.filter(function (item) {
4082
4081
  return isInViewport$1(item);
4083
- }) : dataRef.current; // topStageZIndex가 설정된 경우 hover된 항목은 Top Layer에서 처리
4084
-
4085
- if (topStageZIndex !== undefined && hovered) {
4086
- visibleItems = visibleItems.filter(function (item) {
4087
- return item.id !== hovered.id;
4088
- });
4089
- } // Base Layer는 기본 마커만 렌더링 (성능 최적화)
4090
- // hover/selected는 Event Layer에서 덧그리므로 Base Layer에서는 제외
4091
-
4082
+ }) : dataRef.current; // Base Layer는 기본 마커만 렌더링 (hover된 항목도 포함)
4083
+ // hover 스타일은 Event Layer와 Top Layer에서 덧그려짐
4092
4084
 
4093
4085
  renderBase({
4094
4086
  ctx: ctx,
@@ -4096,8 +4088,7 @@ var CanvasMarkerLayer = function (props) {
4096
4088
  items: visibleItems,
4097
4089
  selectedIds: new Set(),
4098
4090
  utils: renderUtils
4099
- }); // topStageZIndex가 설정된 경우 hover된 항목은 Top Layer에서 처리하므로 여기서는 스킵
4100
- // topStageZIndex가 없으면 성능 우선으로 Base Layer 재렌더링 안 함 (hover된 항목이 뒤편 마커 위로 올라갈 수 있음)
4091
+ });
4101
4092
  }
4102
4093
  });
4103
4094
  layer.add(shape);
@@ -4132,37 +4123,19 @@ var CanvasMarkerLayer = function (props) {
4132
4123
  })) {
4133
4124
  selectedItems = __spreadArray(__spreadArray([], selectedItems, true), [selectedItemRef.current], false);
4134
4125
  }
4135
- } // topStageZIndex가 설정된 경우 hover 항목은 Top Layer에서 처리
4136
- // event 레이어에서는 hover된 항목을 완전히 제외하고 선택된 항목만 렌더링
4137
-
4138
-
4139
- if (topStageZIndex !== undefined && hovered) {
4140
- // hover된 항목을 제외한 선택된 항목들 (성능 최적화: 필요할 때만 필터링)
4141
- var selectedItemsWithoutHovered = selectedItems.length > 0 ? selectedItems.filter(function (item) {
4142
- return item.id !== hovered.id;
4143
- }) : selectedItems; // 선택된 항목만 그리기 (hover된 항목은 Top Layer에서 처리)
4144
-
4145
- renderEvent({
4146
- ctx: ctx,
4147
- hoveredItem: null,
4148
- selectedItem: selectedItemRef.current,
4149
- selectedItems: selectedItemsWithoutHovered,
4150
- topOnHover: true,
4151
- utils: renderUtils
4152
- });
4153
- } else {
4154
- // topStageZIndex가 없으면 hover된 항목을 selectedItems에 추가하지 않음 (성능 우선)
4155
- // renderEvent 함수가 hoveredItem을 별도로 처리하므로, selectedItems는 그대로 전달
4156
- // 이렇게 하면 hover 변경 시 선택된 항목들을 다시 그리지 않고 hover된 항목만 업데이트됨
4157
- renderEvent({
4158
- ctx: ctx,
4159
- hoveredItem: hovered,
4160
- selectedItem: selectedItemRef.current,
4161
- selectedItems: selectedItems,
4162
- topOnHover: false,
4163
- utils: renderUtils
4164
- });
4165
- }
4126
+ } // Event Layer는 hover 효과 선택 상태를 덧그림
4127
+ // topStageZIndex가 있으면 hover된 항목은 Top Stage에서도 처리되지만,
4128
+ // Event Layer에서도 hover 스타일을 덧그려서 Base Layer 위에 표시됨
4129
+
4130
+
4131
+ renderEvent({
4132
+ ctx: ctx,
4133
+ hasTopStage: topStageZIndex !== undefined,
4134
+ hoveredItem: hovered,
4135
+ selectedItem: selectedItemRef.current,
4136
+ selectedItems: selectedItems,
4137
+ utils: renderUtils
4138
+ });
4166
4139
  }
4167
4140
  });
4168
4141
  layer.add(shape);
@@ -4227,10 +4200,10 @@ var CanvasMarkerLayer = function (props) {
4227
4200
  var hoverSelectedItems = hoveredIsSelected ? [currentHovered] : [];
4228
4201
  renderEvent({
4229
4202
  ctx: ctx,
4203
+ hasTopStage: true,
4230
4204
  hoveredItem: currentHovered,
4231
4205
  selectedItem: selectedItemRef.current,
4232
4206
  selectedItems: hoverSelectedItems,
4233
- topOnHover: true,
4234
4207
  utils: renderUtils
4235
4208
  });
4236
4209
  } else {
@@ -4369,8 +4342,8 @@ var CanvasMarkerLayer = function (props) {
4369
4342
 
4370
4343
  if (topStageZIndex !== undefined) {
4371
4344
  // topStageZIndex가 설정된 경우 Top Layer에서 hover된 항목 렌더링
4372
- // Base Layer는 hover 상태 변경 시 재렌더링 불필요 (sceneFunc 내에서 hover 항목 제외 처리)
4373
- // Event Layer는 선택된 항목만 렌더링하므로 업데이트 필요
4345
+ // Base Layer는 모든 마커를 포함하므로 hover 상태 변경 시 재렌더링 불필요
4346
+ // Event Layer는 hover 스타일과 선택된 항목을 렌더링하므로 업데이트 필요
4374
4347
  doRenderEvent();
4375
4348
  doRenderTop();
4376
4349
  } else if (renderEvent) {
@@ -4465,8 +4438,8 @@ var CanvasMarkerLayer = function (props) {
4465
4438
  controller.setMapCursor('grab');
4466
4439
 
4467
4440
  if (topStageZIndex !== undefined) {
4468
- // Base Layer는 hover 상태 변경 시 재렌더링 불필요 (sceneFunc 내에서 hover 항목 제외 처리)
4469
- // Event Layer는 선택된 항목만 렌더링하므로 업데이트 필요
4441
+ // Base Layer는 모든 마커를 포함하므로 hover 상태 변경 시 재렌더링 불필요
4442
+ // Event Layer는 hover 스타일과 선택된 항목을 렌더링하므로 업데이트 필요
4470
4443
  doRenderEvent();
4471
4444
  doRenderTop();
4472
4445
  } else if (renderEvent) {
package/dist/index.umd.js CHANGED
@@ -4079,20 +4079,12 @@
4079
4079
  name: 'base-render-shape',
4080
4080
  perfectDrawEnabled: false,
4081
4081
  sceneFunc: function (konvaContext) {
4082
- var ctx = konvaContext;
4083
- var hovered = hoveredItemRef.current; // 뷰포트 컬링: 화면에 보이는 항목만 필터링
4082
+ var ctx = konvaContext; // 뷰포트 컬링: 화면에 보이는 항목만 필터링
4084
4083
 
4085
4084
  var visibleItems = enableViewportCullingRef.current ? dataRef.current.filter(function (item) {
4086
4085
  return isInViewport$1(item);
4087
- }) : dataRef.current; // topStageZIndex가 설정된 경우 hover된 항목은 Top Layer에서 처리
4088
-
4089
- if (topStageZIndex !== undefined && hovered) {
4090
- visibleItems = visibleItems.filter(function (item) {
4091
- return item.id !== hovered.id;
4092
- });
4093
- } // Base Layer는 기본 마커만 렌더링 (성능 최적화)
4094
- // hover/selected는 Event Layer에서 덧그리므로 Base Layer에서는 제외
4095
-
4086
+ }) : dataRef.current; // Base Layer는 기본 마커만 렌더링 (hover된 항목도 포함)
4087
+ // hover 스타일은 Event Layer와 Top Layer에서 덧그려짐
4096
4088
 
4097
4089
  renderBase({
4098
4090
  ctx: ctx,
@@ -4100,8 +4092,7 @@
4100
4092
  items: visibleItems,
4101
4093
  selectedIds: new Set(),
4102
4094
  utils: renderUtils
4103
- }); // topStageZIndex가 설정된 경우 hover된 항목은 Top Layer에서 처리하므로 여기서는 스킵
4104
- // topStageZIndex가 없으면 성능 우선으로 Base Layer 재렌더링 안 함 (hover된 항목이 뒤편 마커 위로 올라갈 수 있음)
4095
+ });
4105
4096
  }
4106
4097
  });
4107
4098
  layer.add(shape);
@@ -4136,37 +4127,19 @@
4136
4127
  })) {
4137
4128
  selectedItems = tslib.__spreadArray(tslib.__spreadArray([], selectedItems, true), [selectedItemRef.current], false);
4138
4129
  }
4139
- } // topStageZIndex가 설정된 경우 hover 항목은 Top Layer에서 처리
4140
- // event 레이어에서는 hover된 항목을 완전히 제외하고 선택된 항목만 렌더링
4141
-
4142
-
4143
- if (topStageZIndex !== undefined && hovered) {
4144
- // hover된 항목을 제외한 선택된 항목들 (성능 최적화: 필요할 때만 필터링)
4145
- var selectedItemsWithoutHovered = selectedItems.length > 0 ? selectedItems.filter(function (item) {
4146
- return item.id !== hovered.id;
4147
- }) : selectedItems; // 선택된 항목만 그리기 (hover된 항목은 Top Layer에서 처리)
4148
-
4149
- renderEvent({
4150
- ctx: ctx,
4151
- hoveredItem: null,
4152
- selectedItem: selectedItemRef.current,
4153
- selectedItems: selectedItemsWithoutHovered,
4154
- topOnHover: true,
4155
- utils: renderUtils
4156
- });
4157
- } else {
4158
- // topStageZIndex가 없으면 hover된 항목을 selectedItems에 추가하지 않음 (성능 우선)
4159
- // renderEvent 함수가 hoveredItem을 별도로 처리하므로, selectedItems는 그대로 전달
4160
- // 이렇게 하면 hover 변경 시 선택된 항목들을 다시 그리지 않고 hover된 항목만 업데이트됨
4161
- renderEvent({
4162
- ctx: ctx,
4163
- hoveredItem: hovered,
4164
- selectedItem: selectedItemRef.current,
4165
- selectedItems: selectedItems,
4166
- topOnHover: false,
4167
- utils: renderUtils
4168
- });
4169
- }
4130
+ } // Event Layer는 hover 효과 선택 상태를 덧그림
4131
+ // topStageZIndex가 있으면 hover된 항목은 Top Stage에서도 처리되지만,
4132
+ // Event Layer에서도 hover 스타일을 덧그려서 Base Layer 위에 표시됨
4133
+
4134
+
4135
+ renderEvent({
4136
+ ctx: ctx,
4137
+ hasTopStage: topStageZIndex !== undefined,
4138
+ hoveredItem: hovered,
4139
+ selectedItem: selectedItemRef.current,
4140
+ selectedItems: selectedItems,
4141
+ utils: renderUtils
4142
+ });
4170
4143
  }
4171
4144
  });
4172
4145
  layer.add(shape);
@@ -4231,10 +4204,10 @@
4231
4204
  var hoverSelectedItems = hoveredIsSelected ? [currentHovered] : [];
4232
4205
  renderEvent({
4233
4206
  ctx: ctx,
4207
+ hasTopStage: true,
4234
4208
  hoveredItem: currentHovered,
4235
4209
  selectedItem: selectedItemRef.current,
4236
4210
  selectedItems: hoverSelectedItems,
4237
- topOnHover: true,
4238
4211
  utils: renderUtils
4239
4212
  });
4240
4213
  } else {
@@ -4373,8 +4346,8 @@
4373
4346
 
4374
4347
  if (topStageZIndex !== undefined) {
4375
4348
  // topStageZIndex가 설정된 경우 Top Layer에서 hover된 항목 렌더링
4376
- // Base Layer는 hover 상태 변경 시 재렌더링 불필요 (sceneFunc 내에서 hover 항목 제외 처리)
4377
- // Event Layer는 선택된 항목만 렌더링하므로 업데이트 필요
4349
+ // Base Layer는 모든 마커를 포함하므로 hover 상태 변경 시 재렌더링 불필요
4350
+ // Event Layer는 hover 스타일과 선택된 항목을 렌더링하므로 업데이트 필요
4378
4351
  doRenderEvent();
4379
4352
  doRenderTop();
4380
4353
  } else if (renderEvent) {
@@ -4469,8 +4442,8 @@
4469
4442
  controller.setMapCursor('grab');
4470
4443
 
4471
4444
  if (topStageZIndex !== undefined) {
4472
- // Base Layer는 hover 상태 변경 시 재렌더링 불필요 (sceneFunc 내에서 hover 항목 제외 처리)
4473
- // Event Layer는 선택된 항목만 렌더링하므로 업데이트 필요
4445
+ // Base Layer는 모든 마커를 포함하므로 hover 상태 변경 시 재렌더링 불필요
4446
+ // Event Layer는 hover 스타일과 선택된 항목을 렌더링하므로 업데이트 필요
4474
4447
  doRenderEvent();
4475
4448
  doRenderTop();
4476
4449
  } else if (renderEvent) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mint-ui/map",
3
- "version": "1.2.0-test.66",
3
+ "version": "1.2.0-test.67",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.es.js",
6
6
  "browser": "./dist/index.umd.js",