@reltio/components 1.4.2006 → 1.4.2007
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/MapChart/components/Legend/styles.d.ts +1 -1
- package/ProfileResizablePanes/styles.d.ts +1 -1
- package/ReltioMap/ReltioMap.d.ts +15 -11
- package/ReltioMap/ReltioMap.js +49 -39
- package/ReltioMap/ReltioMap.spec.js +232 -116
- package/ReltioMap/components/ClusteredMarkers/ClusteredMarkers.d.ts +11 -0
- package/ReltioMap/components/ClusteredMarkers/ClusteredMarkers.js +58 -0
- package/ReltioMap/components/ClusteredMarkers/CustomClusterRenderer.d.ts +8 -0
- package/ReltioMap/components/ClusteredMarkers/CustomClusterRenderer.js +18 -0
- package/ReltioMap/components/ClusteredMarkers/index.d.ts +1 -0
- package/ReltioMap/components/ClusteredMarkers/index.js +1 -0
- package/ReltioMap/components/DrawingManager/DrawingManager.d.ts +2 -0
- package/ReltioMap/components/DrawingManager/DrawingManager.js +5 -0
- package/ReltioMap/components/DrawingManager/index.d.ts +1 -0
- package/ReltioMap/components/DrawingManager/index.js +1 -0
- package/ReltioMap/components/DrawingManager/useDrawingManager.d.ts +7 -0
- package/ReltioMap/components/DrawingManager/useDrawingManager.js +36 -0
- package/ReltioMap/components/EntityMarker/EntityMarker.d.ts +8 -7
- package/ReltioMap/components/EntityMarker/EntityMarker.js +23 -23
- package/ReltioMap/components/EntityMarker/EntityMarker.spec.js +151 -66
- package/ReltioMap/components/Polygon/Polygon.d.ts +7 -0
- package/ReltioMap/components/Polygon/Polygon.js +8 -0
- package/ReltioMap/components/Polygon/index.d.ts +1 -0
- package/ReltioMap/components/Polygon/index.js +1 -0
- package/ReltioMap/components/Polygon/usePolygon.d.ts +10 -0
- package/ReltioMap/components/Polygon/usePolygon.js +35 -0
- package/ReltioMap/components/TopCenterMapControls/TopCenterMapControls.d.ts +2 -1
- package/ReltioMap/components/TopCenterMapControls/TopCenterMapControls.js +6 -5
- package/ReltioMap/components/TopRightMapControls/TopRightMapControls.d.ts +2 -1
- package/ReltioMap/components/TopRightMapControls/TopRightMapControls.js +3 -2
- package/ReltioMap/components/TopRightMapControls/styles.js +1 -1
- package/ReltioMap/helpers.d.ts +3 -2
- package/ReltioMap/types.d.ts +6 -3
- package/cjs/MapChart/components/Legend/styles.d.ts +1 -1
- package/cjs/ProfileResizablePanes/styles.d.ts +1 -1
- package/cjs/ReltioMap/ReltioMap.d.ts +15 -11
- package/cjs/ReltioMap/ReltioMap.js +48 -38
- package/cjs/ReltioMap/ReltioMap.spec.js +230 -114
- package/cjs/ReltioMap/components/ClusteredMarkers/ClusteredMarkers.d.ts +11 -0
- package/cjs/ReltioMap/components/ClusteredMarkers/ClusteredMarkers.js +84 -0
- package/cjs/ReltioMap/components/ClusteredMarkers/CustomClusterRenderer.d.ts +8 -0
- package/cjs/ReltioMap/components/ClusteredMarkers/CustomClusterRenderer.js +21 -0
- package/cjs/ReltioMap/components/ClusteredMarkers/index.d.ts +1 -0
- package/cjs/ReltioMap/components/ClusteredMarkers/index.js +5 -0
- package/cjs/ReltioMap/components/DrawingManager/DrawingManager.d.ts +2 -0
- package/cjs/ReltioMap/components/DrawingManager/DrawingManager.js +9 -0
- package/cjs/ReltioMap/components/DrawingManager/index.d.ts +1 -0
- package/cjs/ReltioMap/components/DrawingManager/index.js +5 -0
- package/cjs/ReltioMap/components/DrawingManager/useDrawingManager.d.ts +7 -0
- package/cjs/ReltioMap/components/DrawingManager/useDrawingManager.js +40 -0
- package/cjs/ReltioMap/components/EntityMarker/EntityMarker.d.ts +8 -7
- package/cjs/ReltioMap/components/EntityMarker/EntityMarker.js +22 -22
- package/cjs/ReltioMap/components/EntityMarker/EntityMarker.spec.js +151 -66
- package/cjs/ReltioMap/components/Polygon/Polygon.d.ts +7 -0
- package/cjs/ReltioMap/components/Polygon/Polygon.js +11 -0
- package/cjs/ReltioMap/components/Polygon/index.d.ts +1 -0
- package/cjs/ReltioMap/components/Polygon/index.js +5 -0
- package/cjs/ReltioMap/components/Polygon/usePolygon.d.ts +10 -0
- package/cjs/ReltioMap/components/Polygon/usePolygon.js +39 -0
- package/cjs/ReltioMap/components/TopCenterMapControls/TopCenterMapControls.d.ts +2 -1
- package/cjs/ReltioMap/components/TopCenterMapControls/TopCenterMapControls.js +6 -5
- package/cjs/ReltioMap/components/TopRightMapControls/TopRightMapControls.d.ts +2 -1
- package/cjs/ReltioMap/components/TopRightMapControls/TopRightMapControls.js +3 -2
- package/cjs/ReltioMap/components/TopRightMapControls/styles.js +1 -1
- package/cjs/ReltioMap/helpers.d.ts +3 -2
- package/cjs/ReltioMap/types.d.ts +6 -3
- package/cjs/hooks/useMarkers/referenceHelpers.js +25 -2
- package/cjs/hooks/useMarkers/referenceHelpers.test.js +10 -1
- package/hooks/useMarkers/referenceHelpers.js +25 -2
- package/hooks/useMarkers/referenceHelpers.test.js +10 -1
- package/package.json +3 -2
|
@@ -33,35 +33,57 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
33
33
|
__setModuleDefault(result, mod);
|
|
34
34
|
return result;
|
|
35
35
|
};
|
|
36
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
37
|
+
var t = {};
|
|
38
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
39
|
+
t[p] = s[p];
|
|
40
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
41
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
42
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
43
|
+
t[p[i]] = s[p[i]];
|
|
44
|
+
}
|
|
45
|
+
return t;
|
|
46
|
+
};
|
|
36
47
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
48
|
exports.ReltioMap = void 0;
|
|
38
49
|
var react_1 = __importStar(require("react"));
|
|
39
50
|
var ramda_1 = require("ramda");
|
|
40
|
-
var
|
|
41
|
-
var EntityMarker_1 = require("./components/EntityMarker");
|
|
42
|
-
var MapControlContainer_1 = require("./components/MapControlContainer");
|
|
51
|
+
var react_google_maps_1 = require("@vis.gl/react-google-maps");
|
|
43
52
|
var TopRightMapControls_1 = require("./components/TopRightMapControls");
|
|
44
53
|
var TopCenterMapControls_1 = require("./components/TopCenterMapControls");
|
|
45
54
|
var helpers_1 = require("./helpers");
|
|
46
55
|
var constants_1 = require("../constants");
|
|
47
56
|
var useFitMapBounds_1 = require("./useFitMapBounds");
|
|
48
57
|
var styles_1 = require("./styles");
|
|
58
|
+
var ClusteredMarkers_1 = require("./components/ClusteredMarkers");
|
|
59
|
+
var Polygon_1 = require("./components/Polygon");
|
|
60
|
+
var DrawingManager_1 = require("./components/DrawingManager");
|
|
49
61
|
var ON_MAP_MOVE_DEBOUNCE_INTERVAL = 1000;
|
|
50
62
|
var libraries = ['drawing'];
|
|
51
63
|
var ReltioMap = function (_a) {
|
|
52
|
-
var
|
|
64
|
+
var mapKey = _a.mapKey, restProps = __rest(_a, ["mapKey"]);
|
|
65
|
+
return (react_1.default.createElement(react_google_maps_1.APIProvider, { apiKey: mapKey, libraries: libraries },
|
|
66
|
+
react_1.default.createElement(InternalReltioMap, __assign({}, restProps))));
|
|
67
|
+
};
|
|
68
|
+
exports.ReltioMap = ReltioMap;
|
|
69
|
+
var emptyObject = {};
|
|
70
|
+
var emptyArray = [];
|
|
71
|
+
var InternalReltioMap = (0, react_1.memo)(function (_a) {
|
|
72
|
+
var mapId = _a.mapId, _b = _a.markers, markers = _b === void 0 ? emptyArray : _b, defaultZoom = _a.defaultZoom, defaultCenter = _a.defaultCenter, loadingElement = _a.loadingElement, isSearchOnMapMove = _a.isSearchOnMapMove, isSearchEnabled = _a.isSearchEnabled, activeOverlay = _a.activeOverlay, _c = _a.overlayOptions, overlayOptions = _c === void 0 ? emptyObject : _c, _d = _a.drawingModes, drawingModes = _d === void 0 ? emptyArray : _d, markerClusterer = _a.markerClusterer, markerClustererOptions = _a.markerClustererOptions, _f = _a.mapOptions, mapOptions = _f === void 0 ? emptyObject : _f, mapContainerClassName = _a.mapContainerClassName, _g = _a.onMapBoundsChanged, onMapBoundsChanged = _g === void 0 ? ramda_1.identity : _g, _h = _a.onOverlayUpdated, onOverlayUpdated = _h === void 0 ? ramda_1.identity : _h, _j = _a.onMarkerClicked, onMarkerClicked = _j === void 0 ? ramda_1.identity : _j;
|
|
53
73
|
var styles = (0, styles_1.useStyles)();
|
|
54
|
-
var _j = (0, api_1.useJsApiLoader)({
|
|
55
|
-
googleMapsApiKey: mapKey,
|
|
56
|
-
libraries: libraries
|
|
57
|
-
}), isLoaded = _j.isLoaded, loadError = _j.loadError;
|
|
58
74
|
var mapMoveEndTimer = (0, react_1.useRef)(null);
|
|
59
|
-
var
|
|
60
|
-
var
|
|
61
|
-
var
|
|
75
|
+
var isLoaded = (0, react_google_maps_1.useApiIsLoaded)();
|
|
76
|
+
var map = (0, react_google_maps_1.useMap)();
|
|
77
|
+
var _k = (0, react_1.useState)(null), polygon = _k[0], setPolygon = _k[1];
|
|
78
|
+
var _l = (0, react_1.useState)(null), drawingMode = _l[0], setDrawingMode = _l[1];
|
|
62
79
|
(0, useFitMapBounds_1.useFitMapBounds)({ markers: markers, activeOverlay: activeOverlay, map: map, isSearchOnMapMove: isSearchOnMapMove });
|
|
63
80
|
var allOverlayOptions = (0, react_1.useMemo)(function () { return (__assign(__assign({}, constants_1.DEFAULT_OVERLAY_OPTIONS), overlayOptions)); }, [overlayOptions]);
|
|
64
81
|
var googleMapOptions = (0, react_1.useMemo)(function () { return (__assign(__assign({}, constants_1.DEFAULT_GOOGLE_MAP_OPTIONS), mapOptions)); }, [mapOptions]);
|
|
82
|
+
var drawingManagerOptions = (0, react_1.useMemo)(function () { return ({
|
|
83
|
+
drawingControl: false,
|
|
84
|
+
polygonOptions: allOverlayOptions
|
|
85
|
+
}); }, [allOverlayOptions]);
|
|
86
|
+
var polygonOptions = (0, react_1.useMemo)(function () { return (__assign({ paths: activeOverlay === null || activeOverlay === void 0 ? void 0 : activeOverlay.path, editable: true }, allOverlayOptions)); }, [activeOverlay, allOverlayOptions]);
|
|
65
87
|
var handleChangeIsSearchOnMapMove = (0, react_1.useCallback)(function (isSearchOnMapMove) {
|
|
66
88
|
onMapBoundsChanged(isSearchOnMapMove ? (0, helpers_1.getMapBoundsPolygon)(map) : null);
|
|
67
89
|
setDrawingMode(null);
|
|
@@ -81,7 +103,7 @@ var ReltioMap = function (_a) {
|
|
|
81
103
|
clearTimeout(mapMoveEndTimer.current);
|
|
82
104
|
mapMoveEndTimer.current = setTimeout(handleMapMoveEnd, ON_MAP_MOVE_DEBOUNCE_INTERVAL);
|
|
83
105
|
}, [handleMapMoveEnd, isSearchOnMapMove]);
|
|
84
|
-
var handleOverlayChange = (0, react_1.useCallback)(function (
|
|
106
|
+
var handleOverlayChange = (0, react_1.useCallback)(function (_e, propOverlay) {
|
|
85
107
|
var _a;
|
|
86
108
|
var _b;
|
|
87
109
|
var polygonStateOverlay = polygon && { type: constants_1.MAP_DRAWING_MODES.POLYGON, overlay: polygon };
|
|
@@ -95,7 +117,10 @@ var ReltioMap = function (_a) {
|
|
|
95
117
|
.getArray()
|
|
96
118
|
.map(function (latlng) { return [latlng.lat(), latlng.lng()]; });
|
|
97
119
|
};
|
|
98
|
-
var getCircleParameters = function () { return ({
|
|
120
|
+
var getCircleParameters = function () { return ({
|
|
121
|
+
radius: overlay.getRadius() / 1000,
|
|
122
|
+
center: overlay.getCenter()
|
|
123
|
+
}); };
|
|
99
124
|
var typeActions = (_a = {},
|
|
100
125
|
_a[constants_1.MAP_DRAWING_MODES.POLYGON] = getPolygonLatLngCoordinates,
|
|
101
126
|
_a[constants_1.MAP_DRAWING_MODES.CIRCLE] = getCircleParameters,
|
|
@@ -113,17 +138,6 @@ var ReltioMap = function (_a) {
|
|
|
113
138
|
var handleClearOverlay = (0, react_1.useCallback)(function () {
|
|
114
139
|
onOverlayUpdated(null);
|
|
115
140
|
}, [onOverlayUpdated]);
|
|
116
|
-
var renderMarkers = function (clusterer) {
|
|
117
|
-
return markers
|
|
118
|
-
.filter((0, ramda_1.prop)('point'))
|
|
119
|
-
.map(function (marker) { return (react_1.default.createElement(EntityMarker_1.EntityMarker, { key: marker.id, marker: marker, clusterer: clusterer, onClick: onMarkerClicked })); });
|
|
120
|
-
};
|
|
121
|
-
var renderMarkerClusterer = function (options) {
|
|
122
|
-
return react_1.default.createElement(api_1.MarkerClusterer, { options: options }, renderMarkers);
|
|
123
|
-
};
|
|
124
|
-
if (loadError) {
|
|
125
|
-
return null;
|
|
126
|
-
}
|
|
127
141
|
if (!isLoaded) {
|
|
128
142
|
return loadingElement;
|
|
129
143
|
}
|
|
@@ -131,17 +145,13 @@ var ReltioMap = function (_a) {
|
|
|
131
145
|
var shouldRenderRightMapControls = map && isSearchEnabled && Boolean(drawingModes.length);
|
|
132
146
|
var shouldRenderCenterMapControls = map && isSearchEnabled;
|
|
133
147
|
var shouldRenderPolygon = !(0, helpers_1.getDrawingMode)(drawingMode) && activeOverlay && (0, ramda_1.propEq)('type', constants_1.MAP_DRAWING_MODES.POLYGON, activeOverlay);
|
|
134
|
-
return (react_1.default.createElement(
|
|
135
|
-
shouldRenderRightMapControls && (react_1.default.createElement(
|
|
136
|
-
react_1.default.createElement(TopRightMapControls_1.TopRightMapControls, { hasActiveOverlay: !!activeOverlay, drawingModes: drawingModes, drawingMode: drawingMode, onDrawingModeChanged: setDrawingMode, onClearOverlay: handleClearOverlay }))),
|
|
137
|
-
shouldRenderCenterMapControls && (react_1.default.createElement(
|
|
138
|
-
react_1.default.createElement(TopCenterMapControls_1.TopCenterMapControls, { onChangeIsSearchOnMapMove: handleChangeIsSearchOnMapMove, isSearchOnMapMove: isSearchOnMapMove }))),
|
|
139
|
-
markerClusterer
|
|
140
|
-
shouldRenderPolygon && (react_1.default.createElement(
|
|
141
|
-
shouldRenderDrawingManager && (react_1.default.createElement(
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
polygonOptions: allOverlayOptions
|
|
145
|
-
} }))));
|
|
146
|
-
};
|
|
147
|
-
exports.ReltioMap = ReltioMap;
|
|
148
|
+
return (react_1.default.createElement(react_google_maps_1.Map, __assign({ mapId: mapId || 'mapId' }, googleMapOptions, { defaultZoom: defaultZoom, defaultCenter: defaultCenter, onZoomChanged: handleMapMoveStart, onDragstart: handleMapMoveStart, onIdle: handleMapIdle, className: mapContainerClassName }),
|
|
149
|
+
shouldRenderRightMapControls && (react_1.default.createElement(react_google_maps_1.MapControl, { position: react_google_maps_1.ControlPosition.TOP_RIGHT },
|
|
150
|
+
react_1.default.createElement(TopRightMapControls_1.TopRightMapControls, { className: styles.mapControlContainer, hasActiveOverlay: !!activeOverlay, drawingModes: drawingModes, drawingMode: drawingMode, onDrawingModeChanged: setDrawingMode, onClearOverlay: handleClearOverlay }))),
|
|
151
|
+
shouldRenderCenterMapControls && (react_1.default.createElement(react_google_maps_1.MapControl, { position: react_google_maps_1.ControlPosition.TOP_CENTER },
|
|
152
|
+
react_1.default.createElement(TopCenterMapControls_1.TopCenterMapControls, { className: styles.mapControlContainer, onChangeIsSearchOnMapMove: handleChangeIsSearchOnMapMove, isSearchOnMapMove: isSearchOnMapMove }))),
|
|
153
|
+
react_1.default.createElement(ClusteredMarkers_1.ClusteredMarkers, { entityMarkers: markers, enabledClustering: markerClusterer, options: markerClustererOptions, onMarkerClick: onMarkerClicked }),
|
|
154
|
+
shouldRenderPolygon && (react_1.default.createElement(Polygon_1.Polygon, { onInit: setPolygon, options: polygonOptions, onMouseUp: handleOverlayChange, onDragEnd: handleOverlayChange })),
|
|
155
|
+
shouldRenderDrawingManager && (react_1.default.createElement(DrawingManager_1.DrawingManager, { onPolygonComplete: handleOverlayComplete(constants_1.MAP_DRAWING_MODES.POLYGON), onCircleComplete: handleOverlayComplete(constants_1.MAP_DRAWING_MODES.CIRCLE), drawingMode: (0, helpers_1.getDrawingMode)(drawingMode), options: drawingManagerOptions }))));
|
|
156
|
+
});
|
|
157
|
+
InternalReltioMap.displayName = 'InternalReltioMap';
|
|
@@ -69,6 +69,15 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
69
69
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
70
70
|
}
|
|
71
71
|
};
|
|
72
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
73
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
74
|
+
if (ar || !(i in from)) {
|
|
75
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
76
|
+
ar[i] = from[i];
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
80
|
+
};
|
|
72
81
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
73
82
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
74
83
|
};
|
|
@@ -78,22 +87,20 @@ var react_2 = require("@testing-library/react");
|
|
|
78
87
|
var user_event_1 = __importDefault(require("@testing-library/user-event"));
|
|
79
88
|
var ramda_1 = require("ramda");
|
|
80
89
|
var jest_mocks_1 = require("@googlemaps/jest-mocks");
|
|
81
|
-
var api_1 = require("@react-google-maps/api");
|
|
82
90
|
var constants_1 = require("../constants");
|
|
83
91
|
var helpers = __importStar(require("./helpers"));
|
|
84
92
|
var ReltioMap_1 = require("./ReltioMap");
|
|
85
|
-
jest.mock('@react-google-maps
|
|
86
|
-
jest.mock('./components/MapControlContainer', function () { return ({
|
|
87
|
-
MapControlContainer: function (_a) {
|
|
93
|
+
jest.mock('@vis.gl/react-google-maps', function () { return (__assign(__assign({}, jest.requireActual('@vis.gl/react-google-maps')), { MapControl: function (_a) {
|
|
88
94
|
var children = _a.children;
|
|
89
95
|
return react_1.default.createElement(react_1.default.Fragment, null, children);
|
|
90
|
-
}
|
|
91
|
-
}); });
|
|
96
|
+
} })); });
|
|
92
97
|
describe('ReltioMap tests', function () {
|
|
93
98
|
var defaultProps = {
|
|
94
99
|
onOverlayUpdated: jest.fn(),
|
|
95
100
|
onMarkerClicked: jest.fn(),
|
|
96
101
|
isSearchEnabled: true,
|
|
102
|
+
defaultZoom: 10,
|
|
103
|
+
defaultCenter: { lat: 1, lng: 1 },
|
|
97
104
|
mapKey: 'mapKey',
|
|
98
105
|
loadingElement: react_1.default.createElement("div", null, "loading element")
|
|
99
106
|
};
|
|
@@ -103,15 +110,30 @@ describe('ReltioMap tests', function () {
|
|
|
103
110
|
return __assign(__assign({}, (0, react_2.render)(react_1.default.createElement(ReltioMap_1.ReltioMap, __assign({}, props)))), { user: user });
|
|
104
111
|
};
|
|
105
112
|
var drawingManagerInstance;
|
|
113
|
+
var drawingManagerConstructorSpy = jest.fn();
|
|
106
114
|
beforeAll(function () {
|
|
107
115
|
(0, jest_mocks_1.initialize)();
|
|
116
|
+
var OriginalMap = google.maps.Map;
|
|
117
|
+
jest.spyOn(google.maps, 'Map').mockImplementation(function () {
|
|
118
|
+
var args = [];
|
|
119
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
120
|
+
args[_i] = arguments[_i];
|
|
121
|
+
}
|
|
122
|
+
return new (OriginalMap.bind.apply(OriginalMap, __spreadArray([void 0], args, false)))();
|
|
123
|
+
});
|
|
108
124
|
global.google.maps.drawing.DrawingManager = /** @class */ (function () {
|
|
109
125
|
function DrawingManager() {
|
|
126
|
+
var args = [];
|
|
127
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
128
|
+
args[_i] = arguments[_i];
|
|
129
|
+
}
|
|
130
|
+
this.addListener = jest.fn();
|
|
110
131
|
this.getDrawingMode = jest.fn();
|
|
111
132
|
this.getMap = jest.fn();
|
|
112
133
|
this.setDrawingMode = jest.fn();
|
|
113
134
|
this.setMap = jest.fn();
|
|
114
135
|
this.setOptions = jest.fn();
|
|
136
|
+
drawingManagerConstructorSpy.apply(void 0, args);
|
|
115
137
|
drawingManagerInstance = this;
|
|
116
138
|
}
|
|
117
139
|
return DrawingManager;
|
|
@@ -132,71 +154,101 @@ describe('ReltioMap tests', function () {
|
|
|
132
154
|
});
|
|
133
155
|
beforeEach(function () {
|
|
134
156
|
drawingManagerInstance = null;
|
|
135
|
-
api_1.useJsApiLoader.mockReturnValue({ isLoaded: true, loadError: null });
|
|
136
157
|
});
|
|
137
158
|
afterEach(function () {
|
|
138
159
|
jest.clearAllMocks();
|
|
139
160
|
jest_mocks_1.mockInstances.clearAll();
|
|
140
161
|
});
|
|
141
162
|
var getEventHandler = function (target, event) {
|
|
142
|
-
|
|
163
|
+
var _a, _b;
|
|
164
|
+
return ((_a = (0, ramda_1.findLast)(function (_a) {
|
|
143
165
|
var instance = _a[0], googleEventName = _a[1];
|
|
144
166
|
return instance === target && googleEventName === event;
|
|
145
|
-
}, global.google.maps.event.addListener.mock.calls)[2]
|
|
167
|
+
}, global.google.maps.event.addListener.mock.calls)) === null || _a === void 0 ? void 0 : _a[2]) || ((_b = (0, ramda_1.findLast)(function (_a) {
|
|
168
|
+
var name = _a[0];
|
|
169
|
+
return name === event;
|
|
170
|
+
}, target.addListener.mock.calls)) === null || _b === void 0 ? void 0 : _b[1]);
|
|
146
171
|
};
|
|
147
172
|
var getLastInstance = function (instance) { return (0, ramda_1.last)(jest_mocks_1.mockInstances.get(instance)); };
|
|
148
173
|
describe('general behaviour', function () {
|
|
149
174
|
it('should render map controls', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
175
|
+
var _a;
|
|
176
|
+
return __generator(this, function (_b) {
|
|
177
|
+
switch (_b.label) {
|
|
178
|
+
case 0:
|
|
179
|
+
setUpRTL(__assign(__assign({}, defaultProps), { drawingModes: [constants_1.MAP_DRAWING_MODES.POLYGON] }));
|
|
180
|
+
_a = expect;
|
|
181
|
+
return [4 /*yield*/, react_2.screen.findByLabelText('Draw area')];
|
|
182
|
+
case 1:
|
|
183
|
+
_a.apply(void 0, [_b.sent()]).toBeInTheDocument();
|
|
184
|
+
expect(react_2.screen.getByText('Search as I move the map')).toBeInTheDocument();
|
|
185
|
+
return [2 /*return*/];
|
|
186
|
+
}
|
|
155
187
|
});
|
|
156
188
|
}); });
|
|
157
189
|
it('should combine mapOptions', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
158
|
-
var mapOptions
|
|
190
|
+
var mapOptions;
|
|
159
191
|
return __generator(this, function (_a) {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
192
|
+
switch (_a.label) {
|
|
193
|
+
case 0:
|
|
194
|
+
mapOptions = { mapTypeControl: true };
|
|
195
|
+
setUpRTL(__assign(__assign({}, defaultProps), { drawingModes: [constants_1.MAP_DRAWING_MODES.POLYGON], mapOptions: mapOptions }));
|
|
196
|
+
return [4 /*yield*/, (0, react_2.waitFor)(function () {
|
|
197
|
+
expect(google.maps.Map).toHaveBeenCalledWith(expect.any(HTMLElement), expect.objectContaining({
|
|
198
|
+
fullscreenControl: false,
|
|
199
|
+
mapTypeControl: true,
|
|
200
|
+
streetViewControl: false
|
|
201
|
+
}));
|
|
202
|
+
})];
|
|
203
|
+
case 1:
|
|
204
|
+
_a.sent();
|
|
205
|
+
return [2 /*return*/];
|
|
206
|
+
}
|
|
169
207
|
});
|
|
170
208
|
}); });
|
|
171
|
-
it('should not render map controls', function () {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
label: 'testMarker'
|
|
209
|
+
it('should not render map controls', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
210
|
+
return __generator(this, function (_a) {
|
|
211
|
+
switch (_a.label) {
|
|
212
|
+
case 0:
|
|
213
|
+
setUpRTL(__assign(__assign({}, defaultProps), { drawingModes: [constants_1.MAP_DRAWING_MODES.POLYGON], isSearchEnabled: false }));
|
|
214
|
+
return [4 /*yield*/, (0, react_2.waitFor)(function () {
|
|
215
|
+
expect(react_2.screen.queryByLabelText('Draw area')).not.toBeInTheDocument();
|
|
216
|
+
})];
|
|
217
|
+
case 1:
|
|
218
|
+
_a.sent();
|
|
219
|
+
expect(react_2.screen.queryByText('Search as I move the map')).not.toBeInTheDocument();
|
|
220
|
+
return [2 /*return*/];
|
|
184
221
|
}
|
|
185
|
-
];
|
|
186
|
-
var onMarkerClick = jest.fn();
|
|
187
|
-
setUpRTL(__assign(__assign({}, defaultProps), { drawingModes: [constants_1.MAP_DRAWING_MODES.POLYGON], onMarkerClicked: onMarkerClick, markers: markers }));
|
|
188
|
-
var markerMock = getLastInstance(jest_mocks_1.Marker);
|
|
189
|
-
getEventHandler(markerMock, 'click')();
|
|
190
|
-
expect(markerMock.setIcon).toHaveBeenCalled();
|
|
191
|
-
expect(onMarkerClick).toHaveBeenCalled();
|
|
192
|
-
});
|
|
193
|
-
it('should call useJsApiLoader with right params', function () {
|
|
194
|
-
setUpRTL(__assign({}, defaultProps));
|
|
195
|
-
expect(api_1.useJsApiLoader).toHaveBeenCalledWith({
|
|
196
|
-
googleMapsApiKey: 'mapKey',
|
|
197
|
-
libraries: ['drawing']
|
|
198
222
|
});
|
|
199
|
-
});
|
|
223
|
+
}); });
|
|
224
|
+
it('should render markers correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
225
|
+
var markers, onMarkerClick, markerMock;
|
|
226
|
+
return __generator(this, function (_a) {
|
|
227
|
+
switch (_a.label) {
|
|
228
|
+
case 0:
|
|
229
|
+
markers = [
|
|
230
|
+
{
|
|
231
|
+
point: { lat: 1, lng: 1 },
|
|
232
|
+
visible: true,
|
|
233
|
+
id: '123',
|
|
234
|
+
entity: { uri: 'testUri', type: 'testType' },
|
|
235
|
+
label: 'testMarker'
|
|
236
|
+
}
|
|
237
|
+
];
|
|
238
|
+
onMarkerClick = jest.fn();
|
|
239
|
+
setUpRTL(__assign(__assign({}, defaultProps), { drawingModes: [constants_1.MAP_DRAWING_MODES.POLYGON], onMarkerClicked: onMarkerClick, markers: markers }));
|
|
240
|
+
return [4 /*yield*/, (0, react_2.waitFor)(function () {
|
|
241
|
+
markerMock = getLastInstance(jest_mocks_1.AdvancedMarkerElement);
|
|
242
|
+
expect(markerMock).toBeDefined();
|
|
243
|
+
})];
|
|
244
|
+
case 1:
|
|
245
|
+
_a.sent();
|
|
246
|
+
getEventHandler(markerMock, 'click')();
|
|
247
|
+
expect(onMarkerClick).toHaveBeenCalled();
|
|
248
|
+
return [2 /*return*/];
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
}); });
|
|
200
252
|
});
|
|
201
253
|
describe('fitting bounds behavior', function () {
|
|
202
254
|
it('should fit map bounds correctly if markers loaded later than map', function () {
|
|
@@ -365,7 +417,7 @@ describe('ReltioMap tests', function () {
|
|
|
365
417
|
};
|
|
366
418
|
_a = setUpRTL(__assign(__assign({}, defaultProps), { drawingModes: [constants_1.MAP_DRAWING_MODES.POLYGON], activeOverlay: activeOverlay })), user = _a.user, rerender = _a.rerender;
|
|
367
419
|
polygon = getLastInstance(jest_mocks_1.Polygon);
|
|
368
|
-
expect(polygon.
|
|
420
|
+
expect(polygon.setOptions).toHaveBeenCalledWith(expect.objectContaining({ paths: activeOverlay.path }));
|
|
369
421
|
newProps = __assign(__assign({}, defaultProps), { drawingModes: [constants_1.MAP_DRAWING_MODES.POLYGON], activeOverlay: null });
|
|
370
422
|
rerender(react_1.default.createElement(ReltioMap_1.ReltioMap, __assign({}, newProps)));
|
|
371
423
|
return [4 /*yield*/, user.click(react_2.screen.getByLabelText('Draw area'))];
|
|
@@ -376,56 +428,100 @@ describe('ReltioMap tests', function () {
|
|
|
376
428
|
}
|
|
377
429
|
});
|
|
378
430
|
}); });
|
|
379
|
-
it('should not render Polygon if "activeOverlay" prop is circle', function () {
|
|
380
|
-
var activeOverlay
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
setUpRTL(__assign(__assign({}, defaultProps), { drawingModes: [constants_1.MAP_DRAWING_MODES.POLYGON], activeOverlay: activeOverlay, onOverlayUpdated: onOverlayUpdated }));
|
|
397
|
-
var polygon = getLastInstance(jest_mocks_1.Polygon);
|
|
398
|
-
getEventHandler(polygon, 'mouseup')();
|
|
399
|
-
expect(onOverlayUpdated).toHaveBeenCalledWith({
|
|
400
|
-
type: constants_1.MAP_DRAWING_MODES.POLYGON,
|
|
401
|
-
data: []
|
|
431
|
+
it('should not render Polygon if "activeOverlay" prop is circle', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
432
|
+
var activeOverlay;
|
|
433
|
+
return __generator(this, function (_a) {
|
|
434
|
+
switch (_a.label) {
|
|
435
|
+
case 0:
|
|
436
|
+
activeOverlay = {
|
|
437
|
+
type: constants_1.MAP_DRAWING_MODES.CIRCLE,
|
|
438
|
+
path: [{ lat: 1, lng: 1 }]
|
|
439
|
+
};
|
|
440
|
+
setUpRTL(__assign(__assign({}, defaultProps), { drawingModes: [constants_1.MAP_DRAWING_MODES.POLYGON], activeOverlay: activeOverlay }));
|
|
441
|
+
return [4 /*yield*/, (0, react_2.waitFor)(function () {
|
|
442
|
+
expect(jest_mocks_1.mockInstances.get(jest_mocks_1.Polygon)).toHaveLength(0);
|
|
443
|
+
})];
|
|
444
|
+
case 1:
|
|
445
|
+
_a.sent();
|
|
446
|
+
return [2 /*return*/];
|
|
447
|
+
}
|
|
402
448
|
});
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
449
|
+
}); });
|
|
450
|
+
it('should call props.onOverlayUpdated on polygon mouse up', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
451
|
+
var activeOverlay, onOverlayUpdated, polygon;
|
|
452
|
+
return __generator(this, function (_a) {
|
|
453
|
+
switch (_a.label) {
|
|
454
|
+
case 0:
|
|
455
|
+
activeOverlay = {
|
|
456
|
+
type: constants_1.MAP_DRAWING_MODES.POLYGON,
|
|
457
|
+
path: [
|
|
458
|
+
{ lat: 1, lng: 1 },
|
|
459
|
+
{ lat: 2, lng: 2 }
|
|
460
|
+
]
|
|
461
|
+
};
|
|
462
|
+
onOverlayUpdated = jest.fn();
|
|
463
|
+
setUpRTL(__assign(__assign({}, defaultProps), { drawingModes: [constants_1.MAP_DRAWING_MODES.POLYGON], activeOverlay: activeOverlay, onOverlayUpdated: onOverlayUpdated }));
|
|
464
|
+
polygon = getLastInstance(jest_mocks_1.Polygon);
|
|
465
|
+
getEventHandler(polygon, 'mouseup')();
|
|
466
|
+
return [4 /*yield*/, (0, react_2.waitFor)(function () {
|
|
467
|
+
expect(onOverlayUpdated).toHaveBeenCalledWith({
|
|
468
|
+
type: constants_1.MAP_DRAWING_MODES.POLYGON,
|
|
469
|
+
data: []
|
|
470
|
+
});
|
|
471
|
+
})];
|
|
472
|
+
case 1:
|
|
473
|
+
_a.sent();
|
|
474
|
+
expect(polygon.setOptions).toHaveBeenCalledWith(expect.objectContaining({ paths: activeOverlay.path }));
|
|
475
|
+
return [2 /*return*/];
|
|
476
|
+
}
|
|
420
477
|
});
|
|
421
|
-
|
|
422
|
-
|
|
478
|
+
}); });
|
|
479
|
+
it('should call props.onOverlayUpdated on polygon drag end', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
480
|
+
var activeOverlay, onOverlayUpdated, polygon;
|
|
481
|
+
return __generator(this, function (_a) {
|
|
482
|
+
switch (_a.label) {
|
|
483
|
+
case 0:
|
|
484
|
+
activeOverlay = {
|
|
485
|
+
type: constants_1.MAP_DRAWING_MODES.POLYGON,
|
|
486
|
+
path: [
|
|
487
|
+
{ lat: 1, lng: 1 },
|
|
488
|
+
{ lat: 2, lng: 2 }
|
|
489
|
+
]
|
|
490
|
+
};
|
|
491
|
+
onOverlayUpdated = jest.fn();
|
|
492
|
+
setUpRTL(__assign(__assign({}, defaultProps), { drawingModes: [constants_1.MAP_DRAWING_MODES.POLYGON], activeOverlay: activeOverlay, onOverlayUpdated: onOverlayUpdated }));
|
|
493
|
+
polygon = getLastInstance(jest_mocks_1.Polygon);
|
|
494
|
+
getEventHandler(polygon, 'dragend')();
|
|
495
|
+
return [4 /*yield*/, (0, react_2.waitFor)(function () {
|
|
496
|
+
expect(onOverlayUpdated).toHaveBeenCalledWith({
|
|
497
|
+
type: constants_1.MAP_DRAWING_MODES.POLYGON,
|
|
498
|
+
data: []
|
|
499
|
+
});
|
|
500
|
+
})];
|
|
501
|
+
case 1:
|
|
502
|
+
_a.sent();
|
|
503
|
+
expect(polygon.setOptions).toHaveBeenCalledWith(expect.objectContaining({ paths: activeOverlay.path }));
|
|
504
|
+
return [2 /*return*/];
|
|
505
|
+
}
|
|
506
|
+
});
|
|
507
|
+
}); });
|
|
423
508
|
});
|
|
424
509
|
describe('drawing behavior', function () {
|
|
425
|
-
it("shouldn't be in drawing mode by default", function () {
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
510
|
+
it("shouldn't be in drawing mode by default", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
511
|
+
return __generator(this, function (_a) {
|
|
512
|
+
switch (_a.label) {
|
|
513
|
+
case 0:
|
|
514
|
+
setUpRTL(__assign(__assign({}, defaultProps), { drawingModes: [constants_1.MAP_DRAWING_MODES.CIRCLE] }));
|
|
515
|
+
return [4 /*yield*/, (0, react_2.waitFor)(function () {
|
|
516
|
+
expect(drawingManagerInstance).not.toBe(null);
|
|
517
|
+
})];
|
|
518
|
+
case 1:
|
|
519
|
+
_a.sent();
|
|
520
|
+
expect(drawingManagerInstance.setDrawingMode).not.toHaveBeenCalledWith(constants_1.MAP_DRAWING_MODES.CIRCLE);
|
|
521
|
+
return [2 /*return*/];
|
|
522
|
+
}
|
|
523
|
+
});
|
|
524
|
+
}); });
|
|
429
525
|
it('should change drawing mode on map control action', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
430
526
|
var user;
|
|
431
527
|
return __generator(this, function (_a) {
|
|
@@ -435,20 +531,40 @@ describe('ReltioMap tests', function () {
|
|
|
435
531
|
return [4 /*yield*/, user.click(react_2.screen.getByLabelText('Draw area'))];
|
|
436
532
|
case 1:
|
|
437
533
|
_a.sent();
|
|
438
|
-
expect(
|
|
534
|
+
expect(drawingManagerConstructorSpy).toHaveBeenCalledWith(expect.objectContaining({ drawingMode: constants_1.MAP_DRAWING_MODES.CIRCLE }));
|
|
535
|
+
return [2 /*return*/];
|
|
536
|
+
}
|
|
537
|
+
});
|
|
538
|
+
}); });
|
|
539
|
+
it("shouldn't render DrawingManager without drawingModes prop", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
540
|
+
return __generator(this, function (_a) {
|
|
541
|
+
switch (_a.label) {
|
|
542
|
+
case 0:
|
|
543
|
+
setUpRTL(__assign({}, defaultProps));
|
|
544
|
+
return [4 /*yield*/, (0, react_2.waitFor)(function () {
|
|
545
|
+
expect(drawingManagerInstance).toBe(null);
|
|
546
|
+
})];
|
|
547
|
+
case 1:
|
|
548
|
+
_a.sent();
|
|
549
|
+
return [2 /*return*/];
|
|
550
|
+
}
|
|
551
|
+
});
|
|
552
|
+
}); });
|
|
553
|
+
it("shouldn't render TopRightMapControls without drawingModes prop", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
554
|
+
return __generator(this, function (_a) {
|
|
555
|
+
switch (_a.label) {
|
|
556
|
+
case 0:
|
|
557
|
+
setUpRTL(__assign({}, defaultProps));
|
|
558
|
+
return [4 /*yield*/, (0, react_2.waitFor)(function () {
|
|
559
|
+
expect(react_2.screen.queryByLabelText('Draw area')).not.toBeInTheDocument();
|
|
560
|
+
})];
|
|
561
|
+
case 1:
|
|
562
|
+
_a.sent();
|
|
563
|
+
expect(react_2.screen.queryByLabelText('Clear area')).not.toBeInTheDocument();
|
|
439
564
|
return [2 /*return*/];
|
|
440
565
|
}
|
|
441
566
|
});
|
|
442
567
|
}); });
|
|
443
|
-
it("shouldn't render DrawingManager without drawingModes prop", function () {
|
|
444
|
-
setUpRTL(__assign({}, defaultProps));
|
|
445
|
-
expect(drawingManagerInstance).toBe(null);
|
|
446
|
-
});
|
|
447
|
-
it("shouldn't render TopRightMapControls without drawingModes prop", function () {
|
|
448
|
-
setUpRTL(__assign({}, defaultProps));
|
|
449
|
-
expect(react_2.screen.queryByLabelText('Draw area')).not.toBeInTheDocument();
|
|
450
|
-
expect(react_2.screen.queryByLabelText('Clear area')).not.toBeInTheDocument();
|
|
451
|
-
});
|
|
452
568
|
it('should call props.onOverlayUpdated after polygon completing', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
453
569
|
var onOverlayUpdated, user, overlay;
|
|
454
570
|
return __generator(this, function (_a) {
|
|
@@ -459,7 +575,7 @@ describe('ReltioMap tests', function () {
|
|
|
459
575
|
return [4 /*yield*/, user.click(react_2.screen.getByLabelText('Draw area'))];
|
|
460
576
|
case 1:
|
|
461
577
|
_a.sent();
|
|
462
|
-
expect(
|
|
578
|
+
expect(drawingManagerConstructorSpy).toHaveBeenCalledWith(expect.objectContaining({ drawingMode: constants_1.MAP_DRAWING_MODES.POLYGON }));
|
|
463
579
|
overlay = {
|
|
464
580
|
setMap: jest.fn(),
|
|
465
581
|
getPath: function () { return ({
|
|
@@ -480,7 +596,7 @@ describe('ReltioMap tests', function () {
|
|
|
480
596
|
]
|
|
481
597
|
});
|
|
482
598
|
expect(overlay.setMap).toHaveBeenCalledWith(null);
|
|
483
|
-
expect(
|
|
599
|
+
expect(drawingManagerConstructorSpy).toHaveBeenCalledWith(expect.objectContaining({ drawingMode: null }));
|
|
484
600
|
return [2 /*return*/];
|
|
485
601
|
}
|
|
486
602
|
});
|
|
@@ -502,11 +618,11 @@ describe('ReltioMap tests', function () {
|
|
|
502
618
|
return [4 /*yield*/, user.click(react_2.screen.getByLabelText('Draw area'))];
|
|
503
619
|
case 1:
|
|
504
620
|
_a.sent();
|
|
505
|
-
expect(
|
|
621
|
+
expect(drawingManagerConstructorSpy).toHaveBeenCalledWith(expect.objectContaining({ drawingMode: constants_1.MAP_DRAWING_MODES.POLYGON }));
|
|
506
622
|
return [4 /*yield*/, user.click(react_2.screen.getByText('Search as I move the map'))];
|
|
507
623
|
case 2:
|
|
508
624
|
_a.sent();
|
|
509
|
-
expect(
|
|
625
|
+
expect(drawingManagerConstructorSpy).toHaveBeenCalledWith(expect.objectContaining({ drawingMode: null }));
|
|
510
626
|
expect(onMapBoundsChanged).toHaveBeenCalledWith(mapBoundsPolygon);
|
|
511
627
|
return [2 /*return*/];
|
|
512
628
|
}
|
|
@@ -522,14 +638,14 @@ describe('ReltioMap tests', function () {
|
|
|
522
638
|
return [4 /*yield*/, user.click(react_2.screen.getByLabelText('Draw area'))];
|
|
523
639
|
case 1:
|
|
524
640
|
_a.sent();
|
|
525
|
-
expect(
|
|
641
|
+
expect(drawingManagerConstructorSpy).toHaveBeenCalledWith(expect.objectContaining({ drawingMode: constants_1.MAP_DRAWING_MODES.POLYGON }));
|
|
526
642
|
return [4 /*yield*/, user.click(react_2.screen.getByText('Search as I move the map'))];
|
|
527
643
|
case 2:
|
|
528
644
|
_a.sent();
|
|
529
645
|
return [4 /*yield*/, user.click(react_2.screen.getByText('Search as I move the map'))];
|
|
530
646
|
case 3:
|
|
531
647
|
_a.sent();
|
|
532
|
-
expect(
|
|
648
|
+
expect(drawingManagerConstructorSpy).toHaveBeenCalledWith(expect.objectContaining({ drawingMode: null }));
|
|
533
649
|
expect(onMapBoundsChanged).toHaveBeenCalledWith(null);
|
|
534
650
|
return [2 /*return*/];
|
|
535
651
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GeoPoint } from '@reltio/mdm-sdk';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { ClusteredMarkersOptions } from '../../types';
|
|
4
|
+
type Props = {
|
|
5
|
+
entityMarkers: GeoPoint[];
|
|
6
|
+
enabledClustering: boolean;
|
|
7
|
+
options?: ClusteredMarkersOptions;
|
|
8
|
+
onMarkerClick?: (marker: GeoPoint) => void;
|
|
9
|
+
};
|
|
10
|
+
export declare const ClusteredMarkers: React.MemoExoticComponent<({ entityMarkers, options, enabledClustering, onMarkerClick }: Props) => React.JSX.Element>;
|
|
11
|
+
export {};
|