@chayns-components/maps 5.0.0-beta.441 → 5.0.0-beta.444

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.
@@ -1,31 +1,24 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _react = _interopRequireDefault(require("react"));
8
- var _PositionInput = require("./PositionInput.styles");
9
- var _core = require("@chayns-components/core");
10
- var _MapWrapper = _interopRequireDefault(require("./map-wrapper/MapWrapper"));
11
- var _positionInput = require("../../constants/positionInput");
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1
+ import React from 'react';
2
+ import { StyledPositionInput, StyledPositionInputSearch } from './PositionInput.styles';
3
+ import { Input } from '@chayns-components/core';
4
+ import MapWrapper from './map-wrapper/MapWrapper';
5
+ import { DEFAULT_POLYGON_OPTIONS, DEFAULT_POSITION } from '../../constants/positionInput';
13
6
  const PositionInput = _ref => {
14
7
  let {
15
8
  searchPlaceholder,
16
9
  apiToken,
17
- polygonOptions = _positionInput.DEFAULT_POLYGON_OPTIONS,
18
- initialPosition = _positionInput.DEFAULT_POSITION,
10
+ polygonOptions = DEFAULT_POLYGON_OPTIONS,
11
+ initialPosition = DEFAULT_POSITION,
19
12
  zoom = 13,
20
13
  markers,
21
14
  onMarkerRemove,
22
15
  onMarkerChange,
23
16
  onMarkerAdd
24
17
  } = _ref;
25
- return /*#__PURE__*/_react.default.createElement(_PositionInput.StyledPositionInput, null, /*#__PURE__*/_react.default.createElement(_PositionInput.StyledPositionInputSearch, null, /*#__PURE__*/_react.default.createElement(_core.Input, {
18
+ return /*#__PURE__*/React.createElement(StyledPositionInput, null, /*#__PURE__*/React.createElement(StyledPositionInputSearch, null, /*#__PURE__*/React.createElement(Input, {
26
19
  id: "auto-complete-input",
27
20
  placeholder: searchPlaceholder
28
- })), /*#__PURE__*/_react.default.createElement(_MapWrapper.default, {
21
+ })), /*#__PURE__*/React.createElement(MapWrapper, {
29
22
  apiToken: apiToken,
30
23
  polygonOptions: polygonOptions,
31
24
  initialPosition: initialPosition,
@@ -37,5 +30,5 @@ const PositionInput = _ref => {
37
30
  }));
38
31
  };
39
32
  PositionInput.displayName = 'PositionInput';
40
- var _default = exports.default = PositionInput;
33
+ export default PositionInput;
41
34
  //# sourceMappingURL=PositionInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PositionInput.js","names":["_react","_interopRequireDefault","require","_PositionInput","_core","_MapWrapper","_positionInput","obj","__esModule","default","PositionInput","_ref","searchPlaceholder","apiToken","polygonOptions","DEFAULT_POLYGON_OPTIONS","initialPosition","DEFAULT_POSITION","zoom","markers","onMarkerRemove","onMarkerChange","onMarkerAdd","createElement","StyledPositionInput","StyledPositionInputSearch","Input","id","placeholder","initialZoom","displayName","_default","exports"],"sources":["../../../src/components/position-input/PositionInput.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { StyledPositionInput, StyledPositionInputSearch } from './PositionInput.styles';\nimport { Input } from '@chayns-components/core';\nimport MapWrapper from './map-wrapper/MapWrapper';\nimport type { IMarker, PolygonOptions, Position } from '../../types/positionInput';\nimport { DEFAULT_POLYGON_OPTIONS, DEFAULT_POSITION } from '../../constants/positionInput';\n\nexport type PositionInputProps = {\n /**\n * The api token for google maps.\n */\n apiToken: string;\n /**\n * The position of the center of the map on the initial render.\n */\n initialPosition?: Position;\n /**\n * Markers that should be displayed.\n */\n markers?: IMarker[];\n /**\n * Function to be executed when a marker is added.\n */\n onMarkerAdd: (marker: IMarker) => void;\n /**\n * Function to be executed when a marker position is changed.\n */\n onMarkerChange: (markers: IMarker[]) => void;\n /**\n * Function to be executed when a marker is removed.\n */\n onMarkerRemove: (id: number) => void;\n /**\n * Options to style the polygon.\n */\n polygonOptions?: PolygonOptions;\n /**\n * The placeholder of the search input.\n */\n searchPlaceholder?: string;\n /**\n * The zoom of the map.\n */\n zoom?: number;\n};\n\nconst PositionInput: FC<PositionInputProps> = ({\n searchPlaceholder,\n apiToken,\n polygonOptions = DEFAULT_POLYGON_OPTIONS,\n initialPosition = DEFAULT_POSITION,\n zoom = 13,\n markers,\n onMarkerRemove,\n onMarkerChange,\n onMarkerAdd,\n}) => (\n <StyledPositionInput>\n <StyledPositionInputSearch>\n <Input id=\"auto-complete-input\" placeholder={searchPlaceholder} />\n </StyledPositionInputSearch>\n <MapWrapper\n apiToken={apiToken}\n polygonOptions={polygonOptions}\n initialPosition={initialPosition}\n initialZoom={zoom}\n markers={markers}\n onMarkerAdd={onMarkerAdd}\n onMarkerChange={onMarkerChange}\n onMarkerRemove={onMarkerRemove}\n />\n </StyledPositionInput>\n);\n\nPositionInput.displayName = 'PositionInput';\n\nexport default PositionInput;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAEA,IAAAI,cAAA,GAAAJ,OAAA;AAA0F,SAAAD,uBAAAM,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAyC1F,MAAMG,aAAqC,GAAGC,IAAA;EAAA,IAAC;IAC3CC,iBAAiB;IACjBC,QAAQ;IACRC,cAAc,GAAGC,sCAAuB;IACxCC,eAAe,GAAGC,+BAAgB;IAClCC,IAAI,GAAG,EAAE;IACTC,OAAO;IACPC,cAAc;IACdC,cAAc;IACdC;EACJ,CAAC,GAAAX,IAAA;EAAA,oBACGX,MAAA,CAAAS,OAAA,CAAAc,aAAA,CAACpB,cAAA,CAAAqB,mBAAmB,qBAChBxB,MAAA,CAAAS,OAAA,CAAAc,aAAA,CAACpB,cAAA,CAAAsB,yBAAyB,qBACtBzB,MAAA,CAAAS,OAAA,CAAAc,aAAA,CAACnB,KAAA,CAAAsB,KAAK;IAACC,EAAE,EAAC,qBAAqB;IAACC,WAAW,EAAEhB;EAAkB,CAAE,CAC1C,CAAC,eAC5BZ,MAAA,CAAAS,OAAA,CAAAc,aAAA,CAAClB,WAAA,CAAAI,OAAU;IACPI,QAAQ,EAAEA,QAAS;IACnBC,cAAc,EAAEA,cAAe;IAC/BE,eAAe,EAAEA,eAAgB;IACjCa,WAAW,EAAEX,IAAK;IAClBC,OAAO,EAAEA,OAAQ;IACjBG,WAAW,EAAEA,WAAY;IACzBD,cAAc,EAAEA,cAAe;IAC/BD,cAAc,EAAEA;EAAe,CAClC,CACgB,CAAC;AAAA,CACzB;AAEDV,aAAa,CAACoB,WAAW,GAAG,eAAe;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAvB,OAAA,GAE7BC,aAAa"}
1
+ {"version":3,"file":"PositionInput.js","names":["React","StyledPositionInput","StyledPositionInputSearch","Input","MapWrapper","DEFAULT_POLYGON_OPTIONS","DEFAULT_POSITION","PositionInput","_ref","searchPlaceholder","apiToken","polygonOptions","initialPosition","zoom","markers","onMarkerRemove","onMarkerChange","onMarkerAdd","createElement","id","placeholder","initialZoom","displayName"],"sources":["../../../src/components/position-input/PositionInput.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { StyledPositionInput, StyledPositionInputSearch } from './PositionInput.styles';\nimport { Input } from '@chayns-components/core';\nimport MapWrapper from './map-wrapper/MapWrapper';\nimport type { IMarker, PolygonOptions, Position } from '../../types/positionInput';\nimport { DEFAULT_POLYGON_OPTIONS, DEFAULT_POSITION } from '../../constants/positionInput';\n\nexport type PositionInputProps = {\n /**\n * The api token for google maps.\n */\n apiToken: string;\n /**\n * The position of the center of the map on the initial render.\n */\n initialPosition?: Position;\n /**\n * Markers that should be displayed.\n */\n markers?: IMarker[];\n /**\n * Function to be executed when a marker is added.\n */\n onMarkerAdd: (marker: IMarker) => void;\n /**\n * Function to be executed when a marker position is changed.\n */\n onMarkerChange: (markers: IMarker[]) => void;\n /**\n * Function to be executed when a marker is removed.\n */\n onMarkerRemove: (id: number) => void;\n /**\n * Options to style the polygon.\n */\n polygonOptions?: PolygonOptions;\n /**\n * The placeholder of the search input.\n */\n searchPlaceholder?: string;\n /**\n * The zoom of the map.\n */\n zoom?: number;\n};\n\nconst PositionInput: FC<PositionInputProps> = ({\n searchPlaceholder,\n apiToken,\n polygonOptions = DEFAULT_POLYGON_OPTIONS,\n initialPosition = DEFAULT_POSITION,\n zoom = 13,\n markers,\n onMarkerRemove,\n onMarkerChange,\n onMarkerAdd,\n}) => (\n <StyledPositionInput>\n <StyledPositionInputSearch>\n <Input id=\"auto-complete-input\" placeholder={searchPlaceholder} />\n </StyledPositionInputSearch>\n <MapWrapper\n apiToken={apiToken}\n polygonOptions={polygonOptions}\n initialPosition={initialPosition}\n initialZoom={zoom}\n markers={markers}\n onMarkerAdd={onMarkerAdd}\n onMarkerChange={onMarkerChange}\n onMarkerRemove={onMarkerRemove}\n />\n </StyledPositionInput>\n);\n\nPositionInput.displayName = 'PositionInput';\n\nexport default PositionInput;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAc,OAAO;AACjC,SAASC,mBAAmB,EAAEC,yBAAyB,QAAQ,wBAAwB;AACvF,SAASC,KAAK,QAAQ,yBAAyB;AAC/C,OAAOC,UAAU,MAAM,0BAA0B;AAEjD,SAASC,uBAAuB,EAAEC,gBAAgB,QAAQ,+BAA+B;AAyCzF,MAAMC,aAAqC,GAAGC,IAAA;EAAA,IAAC;IAC3CC,iBAAiB;IACjBC,QAAQ;IACRC,cAAc,GAAGN,uBAAuB;IACxCO,eAAe,GAAGN,gBAAgB;IAClCO,IAAI,GAAG,EAAE;IACTC,OAAO;IACPC,cAAc;IACdC,cAAc;IACdC;EACJ,CAAC,GAAAT,IAAA;EAAA,oBACGR,KAAA,CAAAkB,aAAA,CAACjB,mBAAmB,qBAChBD,KAAA,CAAAkB,aAAA,CAAChB,yBAAyB,qBACtBF,KAAA,CAAAkB,aAAA,CAACf,KAAK;IAACgB,EAAE,EAAC,qBAAqB;IAACC,WAAW,EAAEX;EAAkB,CAAE,CAC1C,CAAC,eAC5BT,KAAA,CAAAkB,aAAA,CAACd,UAAU;IACPM,QAAQ,EAAEA,QAAS;IACnBC,cAAc,EAAEA,cAAe;IAC/BC,eAAe,EAAEA,eAAgB;IACjCS,WAAW,EAAER,IAAK;IAClBC,OAAO,EAAEA,OAAQ;IACjBG,WAAW,EAAEA,WAAY;IACzBD,cAAc,EAAEA,cAAe;IAC/BD,cAAc,EAAEA;EAAe,CAClC,CACgB,CAAC;AAAA,CACzB;AAEDR,aAAa,CAACe,WAAW,GAAG,eAAe;AAE3C,eAAef,aAAa"}
@@ -1,15 +1,8 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.StyledPositionInputSearch = exports.StyledPositionInput = void 0;
7
- var _styledComponents = _interopRequireDefault(require("styled-components"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
- const StyledPositionInput = exports.StyledPositionInput = _styledComponents.default.div`
1
+ import styled from 'styled-components';
2
+ export const StyledPositionInput = styled.div`
10
3
  position: relative;
11
4
  `;
12
- const StyledPositionInputSearch = exports.StyledPositionInputSearch = _styledComponents.default.div`
5
+ export const StyledPositionInputSearch = styled.div`
13
6
  position: absolute;
14
7
  width: 300px;
15
8
  left: 8px;
@@ -1 +1 @@
1
- {"version":3,"file":"PositionInput.styles.js","names":["_styledComponents","_interopRequireDefault","require","obj","__esModule","default","StyledPositionInput","exports","styled","div","StyledPositionInputSearch"],"sources":["../../../src/components/position-input/PositionInput.styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nexport const StyledPositionInput = styled.div`\n position: relative;\n`;\n\nexport const StyledPositionInputSearch = styled.div`\n position: absolute;\n width: 300px;\n left: 8px;\n top: 8px;\n z-index: 3;\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAuC,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEhC,MAAMG,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAGE,yBAAM,CAACC,GAAI;AAC9C;AACA,CAAC;AAEM,MAAMC,yBAAyB,GAAAH,OAAA,CAAAG,yBAAA,GAAGF,yBAAM,CAACC,GAAI;AACpD;AACA;AACA;AACA;AACA;AACA,CAAC"}
1
+ {"version":3,"file":"PositionInput.styles.js","names":["styled","StyledPositionInput","div","StyledPositionInputSearch"],"sources":["../../../src/components/position-input/PositionInput.styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nexport const StyledPositionInput = styled.div`\n position: relative;\n`;\n\nexport const StyledPositionInputSearch = styled.div`\n position: absolute;\n width: 300px;\n left: 8px;\n top: 8px;\n z-index: 3;\n`;\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,mBAAmB;AAEtC,OAAO,MAAMC,mBAAmB,GAAGD,MAAM,CAACE,GAAI;AAC9C;AACA,CAAC;AAED,OAAO,MAAMC,yBAAyB,GAAGH,MAAM,CAACE,GAAI;AACpD;AACA;AACA;AACA;AACA;AACA,CAAC"}
@@ -1,18 +1,9 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
8
- var _reactWrapper = require("@googlemaps/react-wrapper");
9
- var _MapWrapper = require("./MapWrapper.styles");
10
- var _api = require("@react-google-maps/api");
11
- var _Marker = _interopRequireDefault(require("./map/marker/Marker"));
12
- var _Map = _interopRequireDefault(require("./map/Map"));
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
15
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
1
+ import React, { useCallback, useEffect, useMemo, useState } from 'react';
2
+ import { Wrapper } from '@googlemaps/react-wrapper';
3
+ import { StyledMapWrapper } from './MapWrapper.styles';
4
+ import { Polygon } from '@react-google-maps/api';
5
+ import Marker from './map/marker/Marker';
6
+ import Map from './map/Map';
16
7
  const MapWrapper = _ref => {
17
8
  let {
18
9
  apiToken,
@@ -24,18 +15,18 @@ const MapWrapper = _ref => {
24
15
  onMarkerRemove,
25
16
  onMarkerChange
26
17
  } = _ref;
27
- const [polygonPath, setPolygonPath] = (0, _react.useState)();
28
- const [canPolyDraw, setCanPolyDraw] = (0, _react.useState)(false);
29
- const [zoom, setZoom] = (0, _react.useState)(initialZoom);
30
- const [center, setCenter] = (0, _react.useState)(initialPosition);
31
- const [internalMarkers, setInternalMarkers] = (0, _react.useState)();
32
- const [map, setMap] = (0, _react.useState)();
33
- (0, _react.useEffect)(() => {
18
+ const [polygonPath, setPolygonPath] = useState();
19
+ const [canPolyDraw, setCanPolyDraw] = useState(false);
20
+ const [zoom, setZoom] = useState(initialZoom);
21
+ const [center, setCenter] = useState(initialPosition);
22
+ const [internalMarkers, setInternalMarkers] = useState();
23
+ const [map, setMap] = useState();
24
+ useEffect(() => {
34
25
  if (markers) {
35
26
  setInternalMarkers(markers);
36
27
  }
37
28
  }, [markers]);
38
- const handleClick = (0, _react.useCallback)(e => {
29
+ const handleClick = useCallback(e => {
39
30
  const latLng = e.latLng?.toJSON();
40
31
  if (!latLng) {
41
32
  return;
@@ -57,7 +48,7 @@ const MapWrapper = _ref => {
57
48
  return prevState ? [...prevState, newMarker] : [newMarker];
58
49
  });
59
50
  }, [onMarkerAdd]);
60
- (0, _react.useEffect)(() => {
51
+ useEffect(() => {
61
52
  if (!internalMarkers) {
62
53
  return;
63
54
  }
@@ -110,7 +101,7 @@ const MapWrapper = _ref => {
110
101
  const handlePositionChange = position => {
111
102
  setCenter(position);
112
103
  };
113
- const handleMarkerChange = (0, _react.useCallback)(marker => {
104
+ const handleMarkerChange = useCallback(marker => {
114
105
  setInternalMarkers(prevState => {
115
106
  const updatedMarkers = (prevState ?? []).map(prevMarker => {
116
107
  if (prevMarker.id === marker.id) {
@@ -127,7 +118,7 @@ const MapWrapper = _ref => {
127
118
  return updatedMarkers;
128
119
  });
129
120
  }, [onMarkerChange]);
130
- const handleMarkerRemove = (0, _react.useCallback)(id => {
121
+ const handleMarkerRemove = useCallback(id => {
131
122
  setInternalMarkers(prevState => {
132
123
  if (typeof onMarkerRemove === 'function') {
133
124
  onMarkerRemove(id);
@@ -135,7 +126,7 @@ const MapWrapper = _ref => {
135
126
  return prevState ? prevState.filter(marker => marker.id !== id) : [];
136
127
  });
137
128
  }, [onMarkerRemove]);
138
- const markerList = (0, _react.useMemo)(() => {
129
+ const markerList = useMemo(() => {
139
130
  const items = [];
140
131
  if (!internalMarkers) {
141
132
  return items;
@@ -145,7 +136,7 @@ const MapWrapper = _ref => {
145
136
  id,
146
137
  position
147
138
  } = _ref2;
148
- items.push( /*#__PURE__*/_react.default.createElement(_Marker.default, {
139
+ items.push( /*#__PURE__*/React.createElement(Marker, {
149
140
  key: `marker_${id}`,
150
141
  id: id,
151
142
  position: position,
@@ -157,10 +148,10 @@ const MapWrapper = _ref => {
157
148
  });
158
149
  return items;
159
150
  }, [handleMarkerChange, handleMarkerRemove, internalMarkers, map]);
160
- return (0, _react.useMemo)(() => /*#__PURE__*/_react.default.createElement(_MapWrapper.StyledMapWrapper, null, /*#__PURE__*/_react.default.createElement(_reactWrapper.Wrapper, {
151
+ return useMemo(() => /*#__PURE__*/React.createElement(StyledMapWrapper, null, /*#__PURE__*/React.createElement(Wrapper, {
161
152
  apiKey: apiToken,
162
153
  libraries: ['places']
163
- }, /*#__PURE__*/_react.default.createElement(_Map.default, {
154
+ }, /*#__PURE__*/React.createElement(Map, {
164
155
  onClick: handleClick,
165
156
  onIdle: handleIdle,
166
157
  onPositionChange: handlePositionChange,
@@ -169,11 +160,11 @@ const MapWrapper = _ref => {
169
160
  fullscreenControl: false,
170
161
  mapTypeControl: false,
171
162
  streetViewControl: false
172
- }, markerList, canPolyDraw && /*#__PURE__*/_react.default.createElement(_api.Polygon, {
163
+ }, markerList, canPolyDraw && /*#__PURE__*/React.createElement(Polygon, {
173
164
  path: polygonPath,
174
165
  options: polygonOptions
175
166
  })))), [apiToken, handleClick, center, zoom, markerList, canPolyDraw, polygonPath, polygonOptions]);
176
167
  };
177
168
  MapWrapper.displayName = 'MapWrapper';
178
- var _default = exports.default = MapWrapper;
169
+ export default MapWrapper;
179
170
  //# sourceMappingURL=MapWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapWrapper.js","names":["_react","_interopRequireWildcard","require","_reactWrapper","_MapWrapper","_api","_Marker","_interopRequireDefault","_Map","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","MapWrapper","_ref","apiToken","polygonOptions","initialZoom","initialPosition","markers","onMarkerAdd","onMarkerRemove","onMarkerChange","polygonPath","setPolygonPath","useState","canPolyDraw","setCanPolyDraw","zoom","setZoom","center","setCenter","internalMarkers","setInternalMarkers","map","setMap","useEffect","handleClick","useCallback","latLng","toJSON","prevState","length","newMarker","position","lat","lng","id","path","maxLat","reduce","prev","current","minLat","maxLng","minLng","topLeft","find","item","bottomRight","centerLat","centerLng","polygonCenter","handleIdle","m","getZoom","getCenter","handlePositionChange","handleMarkerChange","marker","updatedMarkers","prevMarker","handleMarkerRemove","filter","markerList","useMemo","items","forEach","_ref2","push","createElement","key","isDraggable","onChange","onRemove","StyledMapWrapper","Wrapper","apiKey","libraries","onClick","onIdle","onPositionChange","fullscreenControl","mapTypeControl","streetViewControl","Polygon","options","displayName","_default","exports"],"sources":["../../../../src/components/position-input/map-wrapper/MapWrapper.tsx"],"sourcesContent":["import React, { FC, type ReactElement, useCallback, useEffect, useMemo, useState } from 'react';\nimport { Wrapper } from '@googlemaps/react-wrapper';\nimport { StyledMapWrapper } from './MapWrapper.styles';\nimport type { IMarker, PolygonOptions, Position } from '../../../types/positionInput';\nimport { Polygon } from '@react-google-maps/api';\nimport Marker from './map/marker/Marker';\nimport Map from './map/Map';\n\nexport type MapWrapperProps = {\n apiToken: string;\n polygonOptions: PolygonOptions;\n initialZoom: number;\n initialPosition: Position;\n markers?: IMarker[];\n onMarkerAdd?: (marker: IMarker) => void;\n onMarkerRemove?: (id: number) => void;\n onMarkerChange?: (markers: IMarker[]) => void;\n};\n\nconst MapWrapper: FC<MapWrapperProps> = ({\n apiToken,\n polygonOptions,\n initialZoom,\n initialPosition,\n markers,\n onMarkerAdd,\n onMarkerRemove,\n onMarkerChange,\n}) => {\n const [polygonPath, setPolygonPath] = useState<Position[]>();\n const [canPolyDraw, setCanPolyDraw] = useState(false);\n const [zoom, setZoom] = useState(initialZoom);\n const [center, setCenter] = useState<Position>(initialPosition);\n const [internalMarkers, setInternalMarkers] = useState<IMarker[]>();\n const [map, setMap] = useState<google.maps.Map>();\n\n useEffect(() => {\n if (markers) {\n setInternalMarkers(markers);\n }\n }, [markers]);\n\n const handleClick = useCallback(\n (e: google.maps.MapMouseEvent) => {\n const latLng = e.latLng?.toJSON();\n\n if (!latLng) {\n return;\n }\n\n setInternalMarkers((prevState) => {\n if (prevState && prevState.length >= 2) {\n return prevState;\n }\n\n const newMarker: IMarker = {\n position: { lat: latLng.lat, lng: latLng.lng },\n id: prevState ? prevState.length : 0,\n };\n\n if (typeof onMarkerAdd === 'function') {\n onMarkerAdd(newMarker);\n }\n\n return prevState ? [...prevState, newMarker] : [newMarker];\n });\n },\n [onMarkerAdd],\n );\n\n useEffect(() => {\n if (!internalMarkers) {\n return;\n }\n\n if (internalMarkers.length !== 2) {\n setCanPolyDraw(false);\n\n return;\n }\n\n const path: Position[] = [\n {\n lat: internalMarkers[0]?.position.lat ?? 0,\n lng: internalMarkers[0]?.position.lng ?? 0,\n },\n {\n lat: internalMarkers[0]?.position.lat ?? 0,\n lng: internalMarkers[1]?.position.lng ?? 0,\n },\n {\n lat: internalMarkers[1]?.position.lat ?? 0,\n lng: internalMarkers[1]?.position.lng ?? 0,\n },\n {\n lat: internalMarkers[1]?.position.lat ?? 0,\n lng: internalMarkers[0]?.position.lng ?? 0,\n },\n ];\n\n const maxLat = path.reduce((prev, current) => (prev.lat > current.lat ? prev : current));\n const minLat = path.reduce((prev, current) => (prev.lat < current.lat ? prev : current));\n const maxLng = path.reduce((prev, current) => (prev.lng > current.lng ? prev : current));\n const minLng = path.reduce((prev, current) => (prev.lng < current.lng ? prev : current));\n\n const topLeft = path.find((item) => item.lat === maxLat.lat && item.lng === minLng.lng);\n const bottomRight = path.find((item) => item.lat === minLat.lat && item.lng === maxLng.lng);\n\n if (!topLeft || !bottomRight) {\n return;\n }\n\n const centerLat = (topLeft.lat + bottomRight.lat) / 2;\n const centerLng = (topLeft.lng + bottomRight.lng) / 2;\n\n const polygonCenter = {\n lat: centerLat,\n lng: centerLng,\n };\n\n if (!polygonCenter) {\n return;\n }\n\n setCanPolyDraw(true);\n setPolygonPath(path);\n }, [internalMarkers]);\n\n const handleIdle = (m: google.maps.Map) => {\n setMap(m);\n setZoom(m.getZoom() ?? 0);\n setCenter(m.getCenter()?.toJSON() ?? { lat: 0, lng: 0 });\n };\n\n const handlePositionChange = (position: Position) => {\n setCenter(position);\n };\n\n const handleMarkerChange = useCallback(\n (marker: IMarker) => {\n setInternalMarkers((prevState) => {\n const updatedMarkers = (prevState ?? []).map((prevMarker) => {\n if (prevMarker.id === marker.id) {\n return { ...prevMarker, position: marker.position };\n }\n return prevMarker;\n });\n\n if (typeof onMarkerChange === 'function') {\n onMarkerChange(updatedMarkers);\n }\n\n return updatedMarkers;\n });\n },\n [onMarkerChange],\n );\n\n const handleMarkerRemove = useCallback(\n (id: number) => {\n setInternalMarkers((prevState) => {\n if (typeof onMarkerRemove === 'function') {\n onMarkerRemove(id);\n }\n\n return prevState ? prevState.filter((marker) => marker.id !== id) : [];\n });\n },\n [onMarkerRemove],\n );\n\n const markerList = useMemo(() => {\n const items: ReactElement[] = [];\n\n if (!internalMarkers) {\n return items;\n }\n\n internalMarkers.forEach(({ id, position }) => {\n items.push(\n <Marker\n key={`marker_${id}`}\n id={id}\n position={position}\n isDraggable\n map={map}\n onChange={handleMarkerChange}\n onRemove={handleMarkerRemove}\n />,\n );\n });\n\n return items;\n }, [handleMarkerChange, handleMarkerRemove, internalMarkers, map]);\n\n return useMemo(\n () => (\n <StyledMapWrapper>\n <Wrapper apiKey={apiToken} libraries={['places']}>\n {/* ToDo find better solution */}\n {/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */}\n {/* @ts-ignore */}\n <Map\n onClick={handleClick}\n onIdle={handleIdle}\n onPositionChange={handlePositionChange}\n center={center}\n zoom={zoom}\n fullscreenControl={false}\n mapTypeControl={false}\n streetViewControl={false}\n >\n {markerList}\n {canPolyDraw && <Polygon path={polygonPath} options={polygonOptions} />}\n </Map>\n </Wrapper>\n </StyledMapWrapper>\n ),\n [apiToken, handleClick, center, zoom, markerList, canPolyDraw, polygonPath, polygonOptions],\n );\n};\n\nMapWrapper.displayName = 'MapWrapper';\n\nexport default MapWrapper;\n"],"mappings":"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"}
1
+ {"version":3,"file":"MapWrapper.js","names":["React","useCallback","useEffect","useMemo","useState","Wrapper","StyledMapWrapper","Polygon","Marker","Map","MapWrapper","_ref","apiToken","polygonOptions","initialZoom","initialPosition","markers","onMarkerAdd","onMarkerRemove","onMarkerChange","polygonPath","setPolygonPath","canPolyDraw","setCanPolyDraw","zoom","setZoom","center","setCenter","internalMarkers","setInternalMarkers","map","setMap","handleClick","e","latLng","toJSON","prevState","length","newMarker","position","lat","lng","id","path","maxLat","reduce","prev","current","minLat","maxLng","minLng","topLeft","find","item","bottomRight","centerLat","centerLng","polygonCenter","handleIdle","m","getZoom","getCenter","handlePositionChange","handleMarkerChange","marker","updatedMarkers","prevMarker","handleMarkerRemove","filter","markerList","items","forEach","_ref2","push","createElement","key","isDraggable","onChange","onRemove","apiKey","libraries","onClick","onIdle","onPositionChange","fullscreenControl","mapTypeControl","streetViewControl","options","displayName"],"sources":["../../../../src/components/position-input/map-wrapper/MapWrapper.tsx"],"sourcesContent":["import React, { FC, type ReactElement, useCallback, useEffect, useMemo, useState } from 'react';\nimport { Wrapper } from '@googlemaps/react-wrapper';\nimport { StyledMapWrapper } from './MapWrapper.styles';\nimport type { IMarker, PolygonOptions, Position } from '../../../types/positionInput';\nimport { Polygon } from '@react-google-maps/api';\nimport Marker from './map/marker/Marker';\nimport Map from './map/Map';\n\nexport type MapWrapperProps = {\n apiToken: string;\n polygonOptions: PolygonOptions;\n initialZoom: number;\n initialPosition: Position;\n markers?: IMarker[];\n onMarkerAdd?: (marker: IMarker) => void;\n onMarkerRemove?: (id: number) => void;\n onMarkerChange?: (markers: IMarker[]) => void;\n};\n\nconst MapWrapper: FC<MapWrapperProps> = ({\n apiToken,\n polygonOptions,\n initialZoom,\n initialPosition,\n markers,\n onMarkerAdd,\n onMarkerRemove,\n onMarkerChange,\n}) => {\n const [polygonPath, setPolygonPath] = useState<Position[]>();\n const [canPolyDraw, setCanPolyDraw] = useState(false);\n const [zoom, setZoom] = useState(initialZoom);\n const [center, setCenter] = useState<Position>(initialPosition);\n const [internalMarkers, setInternalMarkers] = useState<IMarker[]>();\n const [map, setMap] = useState<google.maps.Map>();\n\n useEffect(() => {\n if (markers) {\n setInternalMarkers(markers);\n }\n }, [markers]);\n\n const handleClick = useCallback(\n (e: google.maps.MapMouseEvent) => {\n const latLng = e.latLng?.toJSON();\n\n if (!latLng) {\n return;\n }\n\n setInternalMarkers((prevState) => {\n if (prevState && prevState.length >= 2) {\n return prevState;\n }\n\n const newMarker: IMarker = {\n position: { lat: latLng.lat, lng: latLng.lng },\n id: prevState ? prevState.length : 0,\n };\n\n if (typeof onMarkerAdd === 'function') {\n onMarkerAdd(newMarker);\n }\n\n return prevState ? [...prevState, newMarker] : [newMarker];\n });\n },\n [onMarkerAdd],\n );\n\n useEffect(() => {\n if (!internalMarkers) {\n return;\n }\n\n if (internalMarkers.length !== 2) {\n setCanPolyDraw(false);\n\n return;\n }\n\n const path: Position[] = [\n {\n lat: internalMarkers[0]?.position.lat ?? 0,\n lng: internalMarkers[0]?.position.lng ?? 0,\n },\n {\n lat: internalMarkers[0]?.position.lat ?? 0,\n lng: internalMarkers[1]?.position.lng ?? 0,\n },\n {\n lat: internalMarkers[1]?.position.lat ?? 0,\n lng: internalMarkers[1]?.position.lng ?? 0,\n },\n {\n lat: internalMarkers[1]?.position.lat ?? 0,\n lng: internalMarkers[0]?.position.lng ?? 0,\n },\n ];\n\n const maxLat = path.reduce((prev, current) => (prev.lat > current.lat ? prev : current));\n const minLat = path.reduce((prev, current) => (prev.lat < current.lat ? prev : current));\n const maxLng = path.reduce((prev, current) => (prev.lng > current.lng ? prev : current));\n const minLng = path.reduce((prev, current) => (prev.lng < current.lng ? prev : current));\n\n const topLeft = path.find((item) => item.lat === maxLat.lat && item.lng === minLng.lng);\n const bottomRight = path.find((item) => item.lat === minLat.lat && item.lng === maxLng.lng);\n\n if (!topLeft || !bottomRight) {\n return;\n }\n\n const centerLat = (topLeft.lat + bottomRight.lat) / 2;\n const centerLng = (topLeft.lng + bottomRight.lng) / 2;\n\n const polygonCenter = {\n lat: centerLat,\n lng: centerLng,\n };\n\n if (!polygonCenter) {\n return;\n }\n\n setCanPolyDraw(true);\n setPolygonPath(path);\n }, [internalMarkers]);\n\n const handleIdle = (m: google.maps.Map) => {\n setMap(m);\n setZoom(m.getZoom() ?? 0);\n setCenter(m.getCenter()?.toJSON() ?? { lat: 0, lng: 0 });\n };\n\n const handlePositionChange = (position: Position) => {\n setCenter(position);\n };\n\n const handleMarkerChange = useCallback(\n (marker: IMarker) => {\n setInternalMarkers((prevState) => {\n const updatedMarkers = (prevState ?? []).map((prevMarker) => {\n if (prevMarker.id === marker.id) {\n return { ...prevMarker, position: marker.position };\n }\n return prevMarker;\n });\n\n if (typeof onMarkerChange === 'function') {\n onMarkerChange(updatedMarkers);\n }\n\n return updatedMarkers;\n });\n },\n [onMarkerChange],\n );\n\n const handleMarkerRemove = useCallback(\n (id: number) => {\n setInternalMarkers((prevState) => {\n if (typeof onMarkerRemove === 'function') {\n onMarkerRemove(id);\n }\n\n return prevState ? prevState.filter((marker) => marker.id !== id) : [];\n });\n },\n [onMarkerRemove],\n );\n\n const markerList = useMemo(() => {\n const items: ReactElement[] = [];\n\n if (!internalMarkers) {\n return items;\n }\n\n internalMarkers.forEach(({ id, position }) => {\n items.push(\n <Marker\n key={`marker_${id}`}\n id={id}\n position={position}\n isDraggable\n map={map}\n onChange={handleMarkerChange}\n onRemove={handleMarkerRemove}\n />,\n );\n });\n\n return items;\n }, [handleMarkerChange, handleMarkerRemove, internalMarkers, map]);\n\n return useMemo(\n () => (\n <StyledMapWrapper>\n <Wrapper apiKey={apiToken} libraries={['places']}>\n {/* ToDo find better solution */}\n {/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */}\n {/* @ts-ignore */}\n <Map\n onClick={handleClick}\n onIdle={handleIdle}\n onPositionChange={handlePositionChange}\n center={center}\n zoom={zoom}\n fullscreenControl={false}\n mapTypeControl={false}\n streetViewControl={false}\n >\n {markerList}\n {canPolyDraw && <Polygon path={polygonPath} options={polygonOptions} />}\n </Map>\n </Wrapper>\n </StyledMapWrapper>\n ),\n [apiToken, handleClick, center, zoom, markerList, canPolyDraw, polygonPath, polygonOptions],\n );\n};\n\nMapWrapper.displayName = 'MapWrapper';\n\nexport default MapWrapper;\n"],"mappings":"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"}
@@ -1,12 +1,5 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.StyledMapWrapper = void 0;
7
- var _styledComponents = _interopRequireDefault(require("styled-components"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
- const StyledMapWrapper = exports.StyledMapWrapper = _styledComponents.default.div`
1
+ import styled from 'styled-components';
2
+ export const StyledMapWrapper = styled.div`
10
3
  height: 500px;
11
4
  `;
12
5
  //# sourceMappingURL=MapWrapper.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapWrapper.styles.js","names":["_styledComponents","_interopRequireDefault","require","obj","__esModule","default","StyledMapWrapper","exports","styled","div"],"sources":["../../../../src/components/position-input/map-wrapper/MapWrapper.styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nexport const StyledMapWrapper = styled.div`\n height: 500px;\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAuC,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEhC,MAAMG,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAGE,yBAAM,CAACC,GAAI;AAC3C;AACA,CAAC"}
1
+ {"version":3,"file":"MapWrapper.styles.js","names":["styled","StyledMapWrapper","div"],"sources":["../../../../src/components/position-input/map-wrapper/MapWrapper.styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nexport const StyledMapWrapper = styled.div`\n height: 500px;\n`;\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,mBAAmB;AAEtC,OAAO,MAAMC,gBAAgB,GAAGD,MAAM,CAACE,GAAI;AAC3C;AACA,CAAC"}
@@ -1,14 +1,6 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
8
- var _Map = require("./Map.styles");
9
- var _positionInput = require("../../../../hooks/positionInput");
10
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
1
+ import React, { useEffect, useRef, useState } from 'react';
2
+ import { StyledMap } from './Map.styles';
3
+ import { useDeepCompareEffectForMaps } from '../../../../hooks/positionInput';
12
4
  const Map = _ref => {
13
5
  let {
14
6
  mapTypeControl,
@@ -21,9 +13,9 @@ const Map = _ref => {
21
13
  center,
22
14
  onPositionChange
23
15
  } = _ref;
24
- const [map, setMap] = (0, _react.useState)();
25
- const ref = (0, _react.useRef)(null);
26
- (0, _react.useEffect)(() => {
16
+ const [map, setMap] = useState();
17
+ const ref = useRef(null);
18
+ useEffect(() => {
27
19
  if (ref.current && !map) {
28
20
  setMap(new window.google.maps.Map(ref.current, {}));
29
21
  const input = document.getElementById('auto-complete-input');
@@ -49,7 +41,7 @@ const Map = _ref => {
49
41
  });
50
42
  }
51
43
  }, [ref, map, onPositionChange]);
52
- (0, _react.useEffect)(() => {
44
+ useEffect(() => {
53
45
  if (map) {
54
46
  map.setCenter(center);
55
47
  }
@@ -57,7 +49,7 @@ const Map = _ref => {
57
49
 
58
50
  // because React does not do deep comparisons, a custom hook is used
59
51
  // see discussion in https://github.com/googlemaps/js-samples/issues/946
60
- (0, _positionInput.useDeepCompareEffectForMaps)(() => {
52
+ useDeepCompareEffectForMaps(() => {
61
53
  if (map) {
62
54
  map.setOptions({
63
55
  mapTypeControl,
@@ -67,7 +59,7 @@ const Map = _ref => {
67
59
  });
68
60
  }
69
61
  }, [map]);
70
- (0, _react.useEffect)(() => {
62
+ useEffect(() => {
71
63
  if (map) {
72
64
  ['click', 'idle'].forEach(eventName => google.maps.event.clearListeners(map, eventName));
73
65
  if (onClick) {
@@ -78,14 +70,14 @@ const Map = _ref => {
78
70
  }
79
71
  }
80
72
  }, [map, onClick, onIdle]);
81
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Map.StyledMap, {
73
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(StyledMap, {
82
74
  ref: ref
83
- }), _react.default.Children.map(children, child => {
84
- if ( /*#__PURE__*/_react.default.isValidElement(child)) {
75
+ }), React.Children.map(children, child => {
76
+ if ( /*#__PURE__*/React.isValidElement(child)) {
85
77
  // set the map prop on the child component
86
78
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
87
79
  // @ts-ignore
88
- return /*#__PURE__*/_react.default.cloneElement(child, {
80
+ return /*#__PURE__*/React.cloneElement(child, {
89
81
  map
90
82
  });
91
83
  }
@@ -93,5 +85,5 @@ const Map = _ref => {
93
85
  }));
94
86
  };
95
87
  Map.displayName = 'Map';
96
- var _default = exports.default = Map;
88
+ export default Map;
97
89
  //# sourceMappingURL=Map.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Map.js","names":["_react","_interopRequireWildcard","require","_Map","_positionInput","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","Map","_ref","mapTypeControl","fullscreenControl","streetViewControl","children","onClick","onIdle","zoom","center","onPositionChange","map","setMap","useState","ref","useRef","useEffect","current","window","google","maps","input","document","getElementById","autoComplete","places","Autocomplete","fields","types","placeholder","addListener","place","getPlace","placeLocation","geometry","location","lat","lng","setCenter","useDeepCompareEffectForMaps","setOptions","forEach","eventName","event","clearListeners","createElement","Fragment","StyledMap","React","Children","child","isValidElement","cloneElement","displayName","_default","exports"],"sources":["../../../../../src/components/position-input/map-wrapper/map/Map.tsx"],"sourcesContent":["import React, { FC, type ReactElement, useEffect, useRef, useState } from 'react';\nimport { StyledMap } from './Map.styles';\nimport type { Position } from '../../../../types/positionInput';\nimport { useDeepCompareEffectForMaps } from '../../../../hooks/positionInput';\n\nexport type MapProps = {\n onClick: (event: google.maps.MapMouseEvent) => void;\n onIdle: (event: google.maps.Map) => void;\n onPositionChange: (position: Position) => void;\n children: ReactElement;\n center: Position;\n zoom: number;\n fullscreenControl: boolean;\n mapTypeControl: boolean;\n streetViewControl: boolean;\n};\n\nconst Map: FC<MapProps> = ({\n mapTypeControl,\n fullscreenControl,\n streetViewControl,\n children,\n onClick,\n onIdle,\n zoom,\n center,\n onPositionChange,\n}) => {\n const [map, setMap] = useState<google.maps.Map>();\n\n const ref = useRef(null);\n\n useEffect(() => {\n if (ref.current && !map) {\n setMap(new window.google.maps.Map(ref.current, {}));\n\n const input = document.getElementById('auto-complete-input') as HTMLInputElement;\n\n if (!input) {\n return;\n }\n\n const autoComplete = new google.maps.places.Autocomplete(input, {\n // componentRestrictions: { country: [\"de\"] },\n fields: ['address_component', 'geometry'],\n types: ['(cities)'],\n });\n\n input.placeholder = '';\n\n autoComplete.addListener('place_changed', () => {\n const place = autoComplete.getPlace();\n\n const placeLocation = place.geometry?.location;\n\n if (!placeLocation) {\n return;\n }\n\n onPositionChange({ lat: placeLocation.lat(), lng: placeLocation.lng() });\n });\n }\n }, [ref, map, onPositionChange]);\n\n useEffect(() => {\n if (map) {\n map.setCenter(center);\n }\n }, [center, map]);\n\n // because React does not do deep comparisons, a custom hook is used\n // see discussion in https://github.com/googlemaps/js-samples/issues/946\n useDeepCompareEffectForMaps(() => {\n if (map) {\n map.setOptions({ mapTypeControl, fullscreenControl, streetViewControl, zoom });\n }\n }, [map]);\n\n useEffect(() => {\n if (map) {\n ['click', 'idle'].forEach((eventName) =>\n google.maps.event.clearListeners(map, eventName),\n );\n\n if (onClick) {\n map.addListener('click', onClick);\n }\n\n if (onIdle) {\n map.addListener('idle', () => onIdle(map));\n }\n }\n }, [map, onClick, onIdle]);\n\n return (\n <>\n <StyledMap ref={ref} />\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n // set the map prop on the child component\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return React.cloneElement(child, { map });\n }\n return null;\n })}\n </>\n );\n};\n\nMap.displayName = 'Map';\n\nexport default Map;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Map.js","names":["React","useEffect","useRef","useState","StyledMap","useDeepCompareEffectForMaps","Map","_ref","mapTypeControl","fullscreenControl","streetViewControl","children","onClick","onIdle","zoom","center","onPositionChange","map","setMap","ref","current","window","google","maps","input","document","getElementById","autoComplete","places","Autocomplete","fields","types","placeholder","addListener","place","getPlace","placeLocation","geometry","location","lat","lng","setCenter","setOptions","forEach","eventName","event","clearListeners","createElement","Fragment","Children","child","isValidElement","cloneElement","displayName"],"sources":["../../../../../src/components/position-input/map-wrapper/map/Map.tsx"],"sourcesContent":["import React, { FC, type ReactElement, useEffect, useRef, useState } from 'react';\nimport { StyledMap } from './Map.styles';\nimport type { Position } from '../../../../types/positionInput';\nimport { useDeepCompareEffectForMaps } from '../../../../hooks/positionInput';\n\nexport type MapProps = {\n onClick: (event: google.maps.MapMouseEvent) => void;\n onIdle: (event: google.maps.Map) => void;\n onPositionChange: (position: Position) => void;\n children: ReactElement;\n center: Position;\n zoom: number;\n fullscreenControl: boolean;\n mapTypeControl: boolean;\n streetViewControl: boolean;\n};\n\nconst Map: FC<MapProps> = ({\n mapTypeControl,\n fullscreenControl,\n streetViewControl,\n children,\n onClick,\n onIdle,\n zoom,\n center,\n onPositionChange,\n}) => {\n const [map, setMap] = useState<google.maps.Map>();\n\n const ref = useRef(null);\n\n useEffect(() => {\n if (ref.current && !map) {\n setMap(new window.google.maps.Map(ref.current, {}));\n\n const input = document.getElementById('auto-complete-input') as HTMLInputElement;\n\n if (!input) {\n return;\n }\n\n const autoComplete = new google.maps.places.Autocomplete(input, {\n // componentRestrictions: { country: [\"de\"] },\n fields: ['address_component', 'geometry'],\n types: ['(cities)'],\n });\n\n input.placeholder = '';\n\n autoComplete.addListener('place_changed', () => {\n const place = autoComplete.getPlace();\n\n const placeLocation = place.geometry?.location;\n\n if (!placeLocation) {\n return;\n }\n\n onPositionChange({ lat: placeLocation.lat(), lng: placeLocation.lng() });\n });\n }\n }, [ref, map, onPositionChange]);\n\n useEffect(() => {\n if (map) {\n map.setCenter(center);\n }\n }, [center, map]);\n\n // because React does not do deep comparisons, a custom hook is used\n // see discussion in https://github.com/googlemaps/js-samples/issues/946\n useDeepCompareEffectForMaps(() => {\n if (map) {\n map.setOptions({ mapTypeControl, fullscreenControl, streetViewControl, zoom });\n }\n }, [map]);\n\n useEffect(() => {\n if (map) {\n ['click', 'idle'].forEach((eventName) =>\n google.maps.event.clearListeners(map, eventName),\n );\n\n if (onClick) {\n map.addListener('click', onClick);\n }\n\n if (onIdle) {\n map.addListener('idle', () => onIdle(map));\n }\n }\n }, [map, onClick, onIdle]);\n\n return (\n <>\n <StyledMap ref={ref} />\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n // set the map prop on the child component\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return React.cloneElement(child, { map });\n }\n return null;\n })}\n </>\n );\n};\n\nMap.displayName = 'Map';\n\nexport default Map;\n"],"mappings":"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"}
@@ -1,12 +1,5 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.StyledMap = void 0;
7
- var _styledComponents = _interopRequireDefault(require("styled-components"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
- const StyledMap = exports.StyledMap = _styledComponents.default.div`
1
+ import styled from 'styled-components';
2
+ export const StyledMap = styled.div`
10
3
  height: 100%;
11
4
  width: 100%;
12
5
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"Map.styles.js","names":["_styledComponents","_interopRequireDefault","require","obj","__esModule","default","StyledMap","exports","styled","div"],"sources":["../../../../../src/components/position-input/map-wrapper/map/Map.styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nexport const StyledMap = styled.div`\n height: 100%;\n width: 100%;\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAuC,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEhC,MAAMG,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,yBAAM,CAACC,GAAI;AACpC;AACA;AACA,CAAC"}
1
+ {"version":3,"file":"Map.styles.js","names":["styled","StyledMap","div"],"sources":["../../../../../src/components/position-input/map-wrapper/map/Map.styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nexport const StyledMap = styled.div`\n height: 100%;\n width: 100%;\n`;\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,mBAAmB;AAEtC,OAAO,MAAMC,SAAS,GAAGD,MAAM,CAACE,GAAI;AACpC;AACA;AACA,CAAC"}
@@ -1,10 +1,4 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _react = require("react");
1
+ import { useEffect, useState } from 'react';
8
2
  const Marker = _ref => {
9
3
  let {
10
4
  id,
@@ -14,8 +8,8 @@ const Marker = _ref => {
14
8
  onRemove,
15
9
  map
16
10
  } = _ref;
17
- const [pin, setPin] = (0, _react.useState)();
18
- (0, _react.useEffect)(() => {
11
+ const [pin, setPin] = useState();
12
+ useEffect(() => {
19
13
  if (pin) {
20
14
  google.maps.event.addListener(pin, 'dragend', evt => {
21
15
  const newLat = evt.latLng?.lat();
@@ -36,7 +30,7 @@ const Marker = _ref => {
36
30
  });
37
31
  }
38
32
  }, [pin, id, onChange, onRemove]);
39
- (0, _react.useEffect)(() => {
33
+ useEffect(() => {
40
34
  if (!pin) {
41
35
  setPin(new google.maps.Marker({
42
36
  map
@@ -50,7 +44,7 @@ const Marker = _ref => {
50
44
  }
51
45
  };
52
46
  }, [pin, map]);
53
- (0, _react.useEffect)(() => {
47
+ useEffect(() => {
54
48
  if (pin) {
55
49
  pin.setOptions({
56
50
  draggable: isDraggable,
@@ -62,5 +56,5 @@ const Marker = _ref => {
62
56
  return null;
63
57
  };
64
58
  Marker.displayName = 'Marker';
65
- var _default = exports.default = Marker;
59
+ export default Marker;
66
60
  //# sourceMappingURL=Marker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Marker.js","names":["_react","require","Marker","_ref","id","isDraggable","position","onChange","onRemove","map","pin","setPin","useState","useEffect","google","maps","event","addListener","evt","newLat","latLng","lat","newLng","lng","setMap","setOptions","draggable","displayName","_default","exports","default"],"sources":["../../../../../../src/components/position-input/map-wrapper/map/marker/Marker.tsx"],"sourcesContent":["import { FC, useEffect, useState } from 'react';\nimport type { IMarker, Position } from '../../../../../types/positionInput';\n\nexport type MarkerProps = {\n id: number;\n position: Position;\n isDraggable: boolean;\n onChange: (marker: IMarker) => void;\n onRemove: (id: number) => void;\n map?: google.maps.Map;\n};\n\nconst Marker: FC<MarkerProps> = ({ id, isDraggable, position, onChange, onRemove, map }) => {\n const [pin, setPin] = useState<google.maps.Marker>();\n\n useEffect(() => {\n if (pin) {\n google.maps.event.addListener(pin, 'dragend', (evt: google.maps.MapMouseEvent) => {\n const newLat = evt.latLng?.lat();\n const newLng = evt.latLng?.lng();\n\n if (!newLat || !newLng) {\n return;\n }\n\n onChange({ id, position: { lng: newLng, lat: newLat } });\n });\n\n google.maps.event.addListener(pin, 'rightclick', () => {\n onRemove(id);\n });\n }\n }, [pin, id, onChange, onRemove]);\n\n useEffect(() => {\n if (!pin) {\n setPin(new google.maps.Marker({ map }));\n }\n\n // remove marker from map on unmount\n return () => {\n if (pin) {\n pin.setMap(null);\n }\n };\n }, [pin, map]);\n\n useEffect(() => {\n if (pin) {\n pin.setOptions({\n draggable: isDraggable,\n position,\n map,\n });\n }\n }, [pin, isDraggable, position, map]);\n\n return null;\n};\n\nMarker.displayName = 'Marker';\n\nexport default Marker;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAYA,MAAMC,MAAuB,GAAGC,IAAA,IAA4D;EAAA,IAA3D;IAAEC,EAAE;IAAEC,WAAW;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC;EAAI,CAAC,GAAAN,IAAA;EACnF,MAAM,CAACO,GAAG,EAAEC,MAAM,CAAC,GAAG,IAAAC,eAAQ,EAAqB,CAAC;EAEpD,IAAAC,gBAAS,EAAC,MAAM;IACZ,IAAIH,GAAG,EAAE;MACLI,MAAM,CAACC,IAAI,CAACC,KAAK,CAACC,WAAW,CAACP,GAAG,EAAE,SAAS,EAAGQ,GAA8B,IAAK;QAC9E,MAAMC,MAAM,GAAGD,GAAG,CAACE,MAAM,EAAEC,GAAG,CAAC,CAAC;QAChC,MAAMC,MAAM,GAAGJ,GAAG,CAACE,MAAM,EAAEG,GAAG,CAAC,CAAC;QAEhC,IAAI,CAACJ,MAAM,IAAI,CAACG,MAAM,EAAE;UACpB;QACJ;QAEAf,QAAQ,CAAC;UAAEH,EAAE;UAAEE,QAAQ,EAAE;YAAEiB,GAAG,EAAED,MAAM;YAAED,GAAG,EAAEF;UAAO;QAAE,CAAC,CAAC;MAC5D,CAAC,CAAC;MAEFL,MAAM,CAACC,IAAI,CAACC,KAAK,CAACC,WAAW,CAACP,GAAG,EAAE,YAAY,EAAE,MAAM;QACnDF,QAAQ,CAACJ,EAAE,CAAC;MAChB,CAAC,CAAC;IACN;EACJ,CAAC,EAAE,CAACM,GAAG,EAAEN,EAAE,EAAEG,QAAQ,EAAEC,QAAQ,CAAC,CAAC;EAEjC,IAAAK,gBAAS,EAAC,MAAM;IACZ,IAAI,CAACH,GAAG,EAAE;MACNC,MAAM,CAAC,IAAIG,MAAM,CAACC,IAAI,CAACb,MAAM,CAAC;QAAEO;MAAI,CAAC,CAAC,CAAC;IAC3C;;IAEA;IACA,OAAO,MAAM;MACT,IAAIC,GAAG,EAAE;QACLA,GAAG,CAACc,MAAM,CAAC,IAAI,CAAC;MACpB;IACJ,CAAC;EACL,CAAC,EAAE,CAACd,GAAG,EAAED,GAAG,CAAC,CAAC;EAEd,IAAAI,gBAAS,EAAC,MAAM;IACZ,IAAIH,GAAG,EAAE;MACLA,GAAG,CAACe,UAAU,CAAC;QACXC,SAAS,EAAErB,WAAW;QACtBC,QAAQ;QACRG;MACJ,CAAC,CAAC;IACN;EACJ,CAAC,EAAE,CAACC,GAAG,EAAEL,WAAW,EAAEC,QAAQ,EAAEG,GAAG,CAAC,CAAC;EAErC,OAAO,IAAI;AACf,CAAC;AAEDP,MAAM,CAACyB,WAAW,GAAG,QAAQ;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEf5B,MAAM"}
1
+ {"version":3,"file":"Marker.js","names":["useEffect","useState","Marker","_ref","id","isDraggable","position","onChange","onRemove","map","pin","setPin","google","maps","event","addListener","evt","newLat","latLng","lat","newLng","lng","setMap","setOptions","draggable","displayName"],"sources":["../../../../../../src/components/position-input/map-wrapper/map/marker/Marker.tsx"],"sourcesContent":["import { FC, useEffect, useState } from 'react';\nimport type { IMarker, Position } from '../../../../../types/positionInput';\n\nexport type MarkerProps = {\n id: number;\n position: Position;\n isDraggable: boolean;\n onChange: (marker: IMarker) => void;\n onRemove: (id: number) => void;\n map?: google.maps.Map;\n};\n\nconst Marker: FC<MarkerProps> = ({ id, isDraggable, position, onChange, onRemove, map }) => {\n const [pin, setPin] = useState<google.maps.Marker>();\n\n useEffect(() => {\n if (pin) {\n google.maps.event.addListener(pin, 'dragend', (evt: google.maps.MapMouseEvent) => {\n const newLat = evt.latLng?.lat();\n const newLng = evt.latLng?.lng();\n\n if (!newLat || !newLng) {\n return;\n }\n\n onChange({ id, position: { lng: newLng, lat: newLat } });\n });\n\n google.maps.event.addListener(pin, 'rightclick', () => {\n onRemove(id);\n });\n }\n }, [pin, id, onChange, onRemove]);\n\n useEffect(() => {\n if (!pin) {\n setPin(new google.maps.Marker({ map }));\n }\n\n // remove marker from map on unmount\n return () => {\n if (pin) {\n pin.setMap(null);\n }\n };\n }, [pin, map]);\n\n useEffect(() => {\n if (pin) {\n pin.setOptions({\n draggable: isDraggable,\n position,\n map,\n });\n }\n }, [pin, isDraggable, position, map]);\n\n return null;\n};\n\nMarker.displayName = 'Marker';\n\nexport default Marker;\n"],"mappings":"AAAA,SAAaA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAY/C,MAAMC,MAAuB,GAAGC,IAAA,IAA4D;EAAA,IAA3D;IAAEC,EAAE;IAAEC,WAAW;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC;EAAI,CAAC,GAAAN,IAAA;EACnF,MAAM,CAACO,GAAG,EAAEC,MAAM,CAAC,GAAGV,QAAQ,CAAqB,CAAC;EAEpDD,SAAS,CAAC,MAAM;IACZ,IAAIU,GAAG,EAAE;MACLE,MAAM,CAACC,IAAI,CAACC,KAAK,CAACC,WAAW,CAACL,GAAG,EAAE,SAAS,EAAGM,GAA8B,IAAK;QAC9E,MAAMC,MAAM,GAAGD,GAAG,CAACE,MAAM,EAAEC,GAAG,CAAC,CAAC;QAChC,MAAMC,MAAM,GAAGJ,GAAG,CAACE,MAAM,EAAEG,GAAG,CAAC,CAAC;QAEhC,IAAI,CAACJ,MAAM,IAAI,CAACG,MAAM,EAAE;UACpB;QACJ;QAEAb,QAAQ,CAAC;UAAEH,EAAE;UAAEE,QAAQ,EAAE;YAAEe,GAAG,EAAED,MAAM;YAAED,GAAG,EAAEF;UAAO;QAAE,CAAC,CAAC;MAC5D,CAAC,CAAC;MAEFL,MAAM,CAACC,IAAI,CAACC,KAAK,CAACC,WAAW,CAACL,GAAG,EAAE,YAAY,EAAE,MAAM;QACnDF,QAAQ,CAACJ,EAAE,CAAC;MAChB,CAAC,CAAC;IACN;EACJ,CAAC,EAAE,CAACM,GAAG,EAAEN,EAAE,EAAEG,QAAQ,EAAEC,QAAQ,CAAC,CAAC;EAEjCR,SAAS,CAAC,MAAM;IACZ,IAAI,CAACU,GAAG,EAAE;MACNC,MAAM,CAAC,IAAIC,MAAM,CAACC,IAAI,CAACX,MAAM,CAAC;QAAEO;MAAI,CAAC,CAAC,CAAC;IAC3C;;IAEA;IACA,OAAO,MAAM;MACT,IAAIC,GAAG,EAAE;QACLA,GAAG,CAACY,MAAM,CAAC,IAAI,CAAC;MACpB;IACJ,CAAC;EACL,CAAC,EAAE,CAACZ,GAAG,EAAED,GAAG,CAAC,CAAC;EAEdT,SAAS,CAAC,MAAM;IACZ,IAAIU,GAAG,EAAE;MACLA,GAAG,CAACa,UAAU,CAAC;QACXC,SAAS,EAAEnB,WAAW;QACtBC,QAAQ;QACRG;MACJ,CAAC,CAAC;IACN;EACJ,CAAC,EAAE,CAACC,GAAG,EAAEL,WAAW,EAAEC,QAAQ,EAAEG,GAAG,CAAC,CAAC;EAErC,OAAO,IAAI;AACf,CAAC;AAEDP,MAAM,CAACuB,WAAW,GAAG,QAAQ;AAE7B,eAAevB,MAAM"}
@@ -1,10 +1,4 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DEFAULT_POSITION = exports.DEFAULT_POLYGON_OPTIONS = void 0;
7
- const DEFAULT_POLYGON_OPTIONS = exports.DEFAULT_POLYGON_OPTIONS = {
1
+ export const DEFAULT_POLYGON_OPTIONS = {
8
2
  strokeColor: '#000000',
9
3
  strokeOpacity: 0.8,
10
4
  strokeWeight: 1,
@@ -17,7 +11,7 @@ const DEFAULT_POLYGON_OPTIONS = exports.DEFAULT_POLYGON_OPTIONS = {
17
11
  radius: 30000,
18
12
  zIndex: 1
19
13
  };
20
- const DEFAULT_POSITION = exports.DEFAULT_POSITION = {
14
+ export const DEFAULT_POSITION = {
21
15
  lat: 52.067450969671796,
22
16
  lng: 7.017417
23
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"positionInput.js","names":["DEFAULT_POLYGON_OPTIONS","exports","strokeColor","strokeOpacity","strokeWeight","fillColor","fillOpacity","clickable","draggable","editable","visible","radius","zIndex","DEFAULT_POSITION","lat","lng"],"sources":["../../src/constants/positionInput.ts"],"sourcesContent":["import type { PolygonOptions, Position } from '../types/positionInput';\n\nexport const DEFAULT_POLYGON_OPTIONS: PolygonOptions = {\n strokeColor: '#000000',\n strokeOpacity: 0.8,\n strokeWeight: 1,\n fillColor: '#808080',\n fillOpacity: 0.25,\n clickable: false,\n draggable: false,\n editable: false,\n visible: true,\n radius: 30000,\n zIndex: 1,\n};\n\nexport const DEFAULT_POSITION: Position = {\n lat: 52.067450969671796,\n lng: 7.017417,\n};\n"],"mappings":";;;;;;AAEO,MAAMA,uBAAuC,GAAAC,OAAA,CAAAD,uBAAA,GAAG;EACnDE,WAAW,EAAE,SAAS;EACtBC,aAAa,EAAE,GAAG;EAClBC,YAAY,EAAE,CAAC;EACfC,SAAS,EAAE,SAAS;EACpBC,WAAW,EAAE,IAAI;EACjBC,SAAS,EAAE,KAAK;EAChBC,SAAS,EAAE,KAAK;EAChBC,QAAQ,EAAE,KAAK;EACfC,OAAO,EAAE,IAAI;EACbC,MAAM,EAAE,KAAK;EACbC,MAAM,EAAE;AACZ,CAAC;AAEM,MAAMC,gBAA0B,GAAAZ,OAAA,CAAAY,gBAAA,GAAG;EACtCC,GAAG,EAAE,kBAAkB;EACvBC,GAAG,EAAE;AACT,CAAC"}
1
+ {"version":3,"file":"positionInput.js","names":["DEFAULT_POLYGON_OPTIONS","strokeColor","strokeOpacity","strokeWeight","fillColor","fillOpacity","clickable","draggable","editable","visible","radius","zIndex","DEFAULT_POSITION","lat","lng"],"sources":["../../src/constants/positionInput.ts"],"sourcesContent":["import type { PolygonOptions, Position } from '../types/positionInput';\n\nexport const DEFAULT_POLYGON_OPTIONS: PolygonOptions = {\n strokeColor: '#000000',\n strokeOpacity: 0.8,\n strokeWeight: 1,\n fillColor: '#808080',\n fillOpacity: 0.25,\n clickable: false,\n draggable: false,\n editable: false,\n visible: true,\n radius: 30000,\n zIndex: 1,\n};\n\nexport const DEFAULT_POSITION: Position = {\n lat: 52.067450969671796,\n lng: 7.017417,\n};\n"],"mappings":"AAEA,OAAO,MAAMA,uBAAuC,GAAG;EACnDC,WAAW,EAAE,SAAS;EACtBC,aAAa,EAAE,GAAG;EAClBC,YAAY,EAAE,CAAC;EACfC,SAAS,EAAE,SAAS;EACpBC,WAAW,EAAE,IAAI;EACjBC,SAAS,EAAE,KAAK;EAChBC,SAAS,EAAE,KAAK;EAChBC,QAAQ,EAAE,KAAK;EACfC,OAAO,EAAE,IAAI;EACbC,MAAM,EAAE,KAAK;EACbC,MAAM,EAAE;AACZ,CAAC;AAED,OAAO,MAAMC,gBAA0B,GAAG;EACtCC,GAAG,EAAE,kBAAkB;EACvBC,GAAG,EAAE;AACT,CAAC"}
@@ -1,20 +1,13 @@
1
- "use strict";
1
+ import React, { useEffect } from 'react';
2
+ import { createCustomEqual } from 'fast-equals';
3
+ import { isLatLngLiteral } from '@googlemaps/typescript-guards';
2
4
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useDeepCompareEffectForMaps = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
8
- var _fastEquals = require("fast-equals");
9
- var _typescriptGuards = require("@googlemaps/typescript-guards");
10
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
5
  // Note do not touch!
13
6
 
14
7
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
15
8
  // @ts-ignore
16
- const deepCompareEqualsForMaps = (0, _fastEquals.createCustomEqual)(deepEqual => (a, b) => {
17
- if ((0, _typescriptGuards.isLatLngLiteral)(a) || a instanceof google.maps.LatLng || (0, _typescriptGuards.isLatLngLiteral)(b) || b instanceof google.maps.LatLng) {
9
+ const deepCompareEqualsForMaps = createCustomEqual(deepEqual => (a, b) => {
10
+ if (isLatLngLiteral(a) || a instanceof google.maps.LatLng || isLatLngLiteral(b) || b instanceof google.maps.LatLng) {
18
11
  return new google.maps.LatLng(a).equals(new google.maps.LatLng(b));
19
12
  }
20
13
 
@@ -22,16 +15,15 @@ const deepCompareEqualsForMaps = (0, _fastEquals.createCustomEqual)(deepEqual =>
22
15
  return deepEqual(a, b);
23
16
  });
24
17
  const useDeepCompareMemoize = value => {
25
- const ref = _react.default.useRef();
18
+ const ref = React.useRef();
26
19
  if (!deepCompareEqualsForMaps(value, ref.current)) {
27
20
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
28
21
  ref.current = value;
29
22
  }
30
23
  return ref.current;
31
24
  };
32
- const useDeepCompareEffectForMaps = (callback, dependencies) => {
25
+ export const useDeepCompareEffectForMaps = (callback, dependencies) => {
33
26
  // eslint-disable-next-line react-hooks/exhaustive-deps
34
- (0, _react.useEffect)(callback, dependencies.map(useDeepCompareMemoize));
27
+ useEffect(callback, dependencies.map(useDeepCompareMemoize));
35
28
  };
36
- exports.useDeepCompareEffectForMaps = useDeepCompareEffectForMaps;
37
29
  //# sourceMappingURL=positionInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"positionInput.js","names":["_react","_interopRequireWildcard","require","_fastEquals","_typescriptGuards","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","deepCompareEqualsForMaps","createCustomEqual","deepEqual","b","isLatLngLiteral","google","maps","LatLng","equals","useDeepCompareMemoize","value","ref","React","useRef","current","useDeepCompareEffectForMaps","callback","dependencies","useEffect","map","exports"],"sources":["../../src/hooks/positionInput.tsx"],"sourcesContent":["import React, { type EffectCallback, useEffect } from 'react';\nimport { createCustomEqual } from 'fast-equals';\nimport { isLatLngLiteral } from '@googlemaps/typescript-guards';\n\n// Note do not touch!\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nconst deepCompareEqualsForMaps = createCustomEqual((deepEqual) => (a, b) => {\n if (\n isLatLngLiteral(a) ||\n a instanceof google.maps.LatLng ||\n isLatLngLiteral(b) ||\n b instanceof google.maps.LatLng\n ) {\n return new google.maps.LatLng(a).equals(new google.maps.LatLng(b));\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-return\n return deepEqual(a, b);\n});\n\nconst useDeepCompareMemoize = (value: any) => {\n const ref = React.useRef();\n\n if (!deepCompareEqualsForMaps(value, ref.current)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n ref.current = value;\n }\n\n return ref.current;\n};\n\nexport const useDeepCompareEffectForMaps = (callback: EffectCallback, dependencies: any[]) => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(callback, dependencies.map(useDeepCompareMemoize));\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AAAgE,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAL,wBAAAK,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAEhE;;AAEA;AACA;AACA,MAAMY,wBAAwB,GAAG,IAAAC,6BAAiB,EAAEC,SAAS,IAAK,CAACZ,CAAC,EAAEa,CAAC,KAAK;EACxE,IACI,IAAAC,iCAAe,EAACd,CAAC,CAAC,IAClBA,CAAC,YAAYe,MAAM,CAACC,IAAI,CAACC,MAAM,IAC/B,IAAAH,iCAAe,EAACD,CAAC,CAAC,IAClBA,CAAC,YAAYE,MAAM,CAACC,IAAI,CAACC,MAAM,EACjC;IACE,OAAO,IAAIF,MAAM,CAACC,IAAI,CAACC,MAAM,CAACjB,CAAC,CAAC,CAACkB,MAAM,CAAC,IAAIH,MAAM,CAACC,IAAI,CAACC,MAAM,CAACJ,CAAC,CAAC,CAAC;EACtE;;EAEA;EACA,OAAOD,SAAS,CAACZ,CAAC,EAAEa,CAAC,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAMM,qBAAqB,GAAIC,KAAU,IAAK;EAC1C,MAAMC,GAAG,GAAGC,cAAK,CAACC,MAAM,CAAC,CAAC;EAE1B,IAAI,CAACb,wBAAwB,CAACU,KAAK,EAAEC,GAAG,CAACG,OAAO,CAAC,EAAE;IAC/C;IACAH,GAAG,CAACG,OAAO,GAAGJ,KAAK;EACvB;EAEA,OAAOC,GAAG,CAACG,OAAO;AACtB,CAAC;AAEM,MAAMC,2BAA2B,GAAGA,CAACC,QAAwB,EAAEC,YAAmB,KAAK;EAC1F;EACA,IAAAC,gBAAS,EAACF,QAAQ,EAAEC,YAAY,CAACE,GAAG,CAACV,qBAAqB,CAAC,CAAC;AAChE,CAAC;AAACW,OAAA,CAAAL,2BAAA,GAAAA,2BAAA"}
1
+ {"version":3,"file":"positionInput.js","names":["React","useEffect","createCustomEqual","isLatLngLiteral","deepCompareEqualsForMaps","deepEqual","a","b","google","maps","LatLng","equals","useDeepCompareMemoize","value","ref","useRef","current","useDeepCompareEffectForMaps","callback","dependencies","map"],"sources":["../../src/hooks/positionInput.tsx"],"sourcesContent":["import React, { type EffectCallback, useEffect } from 'react';\nimport { createCustomEqual } from 'fast-equals';\nimport { isLatLngLiteral } from '@googlemaps/typescript-guards';\n\n// Note do not touch!\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nconst deepCompareEqualsForMaps = createCustomEqual((deepEqual) => (a, b) => {\n if (\n isLatLngLiteral(a) ||\n a instanceof google.maps.LatLng ||\n isLatLngLiteral(b) ||\n b instanceof google.maps.LatLng\n ) {\n return new google.maps.LatLng(a).equals(new google.maps.LatLng(b));\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-return\n return deepEqual(a, b);\n});\n\nconst useDeepCompareMemoize = (value: any) => {\n const ref = React.useRef();\n\n if (!deepCompareEqualsForMaps(value, ref.current)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n ref.current = value;\n }\n\n return ref.current;\n};\n\nexport const useDeepCompareEffectForMaps = (callback: EffectCallback, dependencies: any[]) => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(callback, dependencies.map(useDeepCompareMemoize));\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAyBC,SAAS,QAAQ,OAAO;AAC7D,SAASC,iBAAiB,QAAQ,aAAa;AAC/C,SAASC,eAAe,QAAQ,+BAA+B;;AAE/D;;AAEA;AACA;AACA,MAAMC,wBAAwB,GAAGF,iBAAiB,CAAEG,SAAS,IAAK,CAACC,CAAC,EAAEC,CAAC,KAAK;EACxE,IACIJ,eAAe,CAACG,CAAC,CAAC,IAClBA,CAAC,YAAYE,MAAM,CAACC,IAAI,CAACC,MAAM,IAC/BP,eAAe,CAACI,CAAC,CAAC,IAClBA,CAAC,YAAYC,MAAM,CAACC,IAAI,CAACC,MAAM,EACjC;IACE,OAAO,IAAIF,MAAM,CAACC,IAAI,CAACC,MAAM,CAACJ,CAAC,CAAC,CAACK,MAAM,CAAC,IAAIH,MAAM,CAACC,IAAI,CAACC,MAAM,CAACH,CAAC,CAAC,CAAC;EACtE;;EAEA;EACA,OAAOF,SAAS,CAACC,CAAC,EAAEC,CAAC,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAMK,qBAAqB,GAAIC,KAAU,IAAK;EAC1C,MAAMC,GAAG,GAAGd,KAAK,CAACe,MAAM,CAAC,CAAC;EAE1B,IAAI,CAACX,wBAAwB,CAACS,KAAK,EAAEC,GAAG,CAACE,OAAO,CAAC,EAAE;IAC/C;IACAF,GAAG,CAACE,OAAO,GAAGH,KAAK;EACvB;EAEA,OAAOC,GAAG,CAACE,OAAO;AACtB,CAAC;AAED,OAAO,MAAMC,2BAA2B,GAAGA,CAACC,QAAwB,EAAEC,YAAmB,KAAK;EAC1F;EACAlB,SAAS,CAACiB,QAAQ,EAAEC,YAAY,CAACC,GAAG,CAACR,qBAAqB,CAAC,CAAC;AAChE,CAAC"}
package/lib/index.js CHANGED
@@ -1,14 +1,3 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "PositionInput", {
7
- enumerable: true,
8
- get: function () {
9
- return _PositionInput.default;
10
- }
11
- });
12
- var _PositionInput = _interopRequireDefault(require("./components/position-input/PositionInput"));
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1
+ // noinspection JSUnusedGlobalSymbols
2
+ export { default as PositionInput } from './components/position-input/PositionInput';
14
3
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_PositionInput","_interopRequireDefault","require","obj","__esModule","default"],"sources":["../src/index.ts"],"sourcesContent":["// noinspection JSUnusedGlobalSymbols\nexport { default as PositionInput } from './components/position-input/PositionInput';\nexport type { PolygonOptions, Position, IMarker as Marker } from './types/positionInput';\n"],"mappings":";;;;;;;;;;;AACA,IAAAA,cAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAqF,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA"}
1
+ {"version":3,"file":"index.js","names":["default","PositionInput"],"sources":["../src/index.ts"],"sourcesContent":["// noinspection JSUnusedGlobalSymbols\nexport { default as PositionInput } from './components/position-input/PositionInput';\nexport type { PolygonOptions, Position, IMarker as Marker } from './types/positionInput';\n"],"mappings":"AAAA;AACA,SAASA,OAAO,IAAIC,aAAa,QAAQ,2CAA2C"}
package/package.json CHANGED
@@ -1,7 +1,14 @@
1
1
  {
2
2
  "name": "@chayns-components/maps",
3
- "version": "5.0.0-beta.441",
3
+ "version": "5.0.0-beta.444",
4
4
  "description": "A set of beautiful React components for developing your own applications with chayns.",
5
+ "sideEffects": false,
6
+ "browserslist": [
7
+ ">0.5%",
8
+ "not dead",
9
+ "not op_mini all",
10
+ "not IE 11"
11
+ ],
5
12
  "keywords": [
6
13
  "chayns",
7
14
  "react",
@@ -33,28 +40,28 @@
33
40
  "url": "https://github.com/TobitSoftware/chayns-components/issues"
34
41
  },
35
42
  "devDependencies": {
36
- "@babel/cli": "^7.23.4",
37
- "@babel/core": "^7.23.7",
38
- "@babel/preset-env": "^7.23.8",
43
+ "@babel/cli": "^7.23.9",
44
+ "@babel/core": "^7.23.9",
45
+ "@babel/preset-env": "^7.23.9",
39
46
  "@babel/preset-react": "^7.23.3",
40
47
  "@babel/preset-typescript": "^7.23.3",
41
- "@types/google.maps": "^3.55.1",
42
- "@types/react": "^18.2.48",
43
- "@types/react-dom": "^18.2.18",
48
+ "@types/google.maps": "^3.55.3",
49
+ "@types/react": "^18.2.55",
50
+ "@types/react-dom": "^18.2.19",
44
51
  "@types/styled-components": "^5.1.34",
45
- "@types/uuid": "^9.0.7",
52
+ "@types/uuid": "^9.0.8",
46
53
  "babel-loader": "^9.1.3",
47
- "lerna": "^8.0.2",
54
+ "lerna": "^8.1.2",
48
55
  "react": "^18.2.0",
49
56
  "react-dom": "^18.2.0",
50
57
  "styled-components": "^6.1.8",
51
58
  "typescript": "^5.3.3"
52
59
  },
53
60
  "dependencies": {
54
- "@chayns-components/core": "^5.0.0-beta.441",
61
+ "@chayns-components/core": "^5.0.0-beta.444",
55
62
  "@googlemaps/react-wrapper": "^1.1.35",
56
63
  "@googlemaps/typescript-guards": "^2.0.3",
57
- "@react-google-maps/api": "^2.19.2",
64
+ "@react-google-maps/api": "^2.19.3",
58
65
  "fast-equals": "^5.0.1"
59
66
  },
60
67
  "peerDependencies": {
@@ -67,5 +74,5 @@
67
74
  "publishConfig": {
68
75
  "access": "public"
69
76
  },
70
- "gitHead": "d9b7d5cebd42707113634c1d54151306f6236d8f"
77
+ "gitHead": "7f05f8a55eebf93c43b1ece35fff0d5a7c3dfa73"
71
78
  }