@mint-ui/map 1.2.0-test.57 → 1.2.0-test.58
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { MarkerOptions } from '../../../types';
|
|
2
|
+
import { MarkerOptions, Position } from '../../../types';
|
|
3
3
|
import { CanvasData, CustomRenderBase, CustomRenderEvent } from '../shared';
|
|
4
4
|
export { CanvasDataType, CanvasProvider, LRUCache, SpatialHashGrid } from '../shared';
|
|
5
5
|
export type { CanvasData, CanvasOption, CustomRenderBase, CustomRenderEvent, RenderBaseParams, RenderEventParams, RenderUtils } from '../shared';
|
|
@@ -14,7 +14,12 @@ export interface CanvasMarkerLayerProps<T> extends Pick<MarkerOptions, 'zIndex'
|
|
|
14
14
|
/** 마커 클릭 시 호출되는 콜백 함수 */
|
|
15
15
|
onClick?: (payload: CanvasData<T>, selectedIds: Set<string>) => void;
|
|
16
16
|
/** 마커에 마우스 오버 시 호출되는 콜백 함수 */
|
|
17
|
-
onMouseOver?: (payload: CanvasData<T>
|
|
17
|
+
onMouseOver?: (payload: CanvasData<T> & {
|
|
18
|
+
boundingBox?: {
|
|
19
|
+
bottomRight: Position;
|
|
20
|
+
leftTop: Position;
|
|
21
|
+
};
|
|
22
|
+
}) => void;
|
|
18
23
|
/** 마커에서 마우스 아웃 시 호출되는 콜백 함수 */
|
|
19
24
|
onMouseOut?: (payload: CanvasData<T>) => void;
|
|
20
25
|
/** 다중 선택 활성화 여부 (기본값: false) */
|
|
@@ -7,7 +7,7 @@ var Konva = require('konva');
|
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var reactDom = require('react-dom');
|
|
9
9
|
var MapDrawables = require('../../../types/MapDrawables.js');
|
|
10
|
-
require('../../../types/MapTypes.js');
|
|
10
|
+
var MapTypes = require('../../../types/MapTypes.js');
|
|
11
11
|
require('../../../types/MapEventTypes.js');
|
|
12
12
|
var MintMapProvider = require('../../provider/MintMapProvider.js');
|
|
13
13
|
var context = require('../shared/context.js');
|
|
@@ -377,6 +377,29 @@ var CanvasMarkerLayer = function (props) {
|
|
|
377
377
|
if (!clickedData) return;
|
|
378
378
|
handleLocalClick(clickedData);
|
|
379
379
|
onClick === null || onClick === void 0 ? void 0 : onClick(clickedData, selectedIdsRef.current);
|
|
380
|
+
}; // 마커 바운딩 박스의 왼쪽 상단과 우측 하단을 위도/경도로 변환
|
|
381
|
+
|
|
382
|
+
|
|
383
|
+
var getMarkerBoundingBoxCoordinates = function (item) {
|
|
384
|
+
try {
|
|
385
|
+
var offset = getOrComputeMarkerOffset(item);
|
|
386
|
+
if (!offset) return null;
|
|
387
|
+
var boundingBox = computeBoundingBox(item);
|
|
388
|
+
if (!boundingBox) return null; // 왼쪽 상단 좌표 (minX, minY)
|
|
389
|
+
|
|
390
|
+
var leftTopOffset = new MapTypes.Offset(boundingBox.minX, boundingBox.minY);
|
|
391
|
+
var leftTop = controller.offsetToPosition(leftTopOffset); // 우측 하단 좌표 (maxX, maxY)
|
|
392
|
+
|
|
393
|
+
var bottomRightOffset = new MapTypes.Offset(boundingBox.maxX, boundingBox.maxY);
|
|
394
|
+
var bottomRight = controller.offsetToPosition(bottomRightOffset);
|
|
395
|
+
return {
|
|
396
|
+
bottomRight: bottomRight,
|
|
397
|
+
leftTop: leftTop
|
|
398
|
+
};
|
|
399
|
+
} catch (error) {
|
|
400
|
+
console.error('[CanvasMarkerLayer] getMarkerBoundingBoxCoordinates error:', error, item);
|
|
401
|
+
return null;
|
|
402
|
+
}
|
|
380
403
|
}; // 마우스 이동 이벤트 핸들러 (hover 감지)
|
|
381
404
|
|
|
382
405
|
|
|
@@ -391,7 +414,16 @@ var CanvasMarkerLayer = function (props) {
|
|
|
391
414
|
if (prevHovered === hoveredItem) return;
|
|
392
415
|
setHovered(hoveredItem);
|
|
393
416
|
if (prevHovered) onMouseOut === null || onMouseOut === void 0 ? void 0 : onMouseOut(prevHovered);
|
|
394
|
-
|
|
417
|
+
|
|
418
|
+
if (hoveredItem) {
|
|
419
|
+
var boundingBox = getMarkerBoundingBoxCoordinates(hoveredItem); // boundingBox를 항상 포함하도록 수정
|
|
420
|
+
|
|
421
|
+
var payload = tslib.__assign(tslib.__assign({}, hoveredItem), {
|
|
422
|
+
boundingBox: boundingBox || undefined
|
|
423
|
+
});
|
|
424
|
+
|
|
425
|
+
onMouseOver === null || onMouseOver === void 0 ? void 0 : onMouseOver(payload);
|
|
426
|
+
}
|
|
395
427
|
}; // 마우스가 맵 영역을 벗어날 때 hover 상태 초기화
|
|
396
428
|
|
|
397
429
|
|
|
@@ -500,6 +532,24 @@ var CanvasMarkerLayer = function (props) {
|
|
|
500
532
|
var componentInstance = null;
|
|
501
533
|
|
|
502
534
|
if (context$1) {
|
|
535
|
+
// context를 통한 onMouseOver 호출 시에도 boundingBox를 포함하도록 래핑
|
|
536
|
+
var wrappedOnMouseOver = onMouseOver ? function (payload) {
|
|
537
|
+
var boundingBox = getMarkerBoundingBoxCoordinates(payload);
|
|
538
|
+
|
|
539
|
+
if (boundingBox) {
|
|
540
|
+
var enhancedPayload = tslib.__assign(tslib.__assign({}, payload), {
|
|
541
|
+
boundingBox: boundingBox
|
|
542
|
+
});
|
|
543
|
+
|
|
544
|
+
onMouseOver(enhancedPayload);
|
|
545
|
+
} else {
|
|
546
|
+
var enhancedPayload = tslib.__assign(tslib.__assign({}, payload), {
|
|
547
|
+
boundingBox: undefined
|
|
548
|
+
});
|
|
549
|
+
|
|
550
|
+
onMouseOver(enhancedPayload);
|
|
551
|
+
}
|
|
552
|
+
} : undefined;
|
|
503
553
|
componentInstance = {
|
|
504
554
|
findData: findData,
|
|
505
555
|
getSelectedIds: function () {
|
|
@@ -514,7 +564,7 @@ var CanvasMarkerLayer = function (props) {
|
|
|
514
564
|
},
|
|
515
565
|
onClick: onClick,
|
|
516
566
|
onMouseOut: onMouseOut,
|
|
517
|
-
onMouseOver:
|
|
567
|
+
onMouseOver: wrappedOnMouseOver,
|
|
518
568
|
setHovered: setHovered,
|
|
519
569
|
zIndex: currentZIndex
|
|
520
570
|
};
|
package/dist/index.es.js
CHANGED
|
@@ -4218,6 +4218,29 @@ var CanvasMarkerLayer = function (props) {
|
|
|
4218
4218
|
if (!clickedData) return;
|
|
4219
4219
|
handleLocalClick(clickedData);
|
|
4220
4220
|
onClick === null || onClick === void 0 ? void 0 : onClick(clickedData, selectedIdsRef.current);
|
|
4221
|
+
}; // 마커 바운딩 박스의 왼쪽 상단과 우측 하단을 위도/경도로 변환
|
|
4222
|
+
|
|
4223
|
+
|
|
4224
|
+
var getMarkerBoundingBoxCoordinates = function (item) {
|
|
4225
|
+
try {
|
|
4226
|
+
var offset = getOrComputeMarkerOffset(item);
|
|
4227
|
+
if (!offset) return null;
|
|
4228
|
+
var boundingBox = computeBoundingBox(item);
|
|
4229
|
+
if (!boundingBox) return null; // 왼쪽 상단 좌표 (minX, minY)
|
|
4230
|
+
|
|
4231
|
+
var leftTopOffset = new Offset(boundingBox.minX, boundingBox.minY);
|
|
4232
|
+
var leftTop = controller.offsetToPosition(leftTopOffset); // 우측 하단 좌표 (maxX, maxY)
|
|
4233
|
+
|
|
4234
|
+
var bottomRightOffset = new Offset(boundingBox.maxX, boundingBox.maxY);
|
|
4235
|
+
var bottomRight = controller.offsetToPosition(bottomRightOffset);
|
|
4236
|
+
return {
|
|
4237
|
+
bottomRight: bottomRight,
|
|
4238
|
+
leftTop: leftTop
|
|
4239
|
+
};
|
|
4240
|
+
} catch (error) {
|
|
4241
|
+
console.error('[CanvasMarkerLayer] getMarkerBoundingBoxCoordinates error:', error, item);
|
|
4242
|
+
return null;
|
|
4243
|
+
}
|
|
4221
4244
|
}; // 마우스 이동 이벤트 핸들러 (hover 감지)
|
|
4222
4245
|
|
|
4223
4246
|
|
|
@@ -4232,7 +4255,16 @@ var CanvasMarkerLayer = function (props) {
|
|
|
4232
4255
|
if (prevHovered === hoveredItem) return;
|
|
4233
4256
|
setHovered(hoveredItem);
|
|
4234
4257
|
if (prevHovered) onMouseOut === null || onMouseOut === void 0 ? void 0 : onMouseOut(prevHovered);
|
|
4235
|
-
|
|
4258
|
+
|
|
4259
|
+
if (hoveredItem) {
|
|
4260
|
+
var boundingBox = getMarkerBoundingBoxCoordinates(hoveredItem); // boundingBox를 항상 포함하도록 수정
|
|
4261
|
+
|
|
4262
|
+
var payload = __assign(__assign({}, hoveredItem), {
|
|
4263
|
+
boundingBox: boundingBox || undefined
|
|
4264
|
+
});
|
|
4265
|
+
|
|
4266
|
+
onMouseOver === null || onMouseOver === void 0 ? void 0 : onMouseOver(payload);
|
|
4267
|
+
}
|
|
4236
4268
|
}; // 마우스가 맵 영역을 벗어날 때 hover 상태 초기화
|
|
4237
4269
|
|
|
4238
4270
|
|
|
@@ -4341,6 +4373,24 @@ var CanvasMarkerLayer = function (props) {
|
|
|
4341
4373
|
var componentInstance = null;
|
|
4342
4374
|
|
|
4343
4375
|
if (context) {
|
|
4376
|
+
// context를 통한 onMouseOver 호출 시에도 boundingBox를 포함하도록 래핑
|
|
4377
|
+
var wrappedOnMouseOver = onMouseOver ? function (payload) {
|
|
4378
|
+
var boundingBox = getMarkerBoundingBoxCoordinates(payload);
|
|
4379
|
+
|
|
4380
|
+
if (boundingBox) {
|
|
4381
|
+
var enhancedPayload = __assign(__assign({}, payload), {
|
|
4382
|
+
boundingBox: boundingBox
|
|
4383
|
+
});
|
|
4384
|
+
|
|
4385
|
+
onMouseOver(enhancedPayload);
|
|
4386
|
+
} else {
|
|
4387
|
+
var enhancedPayload = __assign(__assign({}, payload), {
|
|
4388
|
+
boundingBox: undefined
|
|
4389
|
+
});
|
|
4390
|
+
|
|
4391
|
+
onMouseOver(enhancedPayload);
|
|
4392
|
+
}
|
|
4393
|
+
} : undefined;
|
|
4344
4394
|
componentInstance = {
|
|
4345
4395
|
findData: findData,
|
|
4346
4396
|
getSelectedIds: function () {
|
|
@@ -4355,7 +4405,7 @@ var CanvasMarkerLayer = function (props) {
|
|
|
4355
4405
|
},
|
|
4356
4406
|
onClick: onClick,
|
|
4357
4407
|
onMouseOut: onMouseOut,
|
|
4358
|
-
onMouseOver:
|
|
4408
|
+
onMouseOver: wrappedOnMouseOver,
|
|
4359
4409
|
setHovered: setHovered,
|
|
4360
4410
|
zIndex: currentZIndex
|
|
4361
4411
|
};
|
package/dist/index.umd.js
CHANGED
|
@@ -4222,6 +4222,29 @@
|
|
|
4222
4222
|
if (!clickedData) return;
|
|
4223
4223
|
handleLocalClick(clickedData);
|
|
4224
4224
|
onClick === null || onClick === void 0 ? void 0 : onClick(clickedData, selectedIdsRef.current);
|
|
4225
|
+
}; // 마커 바운딩 박스의 왼쪽 상단과 우측 하단을 위도/경도로 변환
|
|
4226
|
+
|
|
4227
|
+
|
|
4228
|
+
var getMarkerBoundingBoxCoordinates = function (item) {
|
|
4229
|
+
try {
|
|
4230
|
+
var offset = getOrComputeMarkerOffset(item);
|
|
4231
|
+
if (!offset) return null;
|
|
4232
|
+
var boundingBox = computeBoundingBox(item);
|
|
4233
|
+
if (!boundingBox) return null; // 왼쪽 상단 좌표 (minX, minY)
|
|
4234
|
+
|
|
4235
|
+
var leftTopOffset = new Offset(boundingBox.minX, boundingBox.minY);
|
|
4236
|
+
var leftTop = controller.offsetToPosition(leftTopOffset); // 우측 하단 좌표 (maxX, maxY)
|
|
4237
|
+
|
|
4238
|
+
var bottomRightOffset = new Offset(boundingBox.maxX, boundingBox.maxY);
|
|
4239
|
+
var bottomRight = controller.offsetToPosition(bottomRightOffset);
|
|
4240
|
+
return {
|
|
4241
|
+
bottomRight: bottomRight,
|
|
4242
|
+
leftTop: leftTop
|
|
4243
|
+
};
|
|
4244
|
+
} catch (error) {
|
|
4245
|
+
console.error('[CanvasMarkerLayer] getMarkerBoundingBoxCoordinates error:', error, item);
|
|
4246
|
+
return null;
|
|
4247
|
+
}
|
|
4225
4248
|
}; // 마우스 이동 이벤트 핸들러 (hover 감지)
|
|
4226
4249
|
|
|
4227
4250
|
|
|
@@ -4236,7 +4259,16 @@
|
|
|
4236
4259
|
if (prevHovered === hoveredItem) return;
|
|
4237
4260
|
setHovered(hoveredItem);
|
|
4238
4261
|
if (prevHovered) onMouseOut === null || onMouseOut === void 0 ? void 0 : onMouseOut(prevHovered);
|
|
4239
|
-
|
|
4262
|
+
|
|
4263
|
+
if (hoveredItem) {
|
|
4264
|
+
var boundingBox = getMarkerBoundingBoxCoordinates(hoveredItem); // boundingBox를 항상 포함하도록 수정
|
|
4265
|
+
|
|
4266
|
+
var payload = tslib.__assign(tslib.__assign({}, hoveredItem), {
|
|
4267
|
+
boundingBox: boundingBox || undefined
|
|
4268
|
+
});
|
|
4269
|
+
|
|
4270
|
+
onMouseOver === null || onMouseOver === void 0 ? void 0 : onMouseOver(payload);
|
|
4271
|
+
}
|
|
4240
4272
|
}; // 마우스가 맵 영역을 벗어날 때 hover 상태 초기화
|
|
4241
4273
|
|
|
4242
4274
|
|
|
@@ -4345,6 +4377,24 @@
|
|
|
4345
4377
|
var componentInstance = null;
|
|
4346
4378
|
|
|
4347
4379
|
if (context) {
|
|
4380
|
+
// context를 통한 onMouseOver 호출 시에도 boundingBox를 포함하도록 래핑
|
|
4381
|
+
var wrappedOnMouseOver = onMouseOver ? function (payload) {
|
|
4382
|
+
var boundingBox = getMarkerBoundingBoxCoordinates(payload);
|
|
4383
|
+
|
|
4384
|
+
if (boundingBox) {
|
|
4385
|
+
var enhancedPayload = tslib.__assign(tslib.__assign({}, payload), {
|
|
4386
|
+
boundingBox: boundingBox
|
|
4387
|
+
});
|
|
4388
|
+
|
|
4389
|
+
onMouseOver(enhancedPayload);
|
|
4390
|
+
} else {
|
|
4391
|
+
var enhancedPayload = tslib.__assign(tslib.__assign({}, payload), {
|
|
4392
|
+
boundingBox: undefined
|
|
4393
|
+
});
|
|
4394
|
+
|
|
4395
|
+
onMouseOver(enhancedPayload);
|
|
4396
|
+
}
|
|
4397
|
+
} : undefined;
|
|
4348
4398
|
componentInstance = {
|
|
4349
4399
|
findData: findData,
|
|
4350
4400
|
getSelectedIds: function () {
|
|
@@ -4359,7 +4409,7 @@
|
|
|
4359
4409
|
},
|
|
4360
4410
|
onClick: onClick,
|
|
4361
4411
|
onMouseOut: onMouseOut,
|
|
4362
|
-
onMouseOver:
|
|
4412
|
+
onMouseOver: wrappedOnMouseOver,
|
|
4363
4413
|
setHovered: setHovered,
|
|
4364
4414
|
zIndex: currentZIndex
|
|
4365
4415
|
};
|