@reltio/components 1.4.2006 → 1.4.2008
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/Drawer/Drawer.test.js +1 -0
- package/EditModeAttributesView/IntegrationEditModeAttributesView.test.js +1 -2
- package/HierarchyNodeTitle/useEntityDetails.test.js +3 -2
- package/LineChart/LineChart.test.js +1 -0
- package/MapChart/components/Legend/styles.d.ts +1 -1
- package/ProfileResizablePanes/styles.d.ts +1 -1
- package/ReactSortableTree/ReactSortableTree.test.js +3 -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/Drawer/Drawer.test.js +1 -0
- package/cjs/EditModeAttributesView/IntegrationEditModeAttributesView.test.js +1 -2
- package/cjs/HierarchyNodeTitle/useEntityDetails.test.js +3 -2
- package/cjs/LineChart/LineChart.test.js +1 -0
- package/cjs/MapChart/components/Legend/styles.d.ts +1 -1
- package/cjs/ProfileResizablePanes/styles.d.ts +1 -1
- package/cjs/ReactSortableTree/ReactSortableTree.test.js +3 -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/features/graph/DataModelGraph/hooks/useFakeCenterNode.test.js +1 -0
- package/cjs/hooks/useMarkers/referenceHelpers.js +25 -2
- package/cjs/hooks/useMarkers/referenceHelpers.test.js +10 -1
- package/features/graph/DataModelGraph/hooks/useFakeCenterNode.test.js +1 -0
- package/hooks/useMarkers/referenceHelpers.js +25 -2
- package/hooks/useMarkers/referenceHelpers.test.js +10 -1
- package/package.json +3 -2
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import { DrawingModes,
|
|
4
|
-
type MarkerClustererOptions = MarkerClustererProps['options'];
|
|
2
|
+
import { GeoPoint } from '@reltio/mdm-sdk';
|
|
3
|
+
import { DrawingModes, MapBounds, Overlay, ClusteredMarkersOptions, DrawingMode } from './types';
|
|
5
4
|
type Props = {
|
|
6
|
-
markers?:
|
|
5
|
+
markers?: GeoPoint[];
|
|
7
6
|
mapKey: string;
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
/** A map ID is required to use Advanced Markers. https://developers.google.com/maps/documentation/javascript/advanced-markers/overview */
|
|
8
|
+
mapId?: string;
|
|
9
|
+
defaultZoom?: number;
|
|
10
|
+
defaultCenter?: google.maps.LatLngLiteral;
|
|
10
11
|
loadingElement: React.ReactElement;
|
|
11
12
|
isSearchOnMapMove?: boolean;
|
|
12
13
|
isSearchEnabled?: boolean;
|
|
@@ -14,15 +15,18 @@ type Props = {
|
|
|
14
15
|
overlayOptions?: google.maps.PolygonOptions | google.maps.CircleOptions;
|
|
15
16
|
drawingModes?: DrawingModes;
|
|
16
17
|
markerClusterer?: boolean;
|
|
17
|
-
markerClustererOptions?:
|
|
18
|
+
markerClustererOptions?: ClusteredMarkersOptions;
|
|
18
19
|
mapOptions?: google.maps.MapOptions;
|
|
19
20
|
mapContainerClassName?: string;
|
|
20
21
|
onMapBoundsChanged?: (value: MapBounds | null) => void;
|
|
21
22
|
onOverlayUpdated?: (value: {
|
|
22
|
-
data:
|
|
23
|
-
|
|
23
|
+
data: number[][] | {
|
|
24
|
+
radius: number;
|
|
25
|
+
center: google.maps.LatLng;
|
|
26
|
+
};
|
|
27
|
+
type: DrawingMode;
|
|
24
28
|
}) => void;
|
|
25
|
-
onMarkerClicked?: (value:
|
|
29
|
+
onMarkerClicked?: (value: GeoPoint) => void;
|
|
26
30
|
};
|
|
27
|
-
export declare const ReltioMap: ({
|
|
31
|
+
export declare const ReltioMap: ({ mapKey, ...restProps }: Props) => React.JSX.Element;
|
|
28
32
|
export {};
|
|
@@ -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';
|