@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.
- package/CHANGELOG.md +280 -0
- package/lib/GoogleMaps/GoogleMaps.js +9 -6
- package/lib/GoogleMaps/GoogleMaps.js.map +1 -1
- package/lib/GoogleMaps/GoogleMapsFactory.js +3 -1
- package/lib/GoogleMaps/GoogleMapsFactory.js.map +1 -1
- package/lib/GoogleMaps/GoogleMapsHtml.js +32 -0
- package/lib/GoogleMaps/GoogleMapsHtml.js.map +1 -0
- package/lib/GoogleMaps/GoogleMapsRender.js +3 -1
- package/lib/GoogleMaps/GoogleMapsRender.js.map +1 -1
- package/lib/GoogleMaps/helpers/add-zoom-listener.js.map +1 -1
- package/lib/GoogleMaps/helpers/build-map-shapes.js +23 -18
- package/lib/GoogleMaps/helpers/build-map-shapes.js.map +1 -1
- package/lib/GoogleMaps/helpers/build-query.js.map +1 -1
- package/lib/GoogleMaps/helpers/build-shapes-configs.js.map +1 -1
- package/lib/GoogleMaps/helpers/get-center-coordinates.js.map +1 -1
- package/lib/GoogleMaps/helpers/set-map-options.js.map +1 -1
- package/lib/GoogleMaps/helpers/set-shapes.js +35 -11
- package/lib/GoogleMaps/helpers/set-shapes.js.map +1 -1
- package/lib/GoogleMaps/hooks/use-get-entity-schemas.js.map +1 -1
- package/lib/GoogleMaps/hooks/use-get-images.js.map +1 -1
- package/lib/constants.js +3 -1
- package/lib/constants.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib-es/GoogleMaps/GoogleMaps.js +3 -3
- package/lib-es/GoogleMaps/GoogleMaps.js.map +1 -1
- package/lib-es/GoogleMaps/GoogleMapsFactory.js +2 -1
- package/lib-es/GoogleMaps/GoogleMapsFactory.js.map +1 -1
- package/lib-es/GoogleMaps/GoogleMapsHtml.js +18 -0
- package/lib-es/GoogleMaps/GoogleMapsHtml.js.map +1 -0
- package/lib-es/GoogleMaps/GoogleMapsRender.js +2 -1
- package/lib-es/GoogleMaps/GoogleMapsRender.js.map +1 -1
- package/lib-es/GoogleMaps/helpers/build-map-shapes.js +10 -20
- package/lib-es/GoogleMaps/helpers/build-map-shapes.js.map +1 -1
- package/lib-es/GoogleMaps/helpers/set-shapes.js +37 -11
- package/lib-es/GoogleMaps/helpers/set-shapes.js.map +1 -1
- package/lib-es/constants.js +2 -1
- package/lib-es/constants.js.map +1 -1
- package/package.json +4 -4
- package/src/GoogleMaps/GoogleMaps.js +2 -1
- package/src/GoogleMaps/GoogleMapsFactory.js +2 -1
- package/src/GoogleMaps/GoogleMapsHtml.js +16 -0
- package/src/GoogleMaps/GoogleMapsRender.js +2 -1
- package/src/GoogleMaps/helpers/build-map-shapes.js +1 -18
- package/src/GoogleMaps/helpers/set-shapes.js +43 -11
- 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","
|
|
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
|
-
|
|
156
|
+
function getIcon(imageData, shape) {
|
|
157
157
|
const {
|
|
158
|
-
|
|
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
|
|
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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"}
|
package/lib-es/constants.js
CHANGED
|
@@ -85,5 +85,6 @@ const IN_VIEW_CONFIG = {
|
|
|
85
85
|
offset: '200px'
|
|
86
86
|
};
|
|
87
87
|
const DEFAULT_SELECT_VALUE = 'Default';
|
|
88
|
-
|
|
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
|
package/lib-es/constants.js.map
CHANGED
|
@@ -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":"AAAA,MAAMA,WAAW,GAAG,gBAApB;AACA,MAAMC,kBAAkB,GAAG,8CAA3B;AACA,MAAMC,WAAW,GAAG,aAApB;AACA,MAAMC,IAAI,GAAG,MAAb;AACA,MAAMC,IAAI,GAAG,MAAb;AACA,MAAMC,MAAM,GAAG,QAAf;AACA,MAAMC,OAAO,GAAG,SAAhB;AACA,MAAMC,SAAS,GAAG,WAAlB;AACA,MAAMC,OAAO,GAAG,SAAhB;AACA,MAAMC,MAAM,GAAG,QAAf;AACA,MAAMC,QAAQ,GAAG,UAAjB;AACA,MAAMC,OAAO,GAAG,SAAhB;AACA,MAAMC,SAAS,GAAG,WAAlB;AACA,MAAMC,MAAM,GAAG,QAAf;AACA,MAAMC,aAAa,GAAG,SAAtB;AACA,MAAMC,eAAe,GAAG;EACtBC,aAAa,EAAE,GADO;EAEtBC,YAAY,EAAE;AAFQ,CAAxB;AAIA,MAAMC,YAAY,GAAG;EACnBC,WAAW,EAAE;AADM,CAArB;AAIA,MAAMC,qBAAqB,GAAG,CAC5B;EACEC,WAAW,EAAE,QADf;EAEEC,OAAO,EAAE,CACP;IACEC,UAAU,EAAE;EADd,CADO;AAFX,CAD4B,CAA9B;AAWA,MAAMC,yBAAyB,GAAG,CAChC;EACEC,WAAW,EAAE,gBADf;EAEEJ,WAAW,EAAE,UAFf;EAGEC,OAAO,EAAE,CACP;IACEC,UAAU,EAAE;EADd,CADO;AAHX,CADgC,EAUhC;EACEE,WAAW,EAAE,4BADf;EAEEH,OAAO,EAAE,CACP;IACEC,UAAU,EAAE;EADd,CADO;AAFX,CAVgC,EAkBhC;EACEE,WAAW,EAAE,6BADf;EAEEH,OAAO,EAAE,CACP;IACEC,UAAU,EAAE;EADd,CADO;AAFX,CAlBgC,CAAlC;AA4BA,MAAMG,kBAAkB,GAAG,CACzB;EACED,WAAW,EAAE,KADf;EAEEH,OAAO,EAAE,CACP;IACEC,UAAU,EAAE;EADd,CADO;AAFX,CADyB,CAA3B;AAWA,MAAMI,6BAA6B,GAAG,CACpC;EACEF,WAAW,EAAE,MADf;EAEEH,OAAO,EAAE,CACP;IACEC,UAAU,EAAE;EADd,CADO;AAFX,CADoC,EASpC;EACEE,WAAW,EAAE,MADf;EAEEJ,WAAW,EAAE,aAFf;EAGEC,OAAO,EAAE,CACP;IACEC,UAAU,EAAE;EADd,CADO;AAHX,CAToC,EAkBpC;EACEE,WAAW,EAAE,SADf;EAEEH,OAAO,EAAE,CACP;IACEC,UAAU,EAAE;EADd,CADO;AAFX,CAlBoC,CAAtC;AA4BA,MAAMK,YAAY,GAAG,cAArB;AACA,MAAMC,KAAK,GAAG,OAAd;AACA,MAAMC,QAAQ,GAAG,SAAjB;AACA,MAAMC,GAAG,GAAG,KAAZ;AACA,MAAMC,EAAE,GAAG,IAAX;AACA,MAAMC,KAAK,GAAG,OAAd;AACA,MAAMC,gBAAgB,GAAG,eAAzB;AAEA,MAAMC,gBAAgB,GAAG;EACvBC,UAAU,EAAE,OADW;EAEvBC,cAAc,EAAE;AAFO,CAAzB;AAKA,MAAMC,GAAG,GAAG,KAAZ;AAEA,MAAMC,aAAa,GAAG,eAAtB;AACA,MAAMC,IAAI,GAAG,MAAb;AAEA,MAAMC,cAAc,GAAG;EACrBC,IAAI,EAAE,IADe;EAErBC,MAAM,EAAE;AAFa,CAAvB;AAKA,MAAMC,oBAAoB,GAAG,SAA7B;AAEA,
|
|
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.
|
|
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
|
|
31
|
-
"@blaze-cms/react-page-builder": "^0.124.
|
|
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": "
|
|
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 <
|
|
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 = '',
|
|
185
|
+
const { label = '', latitude, longitude } = shape;
|
|
147
186
|
|
|
148
187
|
if (isPositionCorrect(latitude, longitude)) {
|
|
149
|
-
const
|
|
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
|
};
|