@janiscommerce/ui-web 0.33.0 → 0.34.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/dist/index.umd.js CHANGED
@@ -15963,6 +15963,28 @@
15963
15963
  }, children));
15964
15964
  };
15965
15965
 
15966
+ var getCoordsFromEvent = function getCoordsFromEvent() {
15967
+ var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
15968
+ if (_typeof(event) !== 'object') return;
15969
+ var _event$latLng = event.latLng;
15970
+ _event$latLng = _event$latLng === void 0 ? {} : _event$latLng;
15971
+ var _event$latLng$lat = _event$latLng.lat,
15972
+ lat = _event$latLng$lat === void 0 ? function () {} : _event$latLng$lat,
15973
+ _event$latLng$lng = _event$latLng.lng,
15974
+ lng = _event$latLng$lng === void 0 ? function () {} : _event$latLng$lng;
15975
+ return {
15976
+ lat: lat(),
15977
+ lng: lng()
15978
+ };
15979
+ };
15980
+ var markerHasEqualPosition = function markerHasEqualPosition() {
15981
+ var prevPosition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
15982
+ var newPosition = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
15983
+ var hasEqualLat = (prevPosition === null || prevPosition === void 0 ? void 0 : prevPosition.lat) === (newPosition === null || newPosition === void 0 ? void 0 : newPosition.lat);
15984
+ var hasEqualLng = (prevPosition === null || prevPosition === void 0 ? void 0 : prevPosition.lng) === (newPosition === null || newPosition === void 0 ? void 0 : newPosition.lng);
15985
+ return hasEqualLat && hasEqualLng;
15986
+ };
15987
+
15966
15988
  var Marker = function Marker(_ref) {
15967
15989
  var _ref$markerData = _ref.markerData,
15968
15990
  markerData = _ref$markerData === void 0 ? {} : _ref$markerData,
@@ -15971,7 +15993,12 @@
15971
15993
  _ref$readOnly = _ref.readOnly,
15972
15994
  readOnly = _ref$readOnly === void 0 ? true : _ref$readOnly;
15973
15995
 
15974
- var _ref2 = markerData || {},
15996
+ var _useState = React.useState(markerData),
15997
+ _useState2 = _slicedToArray(_useState, 2),
15998
+ marker = _useState2[0],
15999
+ setMarker = _useState2[1];
16000
+
16001
+ var _ref2 = marker || {},
15975
16002
  icon = _ref2.icon,
15976
16003
  position = _ref2.position,
15977
16004
  overlay = _ref2.overlay,
@@ -15982,20 +16009,24 @@
15982
16009
  _onLoad = _markerOptions$onLoad === void 0 ? function () {} : _markerOptions$onLoad,
15983
16010
  _markerOptions$onClic = markerOptions.onClick,
15984
16011
  _onClick = _markerOptions$onClic === void 0 ? function () {} : _markerOptions$onClic,
15985
- _markerOptions$onDrag = markerOptions.onDragStart,
15986
- _onDragStart = _markerOptions$onDrag === void 0 ? function () {} : _markerOptions$onDrag,
15987
- _markerOptions$onDrag2 = markerOptions.onDragEnd,
15988
- _onDragEnd = _markerOptions$onDrag2 === void 0 ? function () {} : _markerOptions$onDrag2;
16012
+ _markerOptions$onDrag = markerOptions.onDrag,
16013
+ _onDrag = _markerOptions$onDrag === void 0 ? function () {} : _markerOptions$onDrag,
16014
+ _markerOptions$onDrag2 = markerOptions.onDragStart,
16015
+ _onDragStart = _markerOptions$onDrag2 === void 0 ? function () {} : _markerOptions$onDrag2,
16016
+ _markerOptions$onDrag3 = markerOptions.onDragEnd,
16017
+ _onDragEnd = _markerOptions$onDrag3 === void 0 ? function () {} : _markerOptions$onDrag3;
15989
16018
 
15990
- var _useState = React.useState(false),
15991
- _useState2 = _slicedToArray(_useState, 2),
15992
- infoWindowOpen = _useState2[0],
15993
- setInfoWindowOpen = _useState2[1];
16019
+ var markerRef = React.useRef(null);
15994
16020
 
15995
16021
  var _useState3 = React.useState(false),
15996
16022
  _useState4 = _slicedToArray(_useState3, 2),
15997
- mouseOverInfoWindow = _useState4[0],
15998
- setMouseOverInfoWindow = _useState4[1];
16023
+ infoWindowOpen = _useState4[0],
16024
+ setInfoWindowOpen = _useState4[1];
16025
+
16026
+ var _useState5 = React.useState(false),
16027
+ _useState6 = _slicedToArray(_useState5, 2),
16028
+ mouseOverInfoWindow = _useState6[0],
16029
+ setMouseOverInfoWindow = _useState6[1];
15999
16030
 
16000
16031
  var openInfoWindow = function openInfoWindow() {
16001
16032
  return setInfoWindowOpen(true);
@@ -16008,21 +16039,51 @@
16008
16039
  var delayedInfoWindowHover = debounce(function () {
16009
16040
  if (!mouseOverInfoWindow) closeInfoWindow();
16010
16041
  }, 100);
16042
+
16043
+ var updateMarker = function updateMarker() {
16044
+ var newData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
16045
+
16046
+ var updatedMarker = _objectSpread2(_objectSpread2({}, marker), newData);
16047
+
16048
+ setMarker(updatedMarker);
16049
+ return updatedMarker;
16050
+ };
16051
+
16052
+ var getEventHandlerData = function getEventHandlerData(event) {
16053
+ var _markerRef$current;
16054
+
16055
+ var newPosition = getCoordsFromEvent(event);
16056
+ return {
16057
+ marker: markerHasEqualPosition(marker === null || marker === void 0 ? void 0 : marker.position, newPosition) ? marker : updateMarker({
16058
+ position: newPosition
16059
+ }),
16060
+ prevMarker: marker,
16061
+ instance: (_markerRef$current = markerRef.current) === null || _markerRef$current === void 0 ? void 0 : _markerRef$current.marker
16062
+ };
16063
+ };
16064
+
16011
16065
  var markerProps = {
16066
+ ref: markerRef,
16012
16067
  position: position,
16013
16068
  draggable: isDraggable || !readOnly,
16014
16069
  icon: icon,
16015
- onLoad: function onLoad(markerInstance) {
16016
- return _onLoad(markerData, markerInstance);
16070
+ onLoad: function onLoad(instance) {
16071
+ return _onLoad({
16072
+ prevMarker: marker,
16073
+ instance: instance
16074
+ });
16075
+ },
16076
+ onClick: function onClick(event) {
16077
+ return _onClick(getEventHandlerData(event));
16017
16078
  },
16018
- onClick: function onClick(eventData) {
16019
- return _onClick(markerData, eventData);
16079
+ onDrag: function onDrag(event) {
16080
+ return _onDrag(event);
16020
16081
  },
16021
- onDragEnd: function onDragEnd(eventData) {
16022
- return _onDragEnd(markerData, eventData);
16082
+ onDragEnd: function onDragEnd(event) {
16083
+ return _onDragEnd(getEventHandlerData(event));
16023
16084
  },
16024
- onDragStart: function onDragStart(eventData) {
16025
- return _onDragStart(markerData, eventData);
16085
+ onDragStart: function onDragStart(event) {
16086
+ return _onDragStart(getEventHandlerData(event));
16026
16087
  },
16027
16088
  onMouseOver: function onMouseOver() {
16028
16089
  return openInfoWindow();