@reltio/components 1.4.2257 → 1.4.2258

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.
Files changed (91) hide show
  1. package/ReltioMap/ReltioMap.d.ts +5 -8
  2. package/ReltioMap/ReltioMap.js +31 -39
  3. package/ReltioMap/ReltioMap.spec.js +299 -104
  4. package/ReltioMap/components/ClusteredMarkers/ClusteredMarkers.d.ts +2 -1
  5. package/ReltioMap/components/ClusteredMarkers/ClusteredMarkers.js +11 -13
  6. package/ReltioMap/components/EntityMarker/EntityMarker.d.ts +2 -1
  7. package/ReltioMap/components/EntityMarker/EntityMarker.js +3 -3
  8. package/ReltioMap/components/PolygonDrawing/PolygonDrawing.d.ts +4 -0
  9. package/ReltioMap/components/PolygonDrawing/PolygonDrawing.js +18 -0
  10. package/ReltioMap/components/PolygonDrawing/crosshair.inline.svg.d.ts +1 -0
  11. package/ReltioMap/components/PolygonDrawing/crosshair.inline.svg.js +1 -0
  12. package/ReltioMap/components/PolygonDrawing/index.d.ts +2 -0
  13. package/ReltioMap/components/PolygonDrawing/index.js +2 -0
  14. package/ReltioMap/components/PolygonDrawing/polygonRingHelpers.d.ts +5 -0
  15. package/ReltioMap/components/PolygonDrawing/polygonRingHelpers.js +43 -0
  16. package/ReltioMap/components/PolygonDrawing/useDrawingCursors.d.ts +6 -0
  17. package/ReltioMap/components/PolygonDrawing/useDrawingCursors.js +87 -0
  18. package/ReltioMap/components/PolygonDrawing/usePolygonDrawing.d.ts +9 -0
  19. package/ReltioMap/components/PolygonDrawing/usePolygonDrawing.js +197 -0
  20. package/ReltioMap/components/PolygonDrawing/usePreviewPolylines.d.ts +7 -0
  21. package/ReltioMap/components/PolygonDrawing/usePreviewPolylines.js +38 -0
  22. package/ReltioMap/components/PolygonDrawing/useVertexHandles.d.ts +14 -0
  23. package/ReltioMap/components/PolygonDrawing/useVertexHandles.js +85 -0
  24. package/ReltioMap/components/TopRightMapControls/TopRightMapControls.d.ts +3 -3
  25. package/ReltioMap/components/TopRightMapControls/TopRightMapControls.js +4 -18
  26. package/ReltioMap/helpers.d.ts +2 -1
  27. package/ReltioMap/helpers.js +3 -11
  28. package/ReltioMap/types.d.ts +2 -2
  29. package/cjs/ReltioMap/ReltioMap.d.ts +5 -8
  30. package/cjs/ReltioMap/ReltioMap.js +29 -37
  31. package/cjs/ReltioMap/ReltioMap.spec.js +298 -103
  32. package/cjs/ReltioMap/components/ClusteredMarkers/ClusteredMarkers.d.ts +2 -1
  33. package/cjs/ReltioMap/components/ClusteredMarkers/ClusteredMarkers.js +11 -13
  34. package/cjs/ReltioMap/components/EntityMarker/EntityMarker.d.ts +2 -1
  35. package/cjs/ReltioMap/components/EntityMarker/EntityMarker.js +3 -3
  36. package/cjs/ReltioMap/components/PolygonDrawing/PolygonDrawing.d.ts +4 -0
  37. package/cjs/ReltioMap/components/PolygonDrawing/PolygonDrawing.js +22 -0
  38. package/cjs/ReltioMap/components/PolygonDrawing/crosshair.inline.svg.d.ts +1 -0
  39. package/cjs/ReltioMap/components/PolygonDrawing/crosshair.inline.svg.js +4 -0
  40. package/cjs/ReltioMap/components/PolygonDrawing/index.d.ts +2 -0
  41. package/cjs/ReltioMap/components/PolygonDrawing/index.js +7 -0
  42. package/cjs/ReltioMap/components/PolygonDrawing/polygonRingHelpers.d.ts +5 -0
  43. package/cjs/ReltioMap/components/PolygonDrawing/polygonRingHelpers.js +50 -0
  44. package/cjs/ReltioMap/components/PolygonDrawing/useDrawingCursors.d.ts +6 -0
  45. package/cjs/ReltioMap/components/PolygonDrawing/useDrawingCursors.js +91 -0
  46. package/cjs/ReltioMap/components/PolygonDrawing/usePolygonDrawing.d.ts +9 -0
  47. package/cjs/ReltioMap/components/PolygonDrawing/usePolygonDrawing.js +202 -0
  48. package/cjs/ReltioMap/components/PolygonDrawing/usePreviewPolylines.d.ts +7 -0
  49. package/cjs/ReltioMap/components/PolygonDrawing/usePreviewPolylines.js +42 -0
  50. package/cjs/ReltioMap/components/PolygonDrawing/useVertexHandles.d.ts +14 -0
  51. package/cjs/ReltioMap/components/PolygonDrawing/useVertexHandles.js +89 -0
  52. package/cjs/ReltioMap/components/TopRightMapControls/TopRightMapControls.d.ts +3 -3
  53. package/cjs/ReltioMap/components/TopRightMapControls/TopRightMapControls.js +3 -17
  54. package/cjs/ReltioMap/helpers.d.ts +2 -1
  55. package/cjs/ReltioMap/helpers.js +8 -15
  56. package/cjs/ReltioMap/types.d.ts +2 -2
  57. package/cjs/constants/index.d.ts +1 -1
  58. package/cjs/constants/index.js +2 -2
  59. package/cjs/constants/map.d.ts +1 -2
  60. package/cjs/constants/map.js +2 -5
  61. package/cjs/features/workflow/AddWorkflowDialog/styles.d.ts +1 -1
  62. package/cjs/icons/index.d.ts +0 -1
  63. package/cjs/icons/index.js +2 -4
  64. package/constants/index.d.ts +1 -1
  65. package/constants/index.js +1 -1
  66. package/constants/map.d.ts +1 -2
  67. package/constants/map.js +1 -4
  68. package/features/workflow/AddWorkflowDialog/styles.d.ts +1 -1
  69. package/icons/index.d.ts +0 -1
  70. package/icons/index.js +0 -1
  71. package/package.json +2 -2
  72. package/ReltioMap/components/DrawingManager/DrawingManager.d.ts +0 -2
  73. package/ReltioMap/components/DrawingManager/DrawingManager.js +0 -5
  74. package/ReltioMap/components/DrawingManager/index.d.ts +0 -1
  75. package/ReltioMap/components/DrawingManager/index.js +0 -1
  76. package/ReltioMap/components/DrawingManager/useDrawingManager.d.ts +0 -7
  77. package/ReltioMap/components/DrawingManager/useDrawingManager.js +0 -36
  78. package/ReltioMap/googleMock.test-data.d.ts +0 -1
  79. package/ReltioMap/googleMock.test-data.js +0 -109
  80. package/cjs/ReltioMap/components/DrawingManager/DrawingManager.d.ts +0 -2
  81. package/cjs/ReltioMap/components/DrawingManager/DrawingManager.js +0 -9
  82. package/cjs/ReltioMap/components/DrawingManager/index.d.ts +0 -1
  83. package/cjs/ReltioMap/components/DrawingManager/index.js +0 -5
  84. package/cjs/ReltioMap/components/DrawingManager/useDrawingManager.d.ts +0 -7
  85. package/cjs/ReltioMap/components/DrawingManager/useDrawingManager.js +0 -40
  86. package/cjs/ReltioMap/googleMock.test-data.d.ts +0 -1
  87. package/cjs/ReltioMap/googleMock.test-data.js +0 -113
  88. package/cjs/icons/Radius.d.ts +0 -3
  89. package/cjs/icons/Radius.js +0 -22
  90. package/icons/Radius.d.ts +0 -3
  91. package/icons/Radius.js +0 -17
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { GeoPoint } from '@reltio/mdm-sdk';
3
- import { DrawingModes, MapBounds, Overlay, ClusteredMarkersOptions, DrawingMode } from './types';
3
+ import { MapBounds, Overlay, ClusteredMarkersOptions, DrawingMode } from './types';
4
4
  type Props = {
5
5
  markers?: GeoPoint[];
6
6
  mapKey: string;
@@ -12,20 +12,17 @@ type Props = {
12
12
  isSearchOnMapMove?: boolean;
13
13
  isSearchEnabled?: boolean;
14
14
  activeOverlay?: Overlay;
15
- overlayOptions?: google.maps.PolygonOptions | google.maps.CircleOptions;
16
- drawingModes?: DrawingModes;
15
+ overlayOptions?: google.maps.PolygonOptions;
16
+ enablePolygonDrawing?: boolean;
17
17
  markerClusterer?: boolean;
18
18
  markerClustererOptions?: ClusteredMarkersOptions;
19
19
  mapOptions?: google.maps.MapOptions;
20
20
  mapContainerClassName?: string;
21
21
  onMapBoundsChanged?: (value: MapBounds | null) => void;
22
22
  onOverlayUpdated?: (value: {
23
- data: number[][] | {
24
- radius: number;
25
- center: google.maps.LatLng;
26
- };
23
+ data: number[][];
27
24
  type: DrawingMode;
28
- }) => void;
25
+ } | null) => void;
29
26
  onMarkerClicked?: (value: GeoPoint) => void;
30
27
  };
31
28
  export declare const ReltioMap: ({ mapKey, ...restProps }: Props) => React.JSX.Element;
@@ -25,15 +25,15 @@ import { propEq, isEmpty, identity } from 'ramda';
25
25
  import { APIProvider, ControlPosition, Map, MapControl, useApiIsLoaded, useMap } from '@vis.gl/react-google-maps';
26
26
  import { TopRightMapControls } from './components/TopRightMapControls';
27
27
  import { TopCenterMapControls } from './components/TopCenterMapControls';
28
- import { getMapBoundsPolygon, getDrawingMode } from './helpers';
29
- import { DEFAULT_GOOGLE_MAP_OPTIONS, DEFAULT_OVERLAY_OPTIONS, MAP_DRAWING_MODES } from '../constants';
28
+ import { getMapBoundsPolygon, isActivePolygonDrawing } from './helpers';
29
+ import { DEFAULT_GOOGLE_MAP_OPTIONS, DEFAULT_OVERLAY_OPTIONS, POLYGON_DRAWING_MODE } from '../constants';
30
30
  import { useFitMapBounds } from './useFitMapBounds';
31
- import { useStyles } from './styles';
32
31
  import { ClusteredMarkers } from './components/ClusteredMarkers';
33
32
  import { Polygon } from './components/Polygon';
34
- import { DrawingManager } from './components/DrawingManager';
33
+ import { PolygonDrawing } from './components/PolygonDrawing';
34
+ import { useStyles } from './styles';
35
35
  var ON_MAP_MOVE_DEBOUNCE_INTERVAL = 1000;
36
- var libraries = ['drawing'];
36
+ var libraries = ['marker'];
37
37
  export var ReltioMap = function (_a) {
38
38
  var mapKey = _a.mapKey, restProps = __rest(_a, ["mapKey"]);
39
39
  return (React.createElement(APIProvider, { apiKey: mapKey, libraries: libraries },
@@ -42,7 +42,7 @@ export var ReltioMap = function (_a) {
42
42
  var emptyObject = {};
43
43
  var emptyArray = [];
44
44
  var InternalReltioMap = memo(function (_a) {
45
- 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 ? identity : _g, _h = _a.onOverlayUpdated, onOverlayUpdated = _h === void 0 ? identity : _h, _j = _a.onMarkerClicked, onMarkerClicked = _j === void 0 ? identity : _j;
45
+ 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.enablePolygonDrawing, enablePolygonDrawing = _d === void 0 ? false : _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 ? identity : _g, _h = _a.onOverlayUpdated, onOverlayUpdated = _h === void 0 ? identity : _h, _j = _a.onMarkerClicked, onMarkerClicked = _j === void 0 ? identity : _j;
46
46
  var styles = useStyles();
47
47
  var mapMoveEndTimer = useRef(null);
48
48
  var isLoaded = useApiIsLoaded();
@@ -52,10 +52,15 @@ var InternalReltioMap = memo(function (_a) {
52
52
  useFitMapBounds({ markers: markers, activeOverlay: activeOverlay, map: map, isSearchOnMapMove: isSearchOnMapMove });
53
53
  var allOverlayOptions = useMemo(function () { return (__assign(__assign({}, DEFAULT_OVERLAY_OPTIONS), overlayOptions)); }, [overlayOptions]);
54
54
  var googleMapOptions = useMemo(function () { return (__assign(__assign({}, DEFAULT_GOOGLE_MAP_OPTIONS), mapOptions)); }, [mapOptions]);
55
- var drawingManagerOptions = useMemo(function () { return ({
56
- drawingControl: false,
57
- polygonOptions: allOverlayOptions
58
- }); }, [allOverlayOptions]);
55
+ var previewPolylineOptions = useMemo(function () {
56
+ var _a;
57
+ return ({
58
+ strokeColor: allOverlayOptions.strokeColor,
59
+ strokeWeight: allOverlayOptions.strokeWeight,
60
+ zIndex: ((_a = allOverlayOptions.zIndex) !== null && _a !== void 0 ? _a : 1) + 1
61
+ });
62
+ }, [allOverlayOptions]);
63
+ var completedPolygonDrawingOptions = useMemo(function () { return (__assign(__assign({}, allOverlayOptions), { editable: false })); }, [allOverlayOptions]);
59
64
  var polygonOptions = useMemo(function () { return (__assign({ paths: activeOverlay === null || activeOverlay === void 0 ? void 0 : activeOverlay.path, editable: true }, allOverlayOptions)); }, [activeOverlay, allOverlayOptions]);
60
65
  var handleChangeIsSearchOnMapMove = useCallback(function (isSearchOnMapMove) {
61
66
  onMapBoundsChanged(isSearchOnMapMove ? getMapBoundsPolygon(map) : null);
@@ -77,54 +82,41 @@ var InternalReltioMap = memo(function (_a) {
77
82
  mapMoveEndTimer.current = setTimeout(handleMapMoveEnd, ON_MAP_MOVE_DEBOUNCE_INTERVAL);
78
83
  }, [handleMapMoveEnd, isSearchOnMapMove]);
79
84
  var handleOverlayChange = useCallback(function (_e, propOverlay) {
80
- var _a;
81
- var _b;
82
- var polygonStateOverlay = polygon && { type: MAP_DRAWING_MODES.POLYGON, overlay: polygon };
85
+ var polygonStateOverlay = polygon && { type: POLYGON_DRAWING_MODE, overlay: polygon };
83
86
  var stateOverlay = propOverlay || polygonStateOverlay;
84
87
  if (isEmpty(stateOverlay))
85
88
  return;
86
89
  var overlay = stateOverlay.overlay, type = stateOverlay.type;
87
- var getPolygonLatLngCoordinates = function () {
88
- return overlay
89
- .getPath()
90
- .getArray()
91
- .map(function (latlng) { return [latlng.lat(), latlng.lng()]; });
92
- };
93
- var getCircleParameters = function () { return ({
94
- radius: overlay.getRadius() / 1000,
95
- center: overlay.getCenter()
96
- }); };
97
- var typeActions = (_a = {},
98
- _a[MAP_DRAWING_MODES.POLYGON] = getPolygonLatLngCoordinates,
99
- _a[MAP_DRAWING_MODES.CIRCLE] = getCircleParameters,
100
- _a);
101
- var data = (_b = typeActions[type]) === null || _b === void 0 ? void 0 : _b.call(typeActions);
102
- if (!data)
103
- return;
90
+ var data = overlay
91
+ .getPath()
92
+ .getArray()
93
+ .map(function (latlng) { return [latlng.lat(), latlng.lng()]; });
104
94
  onOverlayUpdated({ data: data, type: type });
105
95
  }, [onOverlayUpdated, polygon]);
106
- var handleOverlayComplete = useCallback(function (type) { return function (overlay) {
107
- handleOverlayChange(null, { type: type, overlay: overlay });
96
+ var onPolygonDrawingComplete = useCallback(function (overlay) {
97
+ handleOverlayChange(null, { type: POLYGON_DRAWING_MODE, overlay: overlay });
108
98
  overlay.setMap(null);
109
99
  setDrawingMode(null);
110
- }; }, [handleOverlayChange]);
100
+ }, [handleOverlayChange]);
111
101
  var handleClearOverlay = useCallback(function () {
112
102
  onOverlayUpdated(null);
113
103
  }, [onOverlayUpdated]);
114
104
  if (!isLoaded) {
115
105
  return loadingElement;
116
106
  }
117
- var shouldRenderDrawingManager = isSearchEnabled && Boolean(drawingModes.length);
118
- var shouldRenderRightMapControls = map && isSearchEnabled && Boolean(drawingModes.length);
107
+ var shouldRenderPolygonDrawing = isSearchEnabled && enablePolygonDrawing;
108
+ var shouldRenderRightMapControls = map && isSearchEnabled && enablePolygonDrawing;
119
109
  var shouldRenderCenterMapControls = map && isSearchEnabled;
120
- var shouldRenderPolygon = !getDrawingMode(drawingMode) && activeOverlay && propEq('type', MAP_DRAWING_MODES.POLYGON, activeOverlay);
110
+ var shouldRenderPolygon = !isActivePolygonDrawing(drawingMode) &&
111
+ activeOverlay &&
112
+ propEq('type', POLYGON_DRAWING_MODE, activeOverlay);
121
113
  return (React.createElement(Map, __assign({ mapId: mapId || 'mapId' }, googleMapOptions, { defaultZoom: defaultZoom, defaultCenter: defaultCenter, onZoomChanged: handleMapMoveStart, onDragstart: handleMapMoveStart, onIdle: handleMapIdle, className: mapContainerClassName }),
122
114
  shouldRenderRightMapControls && (React.createElement(MapControl, { position: ControlPosition.TOP_RIGHT },
123
- React.createElement(TopRightMapControls, { className: styles.mapControlContainer, hasActiveOverlay: !!activeOverlay, drawingModes: drawingModes, drawingMode: drawingMode, onDrawingModeChanged: setDrawingMode, onClearOverlay: handleClearOverlay }))),
115
+ React.createElement(TopRightMapControls, { className: styles.mapControlContainer, hasActiveOverlay: !!activeOverlay, enablePolygonDrawing: enablePolygonDrawing, drawingMode: drawingMode, onDrawingModeChanged: setDrawingMode, onClearOverlay: handleClearOverlay }))),
124
116
  shouldRenderCenterMapControls && (React.createElement(MapControl, { position: ControlPosition.TOP_CENTER },
125
117
  React.createElement(TopCenterMapControls, { className: styles.mapControlContainer, onChangeIsSearchOnMapMove: handleChangeIsSearchOnMapMove, isSearchOnMapMove: isSearchOnMapMove }))),
126
- React.createElement(ClusteredMarkers, { entityMarkers: markers, enabledClustering: markerClusterer, options: markerClustererOptions, onMarkerClick: onMarkerClicked }),
118
+ React.createElement(ClusteredMarkers, { entityMarkers: markers, enabledClustering: markerClusterer, options: markerClustererOptions, onMarkerClick: onMarkerClicked, disabled: isActivePolygonDrawing(drawingMode) }),
127
119
  shouldRenderPolygon && (React.createElement(Polygon, { onInit: setPolygon, options: polygonOptions, onMouseUp: handleOverlayChange, onDragEnd: handleOverlayChange })),
128
- shouldRenderDrawingManager && (React.createElement(DrawingManager, { onPolygonComplete: handleOverlayComplete(MAP_DRAWING_MODES.POLYGON), onCircleComplete: handleOverlayComplete(MAP_DRAWING_MODES.CIRCLE), drawingMode: getDrawingMode(drawingMode), options: drawingManagerOptions }))));
120
+ shouldRenderPolygonDrawing && (React.createElement(PolygonDrawing, { isActive: isActivePolygonDrawing(drawingMode), previewPolylineOptions: previewPolylineOptions, completedPolygonOptions: completedPolygonDrawingOptions, onPolygonComplete: onPolygonDrawingComplete }))));
129
121
  });
130
122
  InternalReltioMap.displayName = 'InternalReltioMap';