@janiscommerce/ui-web 0.31.0 → 0.33.0

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/CHANGELOG.md CHANGED
@@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.33.0] - 2025-04-10
11
+
12
+ ### Added
13
+
14
+ - Memo for markers
15
+ - OnLoad cb on markers
16
+
17
+ ## [0.32.0] - 2025-04-03
18
+
19
+ ### Added
20
+
21
+ - markerOptions in map component
22
+
10
23
  ## [0.31.0] - 2025-03-14
11
24
 
12
25
  ### Added
package/dist/index.esm.js CHANGED
@@ -11230,7 +11230,7 @@ const updaterMap$f = {
11230
11230
  instance.setZIndex(zIndex);
11231
11231
  },
11232
11232
  };
11233
- class Marker$1 extends React.PureComponent {
11233
+ class Marker$2 extends React.PureComponent {
11234
11234
  constructor() {
11235
11235
  super(...arguments);
11236
11236
  this.registeredEvents = [];
@@ -11297,7 +11297,7 @@ class Marker$1 extends React.PureComponent {
11297
11297
  return children || null;
11298
11298
  }
11299
11299
  }
11300
- Marker$1.contextType = MapContext;
11300
+ Marker$2.contextType = MapContext;
11301
11301
 
11302
11302
  var ClusterIcon = /** @class */ (function () {
11303
11303
  function ClusterIcon(cluster, styles) {
@@ -15938,15 +15938,28 @@ var InfoWindow = function InfoWindow(_ref) {
15938
15938
  };
15939
15939
 
15940
15940
  var Marker = function Marker(_ref) {
15941
- var markerData = _ref.markerData,
15942
- readOnly = _ref.readOnly,
15943
- _ref$setMarkerCallbac = _ref.setMarkerCallback,
15944
- setMarkerCallback = _ref$setMarkerCallbac === void 0 ? function () {} : _ref$setMarkerCallbac,
15945
- markerIdx = _ref.markerIdx,
15946
- schemaMarkerProps = _ref.markerProps;
15947
-
15948
- var _ref2 = schemaMarkerProps || {},
15949
- _onClick = _ref2.onClick;
15941
+ var _ref$markerData = _ref.markerData,
15942
+ markerData = _ref$markerData === void 0 ? {} : _ref$markerData,
15943
+ _ref$markerOptions = _ref.markerOptions,
15944
+ markerOptions = _ref$markerOptions === void 0 ? {} : _ref$markerOptions,
15945
+ _ref$readOnly = _ref.readOnly,
15946
+ readOnly = _ref$readOnly === void 0 ? true : _ref$readOnly;
15947
+
15948
+ var _ref2 = markerData || {},
15949
+ icon = _ref2.icon,
15950
+ position = _ref2.position,
15951
+ overlay = _ref2.overlay,
15952
+ infoWindowChildren = _ref2.infoWindowChildren,
15953
+ isDraggable = _ref2.isDraggable;
15954
+
15955
+ var _markerOptions$onLoad = markerOptions.onLoad,
15956
+ _onLoad = _markerOptions$onLoad === void 0 ? function () {} : _markerOptions$onLoad,
15957
+ _markerOptions$onClic = markerOptions.onClick,
15958
+ _onClick = _markerOptions$onClic === void 0 ? function () {} : _markerOptions$onClic,
15959
+ _markerOptions$onDrag = markerOptions.onDragStart,
15960
+ _onDragStart = _markerOptions$onDrag === void 0 ? function () {} : _markerOptions$onDrag,
15961
+ _markerOptions$onDrag2 = markerOptions.onDragEnd,
15962
+ _onDragEnd = _markerOptions$onDrag2 === void 0 ? function () {} : _markerOptions$onDrag2;
15950
15963
 
15951
15964
  var _useState = useState(false),
15952
15965
  _useState2 = _slicedToArray(_useState, 2),
@@ -15969,31 +15982,29 @@ var Marker = function Marker(_ref) {
15969
15982
  var delayedInfoWindowHover = debounce(function () {
15970
15983
  if (!mouseOverInfoWindow) closeInfoWindow();
15971
15984
  }, 100);
15972
-
15973
- var markerHandles = _objectSpread2(_objectSpread2({}, _onClick && {
15974
- onClick: function onClick() {
15975
- return _onClick(markerData);
15976
- }
15977
- }), {}, {
15985
+ var markerProps = {
15986
+ position: position,
15987
+ draggable: isDraggable || !readOnly,
15988
+ icon: icon,
15989
+ onLoad: function onLoad(markerInstance) {
15990
+ return _onLoad(markerData, markerInstance);
15991
+ },
15992
+ onClick: function onClick(eventData) {
15993
+ return _onClick(markerData, eventData);
15994
+ },
15995
+ onDragEnd: function onDragEnd(eventData) {
15996
+ return _onDragEnd(markerData, eventData);
15997
+ },
15998
+ onDragStart: function onDragStart(eventData) {
15999
+ return _onDragStart(markerData, eventData);
16000
+ },
15978
16001
  onMouseOver: function onMouseOver() {
15979
16002
  return openInfoWindow();
15980
16003
  },
15981
16004
  onMouseOut: function onMouseOut() {
15982
16005
  return delayedInfoWindowHover();
15983
16006
  }
15984
- });
15985
-
15986
- var markerProps = _objectSpread2(_objectSpread2({
15987
- position: markerData.position,
15988
- draggable: !readOnly,
15989
- onDragEnd: function onDragEnd(_ref3) {
15990
- var latLng = _ref3.latLng;
15991
- return setMarkerCallback(latLng, markerIdx, markerData);
15992
- }
15993
- }, _objectSpread2({}, markerHandles)), {}, {
15994
- icon: markerData.icon
15995
- });
15996
-
16007
+ };
15997
16008
  var infoWindowHandles = {
15998
16009
  onMouseEnter: function onMouseEnter() {
15999
16010
  delayedInfoWindowHover.cancel();
@@ -16012,35 +16023,43 @@ var Marker = function Marker(_ref) {
16012
16023
  };
16013
16024
  };
16014
16025
 
16015
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Marker$1, markerProps), markerData.overlay && /*#__PURE__*/React__default.createElement(OverlayView, {
16026
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Marker$2, markerProps), overlay && /*#__PURE__*/React__default.createElement(OverlayView, {
16016
16027
  className: "google-map-component__overlay-view",
16017
- position: markerData.position,
16028
+ position: position,
16018
16029
  mapPaneName: OverlayView.OVERLAY_MOUSE_TARGET,
16019
16030
  getPixelPositionOffset: function getPixelPositionOffset(width) {
16020
16031
  return _getPixelPositionOffset(width);
16021
16032
  }
16022
- }, markerData.overlay()), infoWindowOpen && markerData.infoWindowChildren && /*#__PURE__*/React__default.createElement(InfoWindow, {
16033
+ }, overlay()), infoWindowOpen && infoWindowChildren && /*#__PURE__*/React__default.createElement(InfoWindow, {
16023
16034
  className: "google-map-component__info-window",
16024
- data: markerData.position,
16035
+ data: position,
16025
16036
  infoWindowHandles: infoWindowHandles
16026
- }, markerData.infoWindowChildren()));
16037
+ }, infoWindowChildren()));
16027
16038
  };
16028
16039
 
16040
+ var Marker$1 = /*#__PURE__*/React__default.memo(Marker, function (prev, next) {
16041
+ var serializedPrev = JSON.stringify(prev);
16042
+ var serializedNext = JSON.stringify(next);
16043
+ return serializedPrev === serializedNext;
16044
+ });
16045
+
16029
16046
  var Markers = function Markers(_ref) {
16030
16047
  var _ref$readOnly = _ref.readOnly,
16031
- readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
16032
- _ref$setMarker = _ref.setMarker,
16033
- setMarker = _ref$setMarker === void 0 ? function () {} : _ref$setMarker,
16048
+ readOnly = _ref$readOnly === void 0 ? true : _ref$readOnly,
16034
16049
  _ref$markers = _ref.markers,
16035
- markers = _ref$markers === void 0 ? [] : _ref$markers;
16050
+ markers = _ref$markers === void 0 ? [] : _ref$markers,
16051
+ _ref$markerOptions = _ref.markerOptions,
16052
+ markerOptions = _ref$markerOptions === void 0 ? {} : _ref$markerOptions;
16036
16053
  if (!markers.length) return null;
16037
16054
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, markers.map(function (marker, idx) {
16038
- return /*#__PURE__*/React__default.createElement(Marker, {
16055
+ var _marker$position, _marker$position2;
16056
+
16057
+ return /*#__PURE__*/React__default.createElement(Marker$1, {
16039
16058
  markerData: _objectSpread2({}, marker),
16040
- key: idx,
16059
+ markerOptions: markerOptions,
16060
+ key: "".concat(idx.toString(), "-").concat(marker === null || marker === void 0 ? void 0 : (_marker$position = marker.position) === null || _marker$position === void 0 ? void 0 : _marker$position.lat, "-").concat(marker === null || marker === void 0 ? void 0 : (_marker$position2 = marker.position) === null || _marker$position2 === void 0 ? void 0 : _marker$position2.lng),
16041
16061
  readOnly: readOnly,
16042
- markerIdx: idx,
16043
- setMarkerCallback: setMarker
16062
+ markerIdx: idx
16044
16063
  });
16045
16064
  }));
16046
16065
  };
@@ -16048,16 +16067,16 @@ var Markers = function Markers(_ref) {
16048
16067
  var Route = function Route(_ref) {
16049
16068
  var _ref$routeData = _ref.routeData,
16050
16069
  routeData = _ref$routeData === void 0 ? {} : _ref$routeData,
16070
+ _ref$markerOptions = _ref.markerOptions,
16071
+ markerOptions = _ref$markerOptions === void 0 ? {} : _ref$markerOptions,
16051
16072
  _ref$readOnly = _ref.readOnly,
16052
- readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
16053
- _ref$setMarker = _ref.setMarker,
16054
- setMarker = _ref$setMarker === void 0 ? function () {} : _ref$setMarker;
16073
+ readOnly = _ref$readOnly === void 0 ? true : _ref$readOnly;
16055
16074
  var _routeData$polylines = routeData.polylines,
16056
16075
  polylines = _routeData$polylines === void 0 ? [] : _routeData$polylines;
16057
16076
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Markers, {
16058
16077
  readOnly: readOnly,
16059
- setMarker: setMarker,
16060
- markers: routeData.points
16078
+ markers: routeData.points,
16079
+ markerOptions: markerOptions
16061
16080
  }), /*#__PURE__*/React__default.createElement(Polyline, {
16062
16081
  path: polylines,
16063
16082
  options: routeData.polylineOptions
@@ -16067,10 +16086,10 @@ var Route = function Route(_ref) {
16067
16086
  var MarkersDrawer = function MarkersDrawer(_ref) {
16068
16087
  var _ref$markers = _ref.markers,
16069
16088
  markers = _ref$markers === void 0 ? [] : _ref$markers,
16089
+ _ref$markerOptions = _ref.markerOptions,
16090
+ markerOptions = _ref$markerOptions === void 0 ? {} : _ref$markerOptions,
16070
16091
  _ref$readOnly = _ref.readOnly,
16071
16092
  readOnly = _ref$readOnly === void 0 ? true : _ref$readOnly,
16072
- _ref$setMarker = _ref.setMarker,
16073
- setMarker = _ref$setMarker === void 0 ? function () {} : _ref$setMarker,
16074
16093
  _ref$callbackOnSucces = _ref.callbackOnSuccessDirections,
16075
16094
  callbackOnSuccessDirections = _ref$callbackOnSucces === void 0 ? function () {} : _ref$callbackOnSucces,
16076
16095
  _ref$callbackOnErrorD = _ref.callbackOnErrorDirections,
@@ -16078,8 +16097,7 @@ var MarkersDrawer = function MarkersDrawer(_ref) {
16078
16097
  _ref$googleMapsApiKey = _ref.googleMapsApiKey,
16079
16098
  googleMapsApiKey = _ref$googleMapsApiKey === void 0 ? '' : _ref$googleMapsApiKey;
16080
16099
  var commonProps = {
16081
- readOnly: readOnly,
16082
- setMarker: setMarker
16100
+ readOnly: readOnly
16083
16101
  };
16084
16102
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, markers.map(function (marker, idx) {
16085
16103
  var _marker$polylines;
@@ -16088,13 +16106,15 @@ var MarkersDrawer = function MarkersDrawer(_ref) {
16088
16106
  key: "".concat(idx.toString())
16089
16107
  }, commonProps, {
16090
16108
  routeData: marker,
16109
+ markerOptions: markerOptions,
16091
16110
  callbackOnSuccessDirections: callbackOnSuccessDirections,
16092
16111
  callbackOnErrorDirections: callbackOnErrorDirections,
16093
16112
  googleMapsApiKey: googleMapsApiKey
16094
16113
  })) : /*#__PURE__*/React__default.createElement(Markers, _extends$1({
16095
16114
  key: "".concat(idx.toString())
16096
16115
  }, commonProps, {
16097
- markers: marker.points
16116
+ markers: marker.points,
16117
+ markerOptions: markerOptions
16098
16118
  }));
16099
16119
  }));
16100
16120
  };
@@ -35404,7 +35424,7 @@ var SearchBox = function SearchBox(_ref) {
35404
35424
  })));
35405
35425
  };
35406
35426
 
35407
- var _excluded = ["googleMapsApiKey", "width", "height", "center", "zoom", "markers", "options", "callbackOnSuccessDirections", "callbackOnErrorDirections"];
35427
+ var _excluded = ["googleMapsApiKey", "width", "height", "center", "zoom", "markers", "markerOptions", "options", "callbackOnSuccessDirections", "callbackOnErrorDirections"];
35408
35428
 
35409
35429
  var Map$1 = function Map(_ref) {
35410
35430
  var _mapRef$current;
@@ -35421,6 +35441,8 @@ var Map$1 = function Map(_ref) {
35421
35441
  zoom = _ref$zoom === void 0 ? 13 : _ref$zoom,
35422
35442
  _ref$markers = _ref.markers,
35423
35443
  markers = _ref$markers === void 0 ? [] : _ref$markers,
35444
+ _ref$markerOptions = _ref.markerOptions,
35445
+ markerOptions = _ref$markerOptions === void 0 ? {} : _ref$markerOptions,
35424
35446
  _ref$options = _ref.options,
35425
35447
  options = _ref$options === void 0 ? {} : _ref$options,
35426
35448
  _ref$callbackOnSucces = _ref.callbackOnSuccessDirections,
@@ -35485,6 +35507,7 @@ var Map$1 = function Map(_ref) {
35485
35507
  className: "google-map-component__search-box"
35486
35508
  }), validMarkersExist && /*#__PURE__*/React__default.createElement(MarkersDrawer, {
35487
35509
  markers: markers,
35510
+ markerOptions: markerOptions,
35488
35511
  readOnly: mapOptions.readOnly,
35489
35512
  callbackOnSuccessDirections: callbackOnSuccessDirections,
35490
35513
  callbackOnErrorDirections: callbackOnErrorDirections,