@blaze-cms/plugin-google-maps-fe 0.124.0-alpha.8 → 0.124.1-alpha.1

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 (45) hide show
  1. package/CHANGELOG.md +280 -0
  2. package/lib/GoogleMaps/GoogleMaps.js +9 -6
  3. package/lib/GoogleMaps/GoogleMaps.js.map +1 -1
  4. package/lib/GoogleMaps/GoogleMapsFactory.js +3 -1
  5. package/lib/GoogleMaps/GoogleMapsFactory.js.map +1 -1
  6. package/lib/GoogleMaps/GoogleMapsHtml.js +32 -0
  7. package/lib/GoogleMaps/GoogleMapsHtml.js.map +1 -0
  8. package/lib/GoogleMaps/GoogleMapsRender.js +3 -1
  9. package/lib/GoogleMaps/GoogleMapsRender.js.map +1 -1
  10. package/lib/GoogleMaps/helpers/add-zoom-listener.js.map +1 -1
  11. package/lib/GoogleMaps/helpers/build-map-shapes.js +23 -18
  12. package/lib/GoogleMaps/helpers/build-map-shapes.js.map +1 -1
  13. package/lib/GoogleMaps/helpers/build-query.js.map +1 -1
  14. package/lib/GoogleMaps/helpers/build-shapes-configs.js.map +1 -1
  15. package/lib/GoogleMaps/helpers/get-center-coordinates.js.map +1 -1
  16. package/lib/GoogleMaps/helpers/set-map-options.js.map +1 -1
  17. package/lib/GoogleMaps/helpers/set-shapes.js +35 -11
  18. package/lib/GoogleMaps/helpers/set-shapes.js.map +1 -1
  19. package/lib/GoogleMaps/hooks/use-get-entity-schemas.js.map +1 -1
  20. package/lib/GoogleMaps/hooks/use-get-images.js.map +1 -1
  21. package/lib/constants.js +3 -1
  22. package/lib/constants.js.map +1 -1
  23. package/lib/index.js.map +1 -1
  24. package/lib-es/GoogleMaps/GoogleMaps.js +3 -3
  25. package/lib-es/GoogleMaps/GoogleMaps.js.map +1 -1
  26. package/lib-es/GoogleMaps/GoogleMapsFactory.js +2 -1
  27. package/lib-es/GoogleMaps/GoogleMapsFactory.js.map +1 -1
  28. package/lib-es/GoogleMaps/GoogleMapsHtml.js +18 -0
  29. package/lib-es/GoogleMaps/GoogleMapsHtml.js.map +1 -0
  30. package/lib-es/GoogleMaps/GoogleMapsRender.js +2 -1
  31. package/lib-es/GoogleMaps/GoogleMapsRender.js.map +1 -1
  32. package/lib-es/GoogleMaps/helpers/build-map-shapes.js +10 -20
  33. package/lib-es/GoogleMaps/helpers/build-map-shapes.js.map +1 -1
  34. package/lib-es/GoogleMaps/helpers/set-shapes.js +37 -11
  35. package/lib-es/GoogleMaps/helpers/set-shapes.js.map +1 -1
  36. package/lib-es/constants.js +2 -1
  37. package/lib-es/constants.js.map +1 -1
  38. package/package.json +4 -4
  39. package/src/GoogleMaps/GoogleMaps.js +2 -1
  40. package/src/GoogleMaps/GoogleMapsFactory.js +2 -1
  41. package/src/GoogleMaps/GoogleMapsHtml.js +16 -0
  42. package/src/GoogleMaps/GoogleMapsRender.js +2 -1
  43. package/src/GoogleMaps/helpers/build-map-shapes.js +1 -18
  44. package/src/GoogleMaps/helpers/set-shapes.js +43 -11
  45. package/src/constants.js +5 -1
@@ -1 +1 @@
1
- {"version":3,"file":"build-map-shapes.js","names":["getLatLonValues","keys","data","length","key","shift","getLatLong","latProp","lonProp","shape","latitude","longitude","latKeys","split","lonKeys","lat","lon","buildMapShapes","shapesOptions","shapesData","mapShapes","forEach","shapeKey","entityOptions","shapeOptions","dataSummaries","enableInfoPane","imageId","label","markerHeight","markerWidth","maxZoom","minZoom","type","useAsCenter","shapeData","Array","isArray","results","url","formatedShape","push"],"sources":["../../../src/GoogleMaps/helpers/build-map-shapes.js"],"sourcesContent":["const getLatLonValues = (keys, data) => {\n if (keys.length === 1) return data[keys];\n const key = keys.shift();\n return getLatLonValues(keys, data[key]);\n};\n\nconst getLatLong = (latProp, lonProp, shape, data) => {\n const { latitude, longitude } = shape;\n\n if (!latProp || !lonProp) return { latitude, longitude };\n const latKeys = latProp.split('.');\n const lonKeys = lonProp.split('.');\n const lat = getLatLonValues(latKeys, data);\n const lon = getLatLonValues(lonKeys, data);\n\n return { latitude: lat, longitude: lon };\n};\n\nconst buildMapShapes = (shapesOptions, shapesData) => {\n if (!shapesData) return [];\n const mapShapes = [];\n shapesOptions.forEach(shape => {\n const { shapeKey, entityOptions, shapeOptions } = shape;\n const { dataSummaries, enableInfoPane } = entityOptions;\n const {\n imageId,\n label,\n markerHeight,\n markerWidth,\n maxZoom,\n minZoom,\n type,\n useAsCenter\n } = shapeOptions;\n\n const shapeData = Array.isArray(shapesData[shapeKey])\n ? shapesData[shapeKey]\n : shapesData[shapeKey].results;\n if (!shapeData) return;\n const { latProp, lonProp } = entityOptions;\n\n shapeData.forEach(data => {\n const { url } = data;\n const { latitude, longitude } = getLatLong(latProp, lonProp, shapeOptions, data);\n\n const formatedShape = {\n latitude,\n longitude,\n dataSummaries,\n enableInfoPane,\n imageId,\n label,\n markerHeight,\n markerWidth,\n maxZoom,\n minZoom,\n type,\n url,\n useAsCenter,\n shapeData: data\n };\n\n mapShapes.push(formatedShape);\n });\n });\n\n return mapShapes;\n};\n\nexport default buildMapShapes;\n"],"mappings":"AAAA,MAAMA,eAAe,GAAG,CAACC,IAAD,EAAOC,IAAP,KAAgB;EACtC,IAAID,IAAI,CAACE,MAAL,KAAgB,CAApB,EAAuB,OAAOD,IAAI,CAACD,IAAD,CAAX;EACvB,MAAMG,GAAG,GAAGH,IAAI,CAACI,KAAL,EAAZ;EACA,OAAOL,eAAe,CAACC,IAAD,EAAOC,IAAI,CAACE,GAAD,CAAX,CAAtB;AACD,CAJD;;AAMA,MAAME,UAAU,GAAG,CAACC,OAAD,EAAUC,OAAV,EAAmBC,KAAnB,EAA0BP,IAA1B,KAAmC;EACpD,MAAM;IAAEQ,QAAF;IAAYC;EAAZ,IAA0BF,KAAhC;EAEA,IAAI,CAACF,OAAD,IAAY,CAACC,OAAjB,EAA0B,OAAO;IAAEE,QAAF;IAAYC;EAAZ,CAAP;EAC1B,MAAMC,OAAO,GAAGL,OAAO,CAACM,KAAR,CAAc,GAAd,CAAhB;EACA,MAAMC,OAAO,GAAGN,OAAO,CAACK,KAAR,CAAc,GAAd,CAAhB;EACA,MAAME,GAAG,GAAGf,eAAe,CAACY,OAAD,EAAUV,IAAV,CAA3B;EACA,MAAMc,GAAG,GAAGhB,eAAe,CAACc,OAAD,EAAUZ,IAAV,CAA3B;EAEA,OAAO;IAAEQ,QAAQ,EAAEK,GAAZ;IAAiBJ,SAAS,EAAEK;EAA5B,CAAP;AACD,CAVD;;AAYA,MAAMC,cAAc,GAAG,CAACC,aAAD,EAAgBC,UAAhB,KAA+B;EACpD,IAAI,CAACA,UAAL,EAAiB,OAAO,EAAP;EACjB,MAAMC,SAAS,GAAG,EAAlB;EACAF,aAAa,CAACG,OAAd,CAAsBZ,KAAK,IAAI;IAC7B,MAAM;MAAEa,QAAF;MAAYC,aAAZ;MAA2BC;IAA3B,IAA4Cf,KAAlD;IACA,MAAM;MAAEgB,aAAF;MAAiBC;IAAjB,IAAoCH,aAA1C;IACA,MAAM;MACJI,OADI;MAEJC,KAFI;MAGJC,YAHI;MAIJC,WAJI;MAKJC,OALI;MAMJC,OANI;MAOJC,IAPI;MAQJC;IARI,IASFV,YATJ;IAWA,MAAMW,SAAS,GAAGC,KAAK,CAACC,OAAN,CAAclB,UAAU,CAACG,QAAD,CAAxB,IACdH,UAAU,CAACG,QAAD,CADI,GAEdH,UAAU,CAACG,QAAD,CAAV,CAAqBgB,OAFzB;IAGA,IAAI,CAACH,SAAL,EAAgB;IAChB,MAAM;MAAE5B,OAAF;MAAWC;IAAX,IAAuBe,aAA7B;IAEAY,SAAS,CAACd,OAAV,CAAkBnB,IAAI,IAAI;MACxB,MAAM;QAAEqC;MAAF,IAAUrC,IAAhB;MACA,MAAM;QAAEQ,QAAF;QAAYC;MAAZ,IAA0BL,UAAU,CAACC,OAAD,EAAUC,OAAV,EAAmBgB,YAAnB,EAAiCtB,IAAjC,CAA1C;MAEA,MAAMsC,aAAa,GAAG;QACpB9B,QADoB;QAEpBC,SAFoB;QAGpBc,aAHoB;QAIpBC,cAJoB;QAKpBC,OALoB;QAMpBC,KANoB;QAOpBC,YAPoB;QAQpBC,WARoB;QASpBC,OAToB;QAUpBC,OAVoB;QAWpBC,IAXoB;QAYpBM,GAZoB;QAapBL,WAboB;QAcpBC,SAAS,EAAEjC;MAdS,CAAtB;MAiBAkB,SAAS,CAACqB,IAAV,CAAeD,aAAf;IACD,CAtBD;EAuBD,CA3CD;EA6CA,OAAOpB,SAAP;AACD,CAjDD;;AAmDA,eAAeH,cAAf"}
1
+ {"version":3,"file":"build-map-shapes.js","names":["getLatLonValues","keys","data","length","key","shift","getLatLong","latProp","lonProp","shape","latitude","longitude","latKeys","split","lonKeys","lat","lon","buildMapShapes","shapesOptions","shapesData","mapShapes","forEach","shapeKey","entityOptions","shapeOptions","dataSummaries","enableInfoPane","shapeData","Array","isArray","results","url","formatedShape","push"],"sources":["../../../src/GoogleMaps/helpers/build-map-shapes.js"],"sourcesContent":["const getLatLonValues = (keys, data) => {\n if (keys.length === 1) return data[keys];\n const key = keys.shift();\n return getLatLonValues(keys, data[key]);\n};\n\nconst getLatLong = (latProp, lonProp, shape, data) => {\n const { latitude, longitude } = shape;\n\n if (!latProp || !lonProp) return { latitude, longitude };\n const latKeys = latProp.split('.');\n const lonKeys = lonProp.split('.');\n const lat = getLatLonValues(latKeys, data);\n const lon = getLatLonValues(lonKeys, data);\n\n return { latitude: lat, longitude: lon };\n};\n\nconst buildMapShapes = (shapesOptions, shapesData) => {\n if (!shapesData) return [];\n const mapShapes = [];\n shapesOptions.forEach(shape => {\n const { shapeKey, entityOptions, shapeOptions } = shape;\n const { dataSummaries, enableInfoPane } = entityOptions;\n\n const shapeData = Array.isArray(shapesData[shapeKey])\n ? shapesData[shapeKey]\n : shapesData[shapeKey].results;\n if (!shapeData) return;\n const { latProp, lonProp } = entityOptions;\n\n shapeData.forEach(data => {\n const { url } = data;\n const { latitude, longitude } = getLatLong(latProp, lonProp, shapeOptions, data);\n\n const formatedShape = {\n ...shapeOptions,\n latitude,\n longitude,\n dataSummaries,\n enableInfoPane,\n url,\n shapeData: data\n };\n\n mapShapes.push(formatedShape);\n });\n });\n\n return mapShapes;\n};\n\nexport default buildMapShapes;\n"],"mappings":";;;;;;AAAA,MAAMA,eAAe,GAAG,CAACC,IAAD,EAAOC,IAAP,KAAgB;EACtC,IAAID,IAAI,CAACE,MAAL,KAAgB,CAApB,EAAuB,OAAOD,IAAI,CAACD,IAAD,CAAX;EACvB,MAAMG,GAAG,GAAGH,IAAI,CAACI,KAAL,EAAZ;EACA,OAAOL,eAAe,CAACC,IAAD,EAAOC,IAAI,CAACE,GAAD,CAAX,CAAtB;AACD,CAJD;;AAMA,MAAME,UAAU,GAAG,CAACC,OAAD,EAAUC,OAAV,EAAmBC,KAAnB,EAA0BP,IAA1B,KAAmC;EACpD,MAAM;IAAEQ,QAAF;IAAYC;EAAZ,IAA0BF,KAAhC;EAEA,IAAI,CAACF,OAAD,IAAY,CAACC,OAAjB,EAA0B,OAAO;IAAEE,QAAF;IAAYC;EAAZ,CAAP;EAC1B,MAAMC,OAAO,GAAGL,OAAO,CAACM,KAAR,CAAc,GAAd,CAAhB;EACA,MAAMC,OAAO,GAAGN,OAAO,CAACK,KAAR,CAAc,GAAd,CAAhB;EACA,MAAME,GAAG,GAAGf,eAAe,CAACY,OAAD,EAAUV,IAAV,CAA3B;EACA,MAAMc,GAAG,GAAGhB,eAAe,CAACc,OAAD,EAAUZ,IAAV,CAA3B;EAEA,OAAO;IAAEQ,QAAQ,EAAEK,GAAZ;IAAiBJ,SAAS,EAAEK;EAA5B,CAAP;AACD,CAVD;;AAYA,MAAMC,cAAc,GAAG,CAACC,aAAD,EAAgBC,UAAhB,KAA+B;EACpD,IAAI,CAACA,UAAL,EAAiB,OAAO,EAAP;EACjB,MAAMC,SAAS,GAAG,EAAlB;EACAF,aAAa,CAACG,OAAd,CAAsBZ,KAAK,IAAI;IAC7B,MAAM;MAAEa,QAAF;MAAYC,aAAZ;MAA2BC;IAA3B,IAA4Cf,KAAlD;IACA,MAAM;MAAEgB,aAAF;MAAiBC;IAAjB,IAAoCH,aAA1C;IAEA,MAAMI,SAAS,GAAGC,KAAK,CAACC,OAAN,CAAcV,UAAU,CAACG,QAAD,CAAxB,IACdH,UAAU,CAACG,QAAD,CADI,GAEdH,UAAU,CAACG,QAAD,CAAV,CAAqBQ,OAFzB;IAGA,IAAI,CAACH,SAAL,EAAgB;IAChB,MAAM;MAAEpB,OAAF;MAAWC;IAAX,IAAuBe,aAA7B;IAEAI,SAAS,CAACN,OAAV,CAAkBnB,IAAI,IAAI;MACxB,MAAM;QAAE6B;MAAF,IAAU7B,IAAhB;MACA,MAAM;QAAEQ,QAAF;QAAYC;MAAZ,IAA0BL,UAAU,CAACC,OAAD,EAAUC,OAAV,EAAmBgB,YAAnB,EAAiCtB,IAAjC,CAA1C;;MAEA,MAAM8B,aAAa,mCACdR,YADc;QAEjBd,QAFiB;QAGjBC,SAHiB;QAIjBc,aAJiB;QAKjBC,cALiB;QAMjBK,GANiB;QAOjBJ,SAAS,EAAEzB;MAPM,EAAnB;;MAUAkB,SAAS,CAACa,IAAV,CAAeD,aAAf;IACD,CAfD;EAgBD,CA1BD;EA4BA,OAAOZ,SAAP;AACD,CAhCD;;AAkCA,eAAeH,cAAf"}
@@ -12,7 +12,7 @@ import ReactDOMServer from 'react-dom/server';
12
12
  import { Link } from '@blaze-cms/nextjs-components';
13
13
  import { buildPropsToDisplayWithContent, summaryComponents, getClassModifiers } from '@blaze-cms/react-page-builder';
14
14
  import getPath from './get-path';
15
- import { MARKER, POLYLINE, POLYGON, RECTANGLE, CIRCLE, COLOR, CLICK, HEADING_LARGE, LIST } from '../../constants';
15
+ import { MARKER, POLYLINE, POLYGON, RECTANGLE, CIRCLE, COLOR, CLICK, HEADING_LARGE, LIST, DEFAULT_CUSTOM_MARKER_PATH } from '../../constants';
16
16
  const shapesArray = [];
17
17
  const infoWindowArray = [];
18
18
 
@@ -153,29 +153,55 @@ const infoWindowContent = async (imageData, dataSummaries, url, shapeData) => {
153
153
  return /*#__PURE__*/React.createElement(React.Fragment, null, shouldShowImage && getImageElement(), summariesWithContent);
154
154
  };
155
155
 
156
- const setMarker = (map, router, shape, imageData) => {
156
+ function getIcon(imageData, shape) {
157
157
  const {
158
- label = '',
158
+ imageId,
159
159
  markerWidth = 50,
160
160
  markerHeight = 50,
161
+ strokeColor,
162
+ strokeOpacity,
163
+ strokeWeight,
164
+ fillColor,
165
+ fillOpacity,
166
+ svgPath
167
+ } = shape;
168
+ const iconUrl = getIconUrl(imageId, imageData);
169
+ const icon = iconUrl ? {
170
+ url: iconUrl,
171
+ scaledSize: new window.google.maps.Size(markerWidth || 50, markerHeight || 50)
172
+ } : null;
173
+ if (icon) return icon;
174
+ if (!svgPath && !fillColor && !strokeColor) return {}; // any can be true for custom marker
175
+
176
+ const svgMarker = {
177
+ path: svgPath || DEFAULT_CUSTOM_MARKER_PATH,
178
+ strokeColor,
179
+ strokeOpacity,
180
+ strokeWeight,
181
+ fillColor,
182
+ fillOpacity,
183
+ rotation: 0,
184
+ scale: 2
185
+ };
186
+ return svgMarker;
187
+ }
188
+
189
+ const setMarker = (map, router, shape, imageData) => {
190
+ const {
191
+ label = '',
161
192
  latitude,
162
- longitude,
163
- imageId
193
+ longitude
164
194
  } = shape;
165
195
 
166
196
  if (isPositionCorrect(latitude, longitude)) {
167
- const iconUrl = getIconUrl(imageId, imageData);
168
- const icon = iconUrl ? {
169
- url: iconUrl,
170
- scaledSize: new window.google.maps.Size(markerWidth || 50, markerHeight || 50)
171
- } : {};
197
+ const svgMarker = getIcon(imageData, shape);
172
198
  const marker = new window.google.maps.Marker({
173
199
  position: {
174
200
  lat: latitude,
175
201
  lng: longitude
176
202
  },
177
203
  map,
178
- icon,
204
+ icon: svgMarker,
179
205
  title: label || ''
180
206
  });
181
207
  addShapeListeners(map, router, shape, imageData, marker);
@@ -1 +1 @@
1
- {"version":3,"file":"set-shapes.js","names":["React","isNumber","ReactDOMServer","Link","buildPropsToDisplayWithContent","summaryComponents","getClassModifiers","getPath","MARKER","POLYLINE","POLYGON","RECTANGLE","CIRCLE","COLOR","CLICK","HEADING_LARGE","LIST","shapesArray","infoWindowArray","clearShapes","length","forEach","shape","setMap","closeInfoWindows","infoWindow","close","addShapeListeners","map","router","imageData","shapeInstance","enableInfoPane","dataSummaries","url","shapeData","window","google","maps","InfoWindow","content","addListener","event","renderToString","infoWindowContent","setContent","setPosition","latLng","open","push","setStyleOptions","strokeColor","strokeOpacity","strokeWeight","fillColor","fillOpacity","styleSettings","Object","keys","reduce","acc","key","settingValue","shouldValueBeNumber","includes","hasValuePassedCondition","areRectangleBoundsNumbers","bounds","every","bound","isPositionCorrect","lat","lng","getIconUrl","imageId","image","find","id","summariesWithContent","Promise","all","dataSummary","elementTitle","type","propsToDisplay","otherProps","isTypeHeading","summaryPropsWithContent","modifier","SummaryComponent","render","preload","getDataSummaryComponent","component","shouldShowImage","getImageElement","imageUrl","data","imageElement","altText","setMarker","label","markerWidth","markerHeight","latitude","longitude","iconUrl","icon","scaledSize","Size","marker","Marker","position","title","setPolyline","paths","path","polyline","Polyline","geodesic","setPolygon","unParsedPaths","polygon","Polygon","setRectangle","northBound","southBound","eastBound","westBound","rectangle","Rectangle","north","south","east","west","setCircle","radius","circle","Circle","center","setShapes","shapes","mapZoom","getZoom","minZoom","maxZoom"],"sources":["../../../src/GoogleMaps/helpers/set-shapes.js"],"sourcesContent":["import React from 'react';\nimport isNumber from 'lodash.isnumber';\nimport ReactDOMServer from 'react-dom/server';\nimport { Link } from '@blaze-cms/nextjs-components';\nimport {\n buildPropsToDisplayWithContent,\n summaryComponents,\n getClassModifiers\n} from '@blaze-cms/react-page-builder';\nimport getPath from './get-path';\nimport {\n MARKER,\n POLYLINE,\n POLYGON,\n RECTANGLE,\n CIRCLE,\n COLOR,\n CLICK,\n HEADING_LARGE,\n LIST\n} from '../../constants';\n\nconst shapesArray = [];\nconst infoWindowArray = [];\n\nconst clearShapes = () => {\n if (shapesArray.length) {\n shapesArray.forEach(shape => shape.setMap(null));\n shapesArray.length = 0;\n }\n};\n\nconst closeInfoWindows = () => {\n if (infoWindowArray.length) {\n infoWindowArray.forEach(infoWindow => infoWindow.close());\n infoWindowArray.length = 0;\n }\n};\n\nconst addShapeListeners = (map, router, shape, imageData, shapeInstance) => {\n const { enableInfoPane = false, dataSummaries = [], url, shapeData } = shape;\n\n if (enableInfoPane) {\n const infoWindow = new window.google.maps.InfoWindow({\n content: ''\n });\n\n shapeInstance.addListener(CLICK, async event => {\n closeInfoWindows();\n const content = ReactDOMServer.renderToString(\n await infoWindowContent(imageData, dataSummaries, url, shapeData)\n );\n infoWindow.setContent(content);\n infoWindow.setPosition(event.latLng);\n infoWindow.open(map, shapeInstance);\n infoWindowArray.push(infoWindow);\n });\n } else if (url) {\n shapeInstance.addListener(CLICK, () => {\n router.push(url);\n });\n }\n};\n\nconst setStyleOptions = shape => {\n const { strokeColor, strokeOpacity, strokeWeight, fillColor, fillOpacity } = shape;\n const styleSettings = { strokeColor, fillColor, strokeOpacity, strokeWeight, fillOpacity };\n\n return {\n ...Object.keys(styleSettings).reduce((acc, key) => {\n const settingValue = styleSettings[key];\n const shouldValueBeNumber = !key.includes(COLOR);\n const hasValuePassedCondition = shouldValueBeNumber ? isNumber(settingValue) : settingValue;\n if (hasValuePassedCondition) acc[key] = settingValue;\n return acc;\n }, {})\n };\n};\n\nconst areRectangleBoundsNumbers = bounds => bounds.every(bound => isNumber(bound));\n\nconst isPositionCorrect = (lat, lng) => isNumber(lat) && isNumber(lng);\n\nconst getIconUrl = (imageId, imageData) => {\n if (!imageId) return '';\n const image = imageData.find(({ id }) => id === imageId);\n if (!image || !image.url) return '';\n\n return image.url;\n};\n\nconst infoWindowContent = async (imageData, dataSummaries, url, shapeData) => {\n const summariesWithContent = await Promise.all(\n dataSummaries.map(async dataSummary => {\n const { elementTitle, type, propsToDisplay, ...otherProps } = dataSummary;\n const isTypeHeading = type === HEADING_LARGE;\n const summaryPropsWithContent = buildPropsToDisplayWithContent(shapeData, propsToDisplay);\n const modifier = getClassModifiers(LIST, otherProps);\n const SummaryComponent = summaryComponents[type];\n await SummaryComponent.render.preload(); // preload dynamic nextjs component\n\n if (!summaryPropsWithContent.length) return null;\n\n const getDataSummaryComponent = () => {\n const component = (\n <SummaryComponent\n key={type}\n modifier={modifier}\n elementTitle={elementTitle}\n summaryPropsWithContent={summaryPropsWithContent}\n />\n );\n\n if (isTypeHeading && url) return <Link href={url}>{component}</Link>;\n\n return component;\n };\n\n return getDataSummaryComponent();\n })\n );\n const { imageId } = shapeData || {};\n const image = imageData.find(({ id }) => id === imageId);\n const shouldShowImage = image && image.url;\n\n const getImageElement = () => {\n const { url: imageUrl, data } = image;\n const imageElement = (\n <img className=\"info__window\" src={imageUrl} alt={data && data.altText ? data.altText : ''} />\n );\n\n if (url) return <Link href={url}>{imageElement}</Link>;\n\n return imageElement;\n };\n\n return (\n <>\n {shouldShowImage && getImageElement()}\n {summariesWithContent}\n </>\n );\n};\n\nconst setMarker = (map, router, shape, imageData) => {\n const { label = '', markerWidth = 50, markerHeight = 50, latitude, longitude, imageId } = shape;\n\n if (isPositionCorrect(latitude, longitude)) {\n const iconUrl = getIconUrl(imageId, imageData);\n\n const icon = iconUrl\n ? {\n url: iconUrl,\n scaledSize: new window.google.maps.Size(markerWidth || 50, markerHeight || 50)\n }\n : {};\n\n const marker = new window.google.maps.Marker({\n position: { lat: latitude, lng: longitude },\n map,\n icon,\n title: label || ''\n });\n\n addShapeListeners(map, router, shape, imageData, marker);\n\n shapesArray.push(marker);\n\n marker.setMap(map);\n }\n};\n\nconst setPolyline = (map, router, shape, imageData) => {\n const { paths } = shape;\n const path = getPath(paths);\n\n if (path.length) {\n const polyline = new window.google.maps.Polyline({\n path,\n geodesic: true,\n ...setStyleOptions(shape)\n });\n\n addShapeListeners(map, router, shape, imageData, polyline);\n\n shapesArray.push(polyline);\n\n polyline.setMap(map);\n }\n};\n\nconst setPolygon = (map, router, shape, imageData) => {\n const { paths: unParsedPaths } = shape;\n const paths = getPath(unParsedPaths);\n\n if (paths.length) {\n const polygon = new window.google.maps.Polygon({\n paths,\n ...setStyleOptions(shape)\n });\n\n addShapeListeners(map, router, shape, imageData, polygon);\n\n shapesArray.push(polygon);\n\n polygon.setMap(map);\n }\n};\n\nconst setRectangle = (map, router, shape, imageData) => {\n const { northBound, southBound, eastBound, westBound } = shape;\n if (areRectangleBoundsNumbers([northBound, southBound, eastBound, westBound])) {\n const rectangle = new window.google.maps.Rectangle({\n ...setStyleOptions(shape),\n map,\n bounds: {\n north: northBound,\n south: southBound,\n east: eastBound,\n west: westBound\n }\n });\n\n addShapeListeners(map, router, shape, imageData, rectangle);\n\n shapesArray.push(rectangle);\n\n rectangle.setMap(map);\n }\n};\n\nconst setCircle = (map, router, shape, imageData) => {\n const { latitude, longitude, radius } = shape;\n if (isPositionCorrect(latitude, longitude) && isNumber(radius)) {\n const circle = new window.google.maps.Circle({\n ...setStyleOptions(shape),\n map,\n center: { lat: latitude, lng: longitude },\n radius\n });\n\n addShapeListeners(map, router, shape, imageData, circle);\n\n shapesArray.push(circle);\n\n circle.setMap(map);\n }\n};\n\nconst setShapes = (map, router, shapes, imageData) => {\n const mapZoom = map.getZoom();\n clearShapes();\n\n shapes.forEach(shape => {\n const { type, minZoom, maxZoom } = shape;\n\n if (mapZoom >= minZoom && mapZoom <= maxZoom) {\n switch (type) {\n case MARKER: {\n setMarker(map, router, shape, imageData);\n break;\n }\n case POLYLINE: {\n setPolyline(map, router, shape, imageData);\n break;\n }\n case POLYGON: {\n setPolygon(map, router, shape, imageData);\n break;\n }\n case RECTANGLE: {\n setRectangle(map, router, shape, imageData);\n break;\n }\n case CIRCLE: {\n setCircle(map, router, shape, imageData);\n break;\n }\n default:\n break;\n }\n }\n });\n};\n\nexport default setShapes;\n"],"mappings":"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"}
1
+ {"version":3,"file":"set-shapes.js","names":["React","isNumber","ReactDOMServer","Link","buildPropsToDisplayWithContent","summaryComponents","getClassModifiers","getPath","MARKER","POLYLINE","POLYGON","RECTANGLE","CIRCLE","COLOR","CLICK","HEADING_LARGE","LIST","DEFAULT_CUSTOM_MARKER_PATH","shapesArray","infoWindowArray","clearShapes","length","forEach","shape","setMap","closeInfoWindows","infoWindow","close","addShapeListeners","map","router","imageData","shapeInstance","enableInfoPane","dataSummaries","url","shapeData","window","google","maps","InfoWindow","content","addListener","event","renderToString","infoWindowContent","setContent","setPosition","latLng","open","push","setStyleOptions","strokeColor","strokeOpacity","strokeWeight","fillColor","fillOpacity","styleSettings","Object","keys","reduce","acc","key","settingValue","shouldValueBeNumber","includes","hasValuePassedCondition","areRectangleBoundsNumbers","bounds","every","bound","isPositionCorrect","lat","lng","getIconUrl","imageId","image","find","id","summariesWithContent","Promise","all","dataSummary","elementTitle","type","propsToDisplay","otherProps","isTypeHeading","summaryPropsWithContent","modifier","SummaryComponent","render","preload","getDataSummaryComponent","component","shouldShowImage","getImageElement","imageUrl","data","imageElement","altText","getIcon","markerWidth","markerHeight","svgPath","iconUrl","icon","scaledSize","Size","svgMarker","path","rotation","scale","setMarker","label","latitude","longitude","marker","Marker","position","title","setPolyline","paths","polyline","Polyline","geodesic","setPolygon","unParsedPaths","polygon","Polygon","setRectangle","northBound","southBound","eastBound","westBound","rectangle","Rectangle","north","south","east","west","setCircle","radius","circle","Circle","center","setShapes","shapes","mapZoom","getZoom","minZoom","maxZoom"],"sources":["../../../src/GoogleMaps/helpers/set-shapes.js"],"sourcesContent":["import React from 'react';\nimport isNumber from 'lodash.isnumber';\nimport ReactDOMServer from 'react-dom/server';\nimport { Link } from '@blaze-cms/nextjs-components';\nimport {\n buildPropsToDisplayWithContent,\n summaryComponents,\n getClassModifiers\n} from '@blaze-cms/react-page-builder';\nimport getPath from './get-path';\nimport {\n MARKER,\n POLYLINE,\n POLYGON,\n RECTANGLE,\n CIRCLE,\n COLOR,\n CLICK,\n HEADING_LARGE,\n LIST,\n DEFAULT_CUSTOM_MARKER_PATH\n} from '../../constants';\n\nconst shapesArray = [];\nconst infoWindowArray = [];\n\nconst clearShapes = () => {\n if (shapesArray.length) {\n shapesArray.forEach(shape => shape.setMap(null));\n shapesArray.length = 0;\n }\n};\n\nconst closeInfoWindows = () => {\n if (infoWindowArray.length) {\n infoWindowArray.forEach(infoWindow => infoWindow.close());\n infoWindowArray.length = 0;\n }\n};\n\nconst addShapeListeners = (map, router, shape, imageData, shapeInstance) => {\n const { enableInfoPane = false, dataSummaries = [], url, shapeData } = shape;\n\n if (enableInfoPane) {\n const infoWindow = new window.google.maps.InfoWindow({\n content: ''\n });\n\n shapeInstance.addListener(CLICK, async event => {\n closeInfoWindows();\n const content = ReactDOMServer.renderToString(\n await infoWindowContent(imageData, dataSummaries, url, shapeData)\n );\n infoWindow.setContent(content);\n infoWindow.setPosition(event.latLng);\n infoWindow.open(map, shapeInstance);\n infoWindowArray.push(infoWindow);\n });\n } else if (url) {\n shapeInstance.addListener(CLICK, () => {\n router.push(url);\n });\n }\n};\n\nconst setStyleOptions = shape => {\n const { strokeColor, strokeOpacity, strokeWeight, fillColor, fillOpacity } = shape;\n const styleSettings = { strokeColor, fillColor, strokeOpacity, strokeWeight, fillOpacity };\n\n return {\n ...Object.keys(styleSettings).reduce((acc, key) => {\n const settingValue = styleSettings[key];\n const shouldValueBeNumber = !key.includes(COLOR);\n const hasValuePassedCondition = shouldValueBeNumber ? isNumber(settingValue) : settingValue;\n if (hasValuePassedCondition) acc[key] = settingValue;\n return acc;\n }, {})\n };\n};\n\nconst areRectangleBoundsNumbers = bounds => bounds.every(bound => isNumber(bound));\n\nconst isPositionCorrect = (lat, lng) => isNumber(lat) && isNumber(lng);\n\nconst getIconUrl = (imageId, imageData) => {\n if (!imageId) return '';\n const image = imageData.find(({ id }) => id === imageId);\n if (!image || !image.url) return '';\n\n return image.url;\n};\n\nconst infoWindowContent = async (imageData, dataSummaries, url, shapeData) => {\n const summariesWithContent = await Promise.all(\n dataSummaries.map(async dataSummary => {\n const { elementTitle, type, propsToDisplay, ...otherProps } = dataSummary;\n const isTypeHeading = type === HEADING_LARGE;\n const summaryPropsWithContent = buildPropsToDisplayWithContent(shapeData, propsToDisplay);\n const modifier = getClassModifiers(LIST, otherProps);\n const SummaryComponent = summaryComponents[type];\n await SummaryComponent.render.preload(); // preload dynamic nextjs component\n\n if (!summaryPropsWithContent.length) return null;\n\n const getDataSummaryComponent = () => {\n const component = (\n <SummaryComponent\n key={type}\n modifier={modifier}\n elementTitle={elementTitle}\n summaryPropsWithContent={summaryPropsWithContent}\n />\n );\n\n if (isTypeHeading && url) return <Link href={url}>{component}</Link>;\n\n return component;\n };\n\n return getDataSummaryComponent();\n })\n );\n const { imageId } = shapeData || {};\n const image = imageData.find(({ id }) => id === imageId);\n const shouldShowImage = image && image.url;\n\n const getImageElement = () => {\n const { url: imageUrl, data } = image;\n const imageElement = (\n <img className=\"info__window\" src={imageUrl} alt={data && data.altText ? data.altText : ''} />\n );\n\n if (url) return <Link href={url}>{imageElement}</Link>;\n\n return imageElement;\n };\n\n return (\n <>\n {shouldShowImage && getImageElement()}\n {summariesWithContent}\n </>\n );\n};\n\nfunction getIcon(imageData, shape) {\n const {\n imageId,\n markerWidth = 50,\n markerHeight = 50,\n strokeColor,\n strokeOpacity,\n strokeWeight,\n fillColor,\n fillOpacity,\n svgPath\n } = shape;\n const iconUrl = getIconUrl(imageId, imageData);\n\n const icon = iconUrl\n ? {\n url: iconUrl,\n scaledSize: new window.google.maps.Size(markerWidth || 50, markerHeight || 50)\n }\n : null;\n\n if (icon) return icon;\n\n if (!svgPath && !fillColor && !strokeColor) return {}; // any can be true for custom marker\n\n const svgMarker = {\n path: svgPath || DEFAULT_CUSTOM_MARKER_PATH,\n strokeColor,\n strokeOpacity,\n strokeWeight,\n fillColor,\n fillOpacity,\n rotation: 0,\n scale: 2\n };\n return svgMarker;\n}\n\nconst setMarker = (map, router, shape, imageData) => {\n const { label = '', latitude, longitude } = shape;\n\n if (isPositionCorrect(latitude, longitude)) {\n const svgMarker = getIcon(imageData, shape);\n\n const marker = new window.google.maps.Marker({\n position: { lat: latitude, lng: longitude },\n map,\n icon: svgMarker,\n title: label || ''\n });\n\n addShapeListeners(map, router, shape, imageData, marker);\n\n shapesArray.push(marker);\n\n marker.setMap(map);\n }\n};\n\nconst setPolyline = (map, router, shape, imageData) => {\n const { paths } = shape;\n const path = getPath(paths);\n\n if (path.length) {\n const polyline = new window.google.maps.Polyline({\n path,\n geodesic: true,\n ...setStyleOptions(shape)\n });\n\n addShapeListeners(map, router, shape, imageData, polyline);\n\n shapesArray.push(polyline);\n\n polyline.setMap(map);\n }\n};\n\nconst setPolygon = (map, router, shape, imageData) => {\n const { paths: unParsedPaths } = shape;\n const paths = getPath(unParsedPaths);\n\n if (paths.length) {\n const polygon = new window.google.maps.Polygon({\n paths,\n ...setStyleOptions(shape)\n });\n\n addShapeListeners(map, router, shape, imageData, polygon);\n\n shapesArray.push(polygon);\n\n polygon.setMap(map);\n }\n};\n\nconst setRectangle = (map, router, shape, imageData) => {\n const { northBound, southBound, eastBound, westBound } = shape;\n if (areRectangleBoundsNumbers([northBound, southBound, eastBound, westBound])) {\n const rectangle = new window.google.maps.Rectangle({\n ...setStyleOptions(shape),\n map,\n bounds: {\n north: northBound,\n south: southBound,\n east: eastBound,\n west: westBound\n }\n });\n\n addShapeListeners(map, router, shape, imageData, rectangle);\n\n shapesArray.push(rectangle);\n\n rectangle.setMap(map);\n }\n};\n\nconst setCircle = (map, router, shape, imageData) => {\n const { latitude, longitude, radius } = shape;\n if (isPositionCorrect(latitude, longitude) && isNumber(radius)) {\n const circle = new window.google.maps.Circle({\n ...setStyleOptions(shape),\n map,\n center: { lat: latitude, lng: longitude },\n radius\n });\n\n addShapeListeners(map, router, shape, imageData, circle);\n\n shapesArray.push(circle);\n\n circle.setMap(map);\n }\n};\n\nconst setShapes = (map, router, shapes, imageData) => {\n const mapZoom = map.getZoom();\n clearShapes();\n\n shapes.forEach(shape => {\n const { type, minZoom, maxZoom } = shape;\n\n if (mapZoom >= minZoom && mapZoom <= maxZoom) {\n switch (type) {\n case MARKER: {\n setMarker(map, router, shape, imageData);\n break;\n }\n case POLYLINE: {\n setPolyline(map, router, shape, imageData);\n break;\n }\n case POLYGON: {\n setPolygon(map, router, shape, imageData);\n break;\n }\n case RECTANGLE: {\n setRectangle(map, router, shape, imageData);\n break;\n }\n case CIRCLE: {\n setCircle(map, router, shape, imageData);\n break;\n }\n default:\n break;\n }\n }\n });\n};\n\nexport default setShapes;\n"],"mappings":"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"}
@@ -85,5 +85,6 @@ const IN_VIEW_CONFIG = {
85
85
  offset: '200px'
86
86
  };
87
87
  const DEFAULT_SELECT_VALUE = 'Default';
88
- export { PLUGIN_NAME, GOOGLE_MAPS_SCRIPT, COOPERATIVE, NONE, LOAD, SCRIPT, ROADMAP, SATELLITE, TERRAIN, MARKER, POLYLINE, POLYGON, RECTANGLE, CIRCLE, DEFAULT_OPTIONS, FILL_OPTIONS, DEFAULT_COLOR, ZOOM_CHANGED, COLOR, IMAGE_ID, URL, ID, CLICK, ELEMENT_GEOMETRY, FEATURE_TYPE_MAP, ALL, HEADING_LARGE, LIST, IN_VIEW_CONFIG, DISABLE_TRANSPORTATION_STYLES, DISABLE_POI_STYLES, DISABLE_BOUNDARIES_STYLES, DISABLE_LABELS_STYLES, DEFAULT_SELECT_VALUE };
88
+ const DEFAULT_CUSTOM_MARKER_PATH = 'M12,11.5A2.5,2.5 0 0,1 9.5,9A2.5,2.5 0 0,1 12,6.5A2.5,2.5 0 0,1 14.5,9A2.5,2.5 0 0,1 12,11.5M12,2A7,7 0 0,0 5,9C5,14.25 12,22 12,22C12,22 19,14.25 19,9A7,7 0 0,0 12,2Z';
89
+ export { PLUGIN_NAME, GOOGLE_MAPS_SCRIPT, COOPERATIVE, NONE, LOAD, SCRIPT, ROADMAP, SATELLITE, TERRAIN, MARKER, POLYLINE, POLYGON, RECTANGLE, CIRCLE, DEFAULT_OPTIONS, FILL_OPTIONS, DEFAULT_COLOR, ZOOM_CHANGED, COLOR, IMAGE_ID, URL, ID, CLICK, ELEMENT_GEOMETRY, FEATURE_TYPE_MAP, ALL, HEADING_LARGE, LIST, IN_VIEW_CONFIG, DISABLE_TRANSPORTATION_STYLES, DISABLE_POI_STYLES, DISABLE_BOUNDARIES_STYLES, DISABLE_LABELS_STYLES, DEFAULT_SELECT_VALUE, DEFAULT_CUSTOM_MARKER_PATH };
89
90
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["PLUGIN_NAME","GOOGLE_MAPS_SCRIPT","COOPERATIVE","NONE","LOAD","SCRIPT","ROADMAP","SATELLITE","TERRAIN","MARKER","POLYLINE","POLYGON","RECTANGLE","CIRCLE","DEFAULT_COLOR","DEFAULT_OPTIONS","strokeOpacity","strokeWeight","FILL_OPTIONS","fillOpacity","DISABLE_LABELS_STYLES","elementType","stylers","visibility","DISABLE_BOUNDARIES_STYLES","featureType","DISABLE_POI_STYLES","DISABLE_TRANSPORTATION_STYLES","ZOOM_CHANGED","COLOR","IMAGE_ID","URL","ID","CLICK","ELEMENT_GEOMETRY","FEATURE_TYPE_MAP","waterColor","landscapeColor","ALL","HEADING_LARGE","LIST","IN_VIEW_CONFIG","once","offset","DEFAULT_SELECT_VALUE"],"sources":["../src/constants.js"],"sourcesContent":["const PLUGIN_NAME = 'google-maps-fe';\nconst GOOGLE_MAPS_SCRIPT = 'https://maps.googleapis.com/maps/api/js?key=';\nconst COOPERATIVE = 'cooperative';\nconst NONE = 'none';\nconst LOAD = 'load';\nconst SCRIPT = 'script';\nconst ROADMAP = 'roadmap';\nconst SATELLITE = 'satellite';\nconst TERRAIN = 'terrain';\nconst MARKER = 'marker';\nconst POLYLINE = 'polyline';\nconst POLYGON = 'polygon';\nconst RECTANGLE = 'rectangle';\nconst CIRCLE = 'circle';\nconst DEFAULT_COLOR = '#FF0000';\nconst DEFAULT_OPTIONS = {\n strokeOpacity: 1.0,\n strokeWeight: 2\n};\nconst FILL_OPTIONS = {\n fillOpacity: 0.35\n};\n\nconst DISABLE_LABELS_STYLES = [\n {\n elementType: 'labels',\n stylers: [\n {\n visibility: 'off'\n }\n ]\n }\n];\n\nconst DISABLE_BOUNDARIES_STYLES = [\n {\n featureType: 'administrative',\n elementType: 'geometry',\n stylers: [\n {\n visibility: 'off'\n }\n ]\n },\n {\n featureType: 'administrative.land_parcel',\n stylers: [\n {\n visibility: 'off'\n }\n ]\n },\n {\n featureType: 'administrative.neighborhood',\n stylers: [\n {\n visibility: 'off'\n }\n ]\n }\n];\n\nconst DISABLE_POI_STYLES = [\n {\n featureType: 'poi',\n stylers: [\n {\n visibility: 'off'\n }\n ]\n }\n];\n\nconst DISABLE_TRANSPORTATION_STYLES = [\n {\n featureType: 'road',\n stylers: [\n {\n visibility: 'off'\n }\n ]\n },\n {\n featureType: 'road',\n elementType: 'labels.icon',\n stylers: [\n {\n visibility: 'off'\n }\n ]\n },\n {\n featureType: 'transit',\n stylers: [\n {\n visibility: 'off'\n }\n ]\n }\n];\n\nconst ZOOM_CHANGED = 'zoom_changed';\nconst COLOR = 'Color';\nconst IMAGE_ID = 'imageId';\nconst URL = 'url';\nconst ID = 'id';\nconst CLICK = 'click';\nconst ELEMENT_GEOMETRY = 'geometry.fill';\n\nconst FEATURE_TYPE_MAP = {\n waterColor: 'water',\n landscapeColor: 'landscape'\n};\n\nconst ALL = 'all';\n\nconst HEADING_LARGE = 'heading_large';\nconst LIST = 'list';\n\nconst IN_VIEW_CONFIG = {\n once: true,\n offset: '200px'\n};\n\nconst DEFAULT_SELECT_VALUE = 'Default';\n\nexport {\n PLUGIN_NAME,\n GOOGLE_MAPS_SCRIPT,\n COOPERATIVE,\n NONE,\n LOAD,\n SCRIPT,\n ROADMAP,\n SATELLITE,\n TERRAIN,\n MARKER,\n POLYLINE,\n POLYGON,\n RECTANGLE,\n CIRCLE,\n DEFAULT_OPTIONS,\n FILL_OPTIONS,\n DEFAULT_COLOR,\n ZOOM_CHANGED,\n COLOR,\n IMAGE_ID,\n URL,\n ID,\n CLICK,\n ELEMENT_GEOMETRY,\n FEATURE_TYPE_MAP,\n ALL,\n HEADING_LARGE,\n LIST,\n IN_VIEW_CONFIG,\n DISABLE_TRANSPORTATION_STYLES,\n DISABLE_POI_STYLES,\n DISABLE_BOUNDARIES_STYLES,\n DISABLE_LABELS_STYLES,\n DEFAULT_SELECT_VALUE\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","names":["PLUGIN_NAME","GOOGLE_MAPS_SCRIPT","COOPERATIVE","NONE","LOAD","SCRIPT","ROADMAP","SATELLITE","TERRAIN","MARKER","POLYLINE","POLYGON","RECTANGLE","CIRCLE","DEFAULT_COLOR","DEFAULT_OPTIONS","strokeOpacity","strokeWeight","FILL_OPTIONS","fillOpacity","DISABLE_LABELS_STYLES","elementType","stylers","visibility","DISABLE_BOUNDARIES_STYLES","featureType","DISABLE_POI_STYLES","DISABLE_TRANSPORTATION_STYLES","ZOOM_CHANGED","COLOR","IMAGE_ID","URL","ID","CLICK","ELEMENT_GEOMETRY","FEATURE_TYPE_MAP","waterColor","landscapeColor","ALL","HEADING_LARGE","LIST","IN_VIEW_CONFIG","once","offset","DEFAULT_SELECT_VALUE","DEFAULT_CUSTOM_MARKER_PATH"],"sources":["../src/constants.js"],"sourcesContent":["const PLUGIN_NAME = 'google-maps-fe';\nconst GOOGLE_MAPS_SCRIPT = 'https://maps.googleapis.com/maps/api/js?key=';\nconst COOPERATIVE = 'cooperative';\nconst NONE = 'none';\nconst LOAD = 'load';\nconst SCRIPT = 'script';\nconst ROADMAP = 'roadmap';\nconst SATELLITE = 'satellite';\nconst TERRAIN = 'terrain';\nconst MARKER = 'marker';\nconst POLYLINE = 'polyline';\nconst POLYGON = 'polygon';\nconst RECTANGLE = 'rectangle';\nconst CIRCLE = 'circle';\nconst DEFAULT_COLOR = '#FF0000';\nconst DEFAULT_OPTIONS = {\n strokeOpacity: 1.0,\n strokeWeight: 2\n};\nconst FILL_OPTIONS = {\n fillOpacity: 0.35\n};\n\nconst DISABLE_LABELS_STYLES = [\n {\n elementType: 'labels',\n stylers: [\n {\n visibility: 'off'\n }\n ]\n }\n];\n\nconst DISABLE_BOUNDARIES_STYLES = [\n {\n featureType: 'administrative',\n elementType: 'geometry',\n stylers: [\n {\n visibility: 'off'\n }\n ]\n },\n {\n featureType: 'administrative.land_parcel',\n stylers: [\n {\n visibility: 'off'\n }\n ]\n },\n {\n featureType: 'administrative.neighborhood',\n stylers: [\n {\n visibility: 'off'\n }\n ]\n }\n];\n\nconst DISABLE_POI_STYLES = [\n {\n featureType: 'poi',\n stylers: [\n {\n visibility: 'off'\n }\n ]\n }\n];\n\nconst DISABLE_TRANSPORTATION_STYLES = [\n {\n featureType: 'road',\n stylers: [\n {\n visibility: 'off'\n }\n ]\n },\n {\n featureType: 'road',\n elementType: 'labels.icon',\n stylers: [\n {\n visibility: 'off'\n }\n ]\n },\n {\n featureType: 'transit',\n stylers: [\n {\n visibility: 'off'\n }\n ]\n }\n];\n\nconst ZOOM_CHANGED = 'zoom_changed';\nconst COLOR = 'Color';\nconst IMAGE_ID = 'imageId';\nconst URL = 'url';\nconst ID = 'id';\nconst CLICK = 'click';\nconst ELEMENT_GEOMETRY = 'geometry.fill';\n\nconst FEATURE_TYPE_MAP = {\n waterColor: 'water',\n landscapeColor: 'landscape'\n};\n\nconst ALL = 'all';\n\nconst HEADING_LARGE = 'heading_large';\nconst LIST = 'list';\n\nconst IN_VIEW_CONFIG = {\n once: true,\n offset: '200px'\n};\n\nconst DEFAULT_SELECT_VALUE = 'Default';\n\nconst DEFAULT_CUSTOM_MARKER_PATH =\n 'M12,11.5A2.5,2.5 0 0,1 9.5,9A2.5,2.5 0 0,1 12,6.5A2.5,2.5 0 0,1 14.5,9A2.5,2.5 0 0,1 12,11.5M12,2A7,7 0 0,0 5,9C5,14.25 12,22 12,22C12,22 19,14.25 19,9A7,7 0 0,0 12,2Z';\n\nexport {\n PLUGIN_NAME,\n GOOGLE_MAPS_SCRIPT,\n COOPERATIVE,\n NONE,\n LOAD,\n SCRIPT,\n ROADMAP,\n SATELLITE,\n TERRAIN,\n MARKER,\n POLYLINE,\n POLYGON,\n RECTANGLE,\n CIRCLE,\n DEFAULT_OPTIONS,\n FILL_OPTIONS,\n DEFAULT_COLOR,\n ZOOM_CHANGED,\n COLOR,\n IMAGE_ID,\n URL,\n ID,\n CLICK,\n ELEMENT_GEOMETRY,\n FEATURE_TYPE_MAP,\n ALL,\n HEADING_LARGE,\n LIST,\n IN_VIEW_CONFIG,\n DISABLE_TRANSPORTATION_STYLES,\n DISABLE_POI_STYLES,\n DISABLE_BOUNDARIES_STYLES,\n DISABLE_LABELS_STYLES,\n DEFAULT_SELECT_VALUE,\n DEFAULT_CUSTOM_MARKER_PATH\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blaze-cms/plugin-google-maps-fe",
3
- "version": "0.124.0-alpha.8",
3
+ "version": "0.124.1-alpha.1",
4
4
  "description": "Blaze Google maps plugin fe",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-es/index.js",
@@ -27,8 +27,8 @@
27
27
  },
28
28
  "license": "GPL-3.0",
29
29
  "dependencies": {
30
- "@blaze-cms/nextjs-components": "^0.124.0-alpha.2",
31
- "@blaze-cms/react-page-builder": "^0.124.0-alpha.8",
30
+ "@blaze-cms/nextjs-components": "^0.124.0",
31
+ "@blaze-cms/react-page-builder": "^0.124.1-alpha.1",
32
32
  "@blaze-cms/setup-ui": "^0.92.0",
33
33
  "core-js": "^3.2.1",
34
34
  "lodash.isnumber": "^3.0.3",
@@ -44,5 +44,5 @@
44
44
  "lib/*",
45
45
  "lib-es/*"
46
46
  ],
47
- "gitHead": "b1315a8be908a92e7f0c103166ce2ace52cc4b1c"
47
+ "gitHead": "88f06417684a6d3b31723152b154a343739e9a89"
48
48
  }
@@ -6,6 +6,7 @@ import { useInView } from '@blaze-react/utils/lib/customHooks';
6
6
  import { functions, isEqual, omit } from 'lodash';
7
7
  import { setMapOptions, addZoomListener } from './helpers';
8
8
  import { GOOGLE_MAPS_SCRIPT, LOAD, SCRIPT, IN_VIEW_CONFIG } from '../constants';
9
+ import GoogleMapsHtml from './GoogleMapsHtml';
9
10
 
10
11
  const shouldNotUpdate = (props, nextProps) => {
11
12
  const [funcs, nextFuncs] = [functions(props), functions(nextProps)];
@@ -86,7 +87,7 @@ const GoogleMaps = ({
86
87
  if (map && typeof onMount === `function`) onMount(map, onMountProps);
87
88
  if (isIntersecting) addZoomListener(map, router, mapShapes, imageData);
88
89
 
89
- return <div className="google-maps" ref={mapRef} />;
90
+ return <GoogleMapsHtml mapRef={mapRef} />;
90
91
  };
91
92
 
92
93
  GoogleMaps.propTypes = {
@@ -3,13 +3,14 @@ import PropTypes from 'prop-types';
3
3
  import { useGetEntitySchemasAsObj } from '@blaze-cms/react-page-builder';
4
4
  import { buildShapesConfig } from './helpers';
5
5
  import GoogleMapsRender from './GoogleMapsRender';
6
+ import GoogleMapsHtml from './GoogleMapsHtml';
6
7
 
7
8
  const GoogleMapsFactory = ({ entityGroups, parent, ...otherProps }) => {
8
9
  const { data, loading, error } = useGetEntitySchemasAsObj(
9
10
  entityGroups.map(({ entity }) => entity)
10
11
  );
11
12
 
12
- if (loading) return '';
13
+ if (loading) return <GoogleMapsHtml />;
13
14
  if (error) return error.message;
14
15
 
15
16
  const shapeConfigs = buildShapesConfig(data, entityGroups, parent);
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+
4
+ const GoogleMapsFactory = ({ mapRef }) => (
5
+ <div className={`google-maps ${!mapRef ? 'loading' : ''}`} ref={mapRef} />
6
+ );
7
+
8
+ GoogleMapsFactory.propTypes = {
9
+ mapRef: PropTypes.object
10
+ };
11
+
12
+ GoogleMapsFactory.defaultProps = {
13
+ mapRef: null
14
+ };
15
+
16
+ export default GoogleMapsFactory;
@@ -6,6 +6,7 @@ import { getAction } from '@blaze-cms/react-page-builder';
6
6
  import { useGetImages } from './hooks';
7
7
  import { buildQuery, getImageIds, getCenterCoordinates, buildMapShapes } from './helpers';
8
8
  import GoogleMaps from './GoogleMaps';
9
+ import GoogleMapsHtml from './GoogleMapsHtml';
9
10
 
10
11
  const defaultQuery = getAction('getPublishedPages', 'id');
11
12
 
@@ -22,7 +23,7 @@ const GoogleMapsRender = ({ shapeConfigs, entityGroups, id, ...otherProps }) =>
22
23
  loading: imagesLoading,
23
24
  error: imagesError
24
25
  } = useGetImages(imageIds);
25
- if (loading || imagesLoading) return '';
26
+ if (loading || imagesLoading) return <GoogleMapsHtml />;
26
27
  if (error || imagesError) return null;
27
28
 
28
29
  const centerCoordinates = getCenterCoordinates(mapShapes, otherProps);
@@ -22,16 +22,6 @@ const buildMapShapes = (shapesOptions, shapesData) => {
22
22
  shapesOptions.forEach(shape => {
23
23
  const { shapeKey, entityOptions, shapeOptions } = shape;
24
24
  const { dataSummaries, enableInfoPane } = entityOptions;
25
- const {
26
- imageId,
27
- label,
28
- markerHeight,
29
- markerWidth,
30
- maxZoom,
31
- minZoom,
32
- type,
33
- useAsCenter
34
- } = shapeOptions;
35
25
 
36
26
  const shapeData = Array.isArray(shapesData[shapeKey])
37
27
  ? shapesData[shapeKey]
@@ -44,19 +34,12 @@ const buildMapShapes = (shapesOptions, shapesData) => {
44
34
  const { latitude, longitude } = getLatLong(latProp, lonProp, shapeOptions, data);
45
35
 
46
36
  const formatedShape = {
37
+ ...shapeOptions,
47
38
  latitude,
48
39
  longitude,
49
40
  dataSummaries,
50
41
  enableInfoPane,
51
- imageId,
52
- label,
53
- markerHeight,
54
- markerWidth,
55
- maxZoom,
56
- minZoom,
57
- type,
58
42
  url,
59
- useAsCenter,
60
43
  shapeData: data
61
44
  };
62
45
 
@@ -17,7 +17,8 @@ import {
17
17
  COLOR,
18
18
  CLICK,
19
19
  HEADING_LARGE,
20
- LIST
20
+ LIST,
21
+ DEFAULT_CUSTOM_MARKER_PATH
21
22
  } from '../../constants';
22
23
 
23
24
  const shapesArray = [];
@@ -142,23 +143,54 @@ const infoWindowContent = async (imageData, dataSummaries, url, shapeData) => {
142
143
  );
143
144
  };
144
145
 
146
+ function getIcon(imageData, shape) {
147
+ const {
148
+ imageId,
149
+ markerWidth = 50,
150
+ markerHeight = 50,
151
+ strokeColor,
152
+ strokeOpacity,
153
+ strokeWeight,
154
+ fillColor,
155
+ fillOpacity,
156
+ svgPath
157
+ } = shape;
158
+ const iconUrl = getIconUrl(imageId, imageData);
159
+
160
+ const icon = iconUrl
161
+ ? {
162
+ url: iconUrl,
163
+ scaledSize: new window.google.maps.Size(markerWidth || 50, markerHeight || 50)
164
+ }
165
+ : null;
166
+
167
+ if (icon) return icon;
168
+
169
+ if (!svgPath && !fillColor && !strokeColor) return {}; // any can be true for custom marker
170
+
171
+ const svgMarker = {
172
+ path: svgPath || DEFAULT_CUSTOM_MARKER_PATH,
173
+ strokeColor,
174
+ strokeOpacity,
175
+ strokeWeight,
176
+ fillColor,
177
+ fillOpacity,
178
+ rotation: 0,
179
+ scale: 2
180
+ };
181
+ return svgMarker;
182
+ }
183
+
145
184
  const setMarker = (map, router, shape, imageData) => {
146
- const { label = '', markerWidth = 50, markerHeight = 50, latitude, longitude, imageId } = shape;
185
+ const { label = '', latitude, longitude } = shape;
147
186
 
148
187
  if (isPositionCorrect(latitude, longitude)) {
149
- const iconUrl = getIconUrl(imageId, imageData);
150
-
151
- const icon = iconUrl
152
- ? {
153
- url: iconUrl,
154
- scaledSize: new window.google.maps.Size(markerWidth || 50, markerHeight || 50)
155
- }
156
- : {};
188
+ const svgMarker = getIcon(imageData, shape);
157
189
 
158
190
  const marker = new window.google.maps.Marker({
159
191
  position: { lat: latitude, lng: longitude },
160
192
  map,
161
- icon,
193
+ icon: svgMarker,
162
194
  title: label || ''
163
195
  });
164
196
 
package/src/constants.js CHANGED
@@ -124,6 +124,9 @@ const IN_VIEW_CONFIG = {
124
124
 
125
125
  const DEFAULT_SELECT_VALUE = 'Default';
126
126
 
127
+ const DEFAULT_CUSTOM_MARKER_PATH =
128
+ 'M12,11.5A2.5,2.5 0 0,1 9.5,9A2.5,2.5 0 0,1 12,6.5A2.5,2.5 0 0,1 14.5,9A2.5,2.5 0 0,1 12,11.5M12,2A7,7 0 0,0 5,9C5,14.25 12,22 12,22C12,22 19,14.25 19,9A7,7 0 0,0 12,2Z';
129
+
127
130
  export {
128
131
  PLUGIN_NAME,
129
132
  GOOGLE_MAPS_SCRIPT,
@@ -158,5 +161,6 @@ export {
158
161
  DISABLE_POI_STYLES,
159
162
  DISABLE_BOUNDARIES_STYLES,
160
163
  DISABLE_LABELS_STYLES,
161
- DEFAULT_SELECT_VALUE
164
+ DEFAULT_SELECT_VALUE,
165
+ DEFAULT_CUSTOM_MARKER_PATH
162
166
  };