@mint-ui/map 1.2.0-test.27 → 1.2.0-test.29

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.
@@ -447,13 +447,47 @@ var WoongCanvasLayer = function (props) {
447
447
  var ctx = context; // 클로저로 최신 ref 값 참조
448
448
 
449
449
  var selectedItems = Array.from(selectedItemsMapRef.current.values());
450
- renderEvent({
451
- ctx: ctx,
452
- hoveredItem: hoveredItemRef.current,
453
- utils: renderUtils,
454
- selectedItems: selectedItems,
455
- selectedItem: selectedItemRef.current
456
- });
450
+ var hovered = hoveredItemRef.current; // topOnHover가 true이면 hover된 항목을 최상단에 렌더링
451
+
452
+ if (topOnHover && hovered) {
453
+ // 1. 먼저 일반 항목들 렌더링 (hover된 항목 제외)
454
+ renderEvent({
455
+ ctx: ctx,
456
+ hoveredItem: null,
457
+ utils: renderUtils,
458
+ selectedItems: selectedItems.filter(function (item) {
459
+ return item.id !== hovered.id;
460
+ }),
461
+ selectedItem: selectedItemRef.current
462
+ }); // 2. hover된 항목을 최상단에 렌더링
463
+
464
+ var isHoveredInViewport = enableViewportCulling ? isInViewport(hovered) : true;
465
+
466
+ if (isHoveredInViewport) {
467
+ // hover된 항목이 선택되어 있다면 hoverSelectedItems에 포함시켜서
468
+ // renderEvent에서 hover 스타일만 적용되도록 함
469
+ var hoveredIsSelected = selectedItems.some(function (item) {
470
+ return item.id === hovered.id;
471
+ });
472
+ var hoverSelectedItems = hoveredIsSelected ? [hovered] : [];
473
+ renderEvent({
474
+ ctx: ctx,
475
+ hoveredItem: hovered,
476
+ utils: renderUtils,
477
+ selectedItems: hoverSelectedItems,
478
+ selectedItem: selectedItemRef.current
479
+ });
480
+ }
481
+ } else {
482
+ // topOnHover가 false이거나 hover된 항목이 없으면 일반 렌더링
483
+ renderEvent({
484
+ ctx: ctx,
485
+ hoveredItem: hovered,
486
+ utils: renderUtils,
487
+ selectedItems: selectedItems,
488
+ selectedItem: selectedItemRef.current
489
+ });
490
+ }
457
491
  },
458
492
  perfectDrawEnabled: false,
459
493
  listening: false,
package/dist/index.es.js CHANGED
@@ -6074,13 +6074,47 @@ var WoongCanvasLayer = function (props) {
6074
6074
  var ctx = context; // 클로저로 최신 ref 값 참조
6075
6075
 
6076
6076
  var selectedItems = Array.from(selectedItemsMapRef.current.values());
6077
- renderEvent({
6078
- ctx: ctx,
6079
- hoveredItem: hoveredItemRef.current,
6080
- utils: renderUtils,
6081
- selectedItems: selectedItems,
6082
- selectedItem: selectedItemRef.current
6083
- });
6077
+ var hovered = hoveredItemRef.current; // topOnHover가 true이면 hover된 항목을 최상단에 렌더링
6078
+
6079
+ if (topOnHover && hovered) {
6080
+ // 1. 먼저 일반 항목들 렌더링 (hover된 항목 제외)
6081
+ renderEvent({
6082
+ ctx: ctx,
6083
+ hoveredItem: null,
6084
+ utils: renderUtils,
6085
+ selectedItems: selectedItems.filter(function (item) {
6086
+ return item.id !== hovered.id;
6087
+ }),
6088
+ selectedItem: selectedItemRef.current
6089
+ }); // 2. hover된 항목을 최상단에 렌더링
6090
+
6091
+ var isHoveredInViewport = enableViewportCulling ? isInViewport(hovered) : true;
6092
+
6093
+ if (isHoveredInViewport) {
6094
+ // hover된 항목이 선택되어 있다면 hoverSelectedItems에 포함시켜서
6095
+ // renderEvent에서 hover 스타일만 적용되도록 함
6096
+ var hoveredIsSelected = selectedItems.some(function (item) {
6097
+ return item.id === hovered.id;
6098
+ });
6099
+ var hoverSelectedItems = hoveredIsSelected ? [hovered] : [];
6100
+ renderEvent({
6101
+ ctx: ctx,
6102
+ hoveredItem: hovered,
6103
+ utils: renderUtils,
6104
+ selectedItems: hoverSelectedItems,
6105
+ selectedItem: selectedItemRef.current
6106
+ });
6107
+ }
6108
+ } else {
6109
+ // topOnHover가 false이거나 hover된 항목이 없으면 일반 렌더링
6110
+ renderEvent({
6111
+ ctx: ctx,
6112
+ hoveredItem: hovered,
6113
+ utils: renderUtils,
6114
+ selectedItems: selectedItems,
6115
+ selectedItem: selectedItemRef.current
6116
+ });
6117
+ }
6084
6118
  },
6085
6119
  perfectDrawEnabled: false,
6086
6120
  listening: false,
package/dist/index.umd.js CHANGED
@@ -6078,13 +6078,47 @@
6078
6078
  var ctx = context; // 클로저로 최신 ref 값 참조
6079
6079
 
6080
6080
  var selectedItems = Array.from(selectedItemsMapRef.current.values());
6081
- renderEvent({
6082
- ctx: ctx,
6083
- hoveredItem: hoveredItemRef.current,
6084
- utils: renderUtils,
6085
- selectedItems: selectedItems,
6086
- selectedItem: selectedItemRef.current
6087
- });
6081
+ var hovered = hoveredItemRef.current; // topOnHover가 true이면 hover된 항목을 최상단에 렌더링
6082
+
6083
+ if (topOnHover && hovered) {
6084
+ // 1. 먼저 일반 항목들 렌더링 (hover된 항목 제외)
6085
+ renderEvent({
6086
+ ctx: ctx,
6087
+ hoveredItem: null,
6088
+ utils: renderUtils,
6089
+ selectedItems: selectedItems.filter(function (item) {
6090
+ return item.id !== hovered.id;
6091
+ }),
6092
+ selectedItem: selectedItemRef.current
6093
+ }); // 2. hover된 항목을 최상단에 렌더링
6094
+
6095
+ var isHoveredInViewport = enableViewportCulling ? isInViewport(hovered) : true;
6096
+
6097
+ if (isHoveredInViewport) {
6098
+ // hover된 항목이 선택되어 있다면 hoverSelectedItems에 포함시켜서
6099
+ // renderEvent에서 hover 스타일만 적용되도록 함
6100
+ var hoveredIsSelected = selectedItems.some(function (item) {
6101
+ return item.id === hovered.id;
6102
+ });
6103
+ var hoverSelectedItems = hoveredIsSelected ? [hovered] : [];
6104
+ renderEvent({
6105
+ ctx: ctx,
6106
+ hoveredItem: hovered,
6107
+ utils: renderUtils,
6108
+ selectedItems: hoverSelectedItems,
6109
+ selectedItem: selectedItemRef.current
6110
+ });
6111
+ }
6112
+ } else {
6113
+ // topOnHover가 false이거나 hover된 항목이 없으면 일반 렌더링
6114
+ renderEvent({
6115
+ ctx: ctx,
6116
+ hoveredItem: hovered,
6117
+ utils: renderUtils,
6118
+ selectedItems: selectedItems,
6119
+ selectedItem: selectedItemRef.current
6120
+ });
6121
+ }
6088
6122
  },
6089
6123
  perfectDrawEnabled: false,
6090
6124
  listening: false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mint-ui/map",
3
- "version": "1.2.0-test.27",
3
+ "version": "1.2.0-test.29",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.es.js",
6
6
  "browser": "./dist/index.umd.js",