@blaze-cms/plugin-google-maps-fe 0.124.0-alpha.15 → 0.124.0-alpha.16
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 +11 -0
- package/lib/GoogleMaps/GoogleMaps.js +4 -3
- 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/build-map-shapes.js +23 -18
- package/lib/GoogleMaps/helpers/build-map-shapes.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/constants.js +3 -1
- package/lib/constants.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 +2 -2
- 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
|
@@ -6,6 +6,7 @@ import PropTypes from 'prop-types';
|
|
|
6
6
|
import { useGetEntitySchemasAsObj } from '@blaze-cms/react-page-builder';
|
|
7
7
|
import { buildShapesConfig } from './helpers';
|
|
8
8
|
import GoogleMapsRender from './GoogleMapsRender';
|
|
9
|
+
import GoogleMapsHtml from './GoogleMapsHtml';
|
|
9
10
|
|
|
10
11
|
const GoogleMapsFactory = _ref => {
|
|
11
12
|
let {
|
|
@@ -21,7 +22,7 @@ const GoogleMapsFactory = _ref => {
|
|
|
21
22
|
} = useGetEntitySchemasAsObj(entityGroups.map(({
|
|
22
23
|
entity
|
|
23
24
|
}) => entity));
|
|
24
|
-
if (loading) return
|
|
25
|
+
if (loading) return /*#__PURE__*/React.createElement(GoogleMapsHtml, null);
|
|
25
26
|
if (error) return error.message;
|
|
26
27
|
const shapeConfigs = buildShapesConfig(data, entityGroups, parent);
|
|
27
28
|
return /*#__PURE__*/React.createElement(GoogleMapsRender, _extends({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleMapsFactory.js","names":["React","PropTypes","useGetEntitySchemasAsObj","buildShapesConfig","GoogleMapsRender","GoogleMapsFactory","entityGroups","parent","otherProps","data","loading","error","map","entity","message","shapeConfigs","propTypes","object","array","defaultProps"],"sources":["../../src/GoogleMaps/GoogleMapsFactory.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useGetEntitySchemasAsObj } from '@blaze-cms/react-page-builder';\nimport { buildShapesConfig } from './helpers';\nimport GoogleMapsRender from './GoogleMapsRender';\n\nconst GoogleMapsFactory = ({ entityGroups, parent, ...otherProps }) => {\n const { data, loading, error } = useGetEntitySchemasAsObj(\n entityGroups.map(({ entity }) => entity)\n );\n\n if (loading) return
|
|
1
|
+
{"version":3,"file":"GoogleMapsFactory.js","names":["React","PropTypes","useGetEntitySchemasAsObj","buildShapesConfig","GoogleMapsRender","GoogleMapsHtml","GoogleMapsFactory","entityGroups","parent","otherProps","data","loading","error","map","entity","message","shapeConfigs","propTypes","object","array","defaultProps"],"sources":["../../src/GoogleMaps/GoogleMapsFactory.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useGetEntitySchemasAsObj } from '@blaze-cms/react-page-builder';\nimport { buildShapesConfig } from './helpers';\nimport GoogleMapsRender from './GoogleMapsRender';\nimport GoogleMapsHtml from './GoogleMapsHtml';\n\nconst GoogleMapsFactory = ({ entityGroups, parent, ...otherProps }) => {\n const { data, loading, error } = useGetEntitySchemasAsObj(\n entityGroups.map(({ entity }) => entity)\n );\n\n if (loading) return <GoogleMapsHtml />;\n if (error) return error.message;\n\n const shapeConfigs = buildShapesConfig(data, entityGroups, parent);\n\n return (\n <GoogleMapsRender\n shapeConfigs={shapeConfigs}\n entityGroups={entityGroups}\n parent={parent}\n {...otherProps}\n />\n );\n};\n\nGoogleMapsFactory.propTypes = {\n parent: PropTypes.object,\n entityGroups: PropTypes.array\n};\n\nGoogleMapsFactory.defaultProps = {\n parent: {},\n entityGroups: []\n};\n\nexport default GoogleMapsFactory;\n"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,wBAAT,QAAyC,+BAAzC;AACA,SAASC,iBAAT,QAAkC,WAAlC;AACA,OAAOC,gBAAP,MAA6B,oBAA7B;AACA,OAAOC,cAAP,MAA2B,kBAA3B;;AAEA,MAAMC,iBAAiB,GAAG,QAA6C;EAAA,IAA5C;IAAEC,YAAF;IAAgBC;EAAhB,CAA4C;EAAA,IAAjBC,UAAiB;;EACrE,MAAM;IAAEC,IAAF;IAAQC,OAAR;IAAiBC;EAAjB,IAA2BV,wBAAwB,CACvDK,YAAY,CAACM,GAAb,CAAiB,CAAC;IAAEC;EAAF,CAAD,KAAgBA,MAAjC,CADuD,CAAzD;EAIA,IAAIH,OAAJ,EAAa,oBAAO,oBAAC,cAAD,OAAP;EACb,IAAIC,KAAJ,EAAW,OAAOA,KAAK,CAACG,OAAb;EAEX,MAAMC,YAAY,GAAGb,iBAAiB,CAACO,IAAD,EAAOH,YAAP,EAAqBC,MAArB,CAAtC;EAEA,oBACE,oBAAC,gBAAD;IACE,YAAY,EAAEQ,YADhB;IAEE,YAAY,EAAET,YAFhB;IAGE,MAAM,EAAEC;EAHV,GAIMC,UAJN,EADF;AAQD,CAlBD;;AAoBAH,iBAAiB,CAACW,SAAlB,GAA8B;EAC5BT,MAAM,EAAEP,SAAS,CAACiB,MADU;EAE5BX,YAAY,EAAEN,SAAS,CAACkB;AAFI,CAA9B;AAKAb,iBAAiB,CAACc,YAAlB,GAAiC;EAC/BZ,MAAM,EAAE,EADuB;EAE/BD,YAAY,EAAE;AAFiB,CAAjC;AAKA,eAAeD,iBAAf"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
|
|
4
|
+
const GoogleMapsFactory = ({
|
|
5
|
+
mapRef
|
|
6
|
+
}) => /*#__PURE__*/React.createElement("div", {
|
|
7
|
+
className: `google-maps ${!mapRef ? 'loading' : ''}`,
|
|
8
|
+
ref: mapRef
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
GoogleMapsFactory.propTypes = {
|
|
12
|
+
mapRef: PropTypes.object
|
|
13
|
+
};
|
|
14
|
+
GoogleMapsFactory.defaultProps = {
|
|
15
|
+
mapRef: null
|
|
16
|
+
};
|
|
17
|
+
export default GoogleMapsFactory;
|
|
18
|
+
//# sourceMappingURL=GoogleMapsHtml.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GoogleMapsHtml.js","names":["React","PropTypes","GoogleMapsFactory","mapRef","propTypes","object","defaultProps"],"sources":["../../src/GoogleMaps/GoogleMapsHtml.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst GoogleMapsFactory = ({ mapRef }) => (\n <div className={`google-maps ${!mapRef ? 'loading' : ''}`} ref={mapRef} />\n);\n\nGoogleMapsFactory.propTypes = {\n mapRef: PropTypes.object\n};\n\nGoogleMapsFactory.defaultProps = {\n mapRef: null\n};\n\nexport default GoogleMapsFactory;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;;AAEA,MAAMC,iBAAiB,GAAG,CAAC;EAAEC;AAAF,CAAD,kBACxB;EAAK,SAAS,EAAG,eAAc,CAACA,MAAD,GAAU,SAAV,GAAsB,EAAG,EAAxD;EAA2D,GAAG,EAAEA;AAAhE,EADF;;AAIAD,iBAAiB,CAACE,SAAlB,GAA8B;EAC5BD,MAAM,EAAEF,SAAS,CAACI;AADU,CAA9B;AAIAH,iBAAiB,CAACI,YAAlB,GAAiC;EAC/BH,MAAM,EAAE;AADuB,CAAjC;AAIA,eAAeD,iBAAf"}
|
|
@@ -9,6 +9,7 @@ import { getAction } from '@blaze-cms/react-page-builder';
|
|
|
9
9
|
import { useGetImages } from './hooks';
|
|
10
10
|
import { buildQuery, getImageIds, getCenterCoordinates, buildMapShapes } from './helpers';
|
|
11
11
|
import GoogleMaps from './GoogleMaps';
|
|
12
|
+
import GoogleMapsHtml from './GoogleMapsHtml';
|
|
12
13
|
const defaultQuery = getAction('getPublishedPages', 'id');
|
|
13
14
|
|
|
14
15
|
const GoogleMapsRender = _ref => {
|
|
@@ -41,7 +42,7 @@ const GoogleMapsRender = _ref => {
|
|
|
41
42
|
loading: imagesLoading,
|
|
42
43
|
error: imagesError
|
|
43
44
|
} = useGetImages(imageIds);
|
|
44
|
-
if (loading || imagesLoading) return
|
|
45
|
+
if (loading || imagesLoading) return /*#__PURE__*/React.createElement(GoogleMapsHtml, null);
|
|
45
46
|
if (error || imagesError) return null;
|
|
46
47
|
const centerCoordinates = getCenterCoordinates(mapShapes, otherProps);
|
|
47
48
|
const shouldDisplayMap = isNumber(defaultZoom) && !!centerCoordinates.length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleMapsRender.js","names":["React","PropTypes","isNumber","useQuery","getAction","useGetImages","buildQuery","getImageIds","getCenterCoordinates","buildMapShapes","GoogleMaps","defaultQuery","GoogleMapsRender","shapeConfigs","entityGroups","id","otherProps","defaultZoom","query","data","loading","error","skip","mapShapes","imageIds","getFiles","imageData","imagesLoading","imagesError","centerCoordinates","shouldDisplayMap","length","slug","propTypes","array","string","centerLatitude","number","centerLongitude","defaultProps"],"sources":["../../src/GoogleMaps/GoogleMapsRender.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport isNumber from 'lodash.isnumber';\nimport { useQuery } from '@apollo/client';\nimport { getAction } from '@blaze-cms/react-page-builder';\nimport { useGetImages } from './hooks';\nimport { buildQuery, getImageIds, getCenterCoordinates, buildMapShapes } from './helpers';\nimport GoogleMaps from './GoogleMaps';\n\nconst defaultQuery = getAction('getPublishedPages', 'id');\n\nconst GoogleMapsRender = ({ shapeConfigs, entityGroups, id, ...otherProps }) => {\n const { defaultZoom } = otherProps;\n const { query } = buildQuery(shapeConfigs);\n const { data, loading, error } = useQuery(query || defaultQuery, {\n skip: !query\n });\n const mapShapes = buildMapShapes(shapeConfigs, data);\n const imageIds = getImageIds(mapShapes);\n const {\n data: { getFiles: imageData } = {},\n loading: imagesLoading,\n error: imagesError\n } = useGetImages(imageIds);\n if (loading || imagesLoading) return
|
|
1
|
+
{"version":3,"file":"GoogleMapsRender.js","names":["React","PropTypes","isNumber","useQuery","getAction","useGetImages","buildQuery","getImageIds","getCenterCoordinates","buildMapShapes","GoogleMaps","GoogleMapsHtml","defaultQuery","GoogleMapsRender","shapeConfigs","entityGroups","id","otherProps","defaultZoom","query","data","loading","error","skip","mapShapes","imageIds","getFiles","imageData","imagesLoading","imagesError","centerCoordinates","shouldDisplayMap","length","slug","propTypes","array","string","centerLatitude","number","centerLongitude","defaultProps"],"sources":["../../src/GoogleMaps/GoogleMapsRender.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport isNumber from 'lodash.isnumber';\nimport { useQuery } from '@apollo/client';\nimport { getAction } from '@blaze-cms/react-page-builder';\nimport { useGetImages } from './hooks';\nimport { buildQuery, getImageIds, getCenterCoordinates, buildMapShapes } from './helpers';\nimport GoogleMaps from './GoogleMaps';\nimport GoogleMapsHtml from './GoogleMapsHtml';\n\nconst defaultQuery = getAction('getPublishedPages', 'id');\n\nconst GoogleMapsRender = ({ shapeConfigs, entityGroups, id, ...otherProps }) => {\n const { defaultZoom } = otherProps;\n const { query } = buildQuery(shapeConfigs);\n const { data, loading, error } = useQuery(query || defaultQuery, {\n skip: !query\n });\n const mapShapes = buildMapShapes(shapeConfigs, data);\n const imageIds = getImageIds(mapShapes);\n const {\n data: { getFiles: imageData } = {},\n loading: imagesLoading,\n error: imagesError\n } = useGetImages(imageIds);\n if (loading || imagesLoading) return <GoogleMapsHtml />;\n if (error || imagesError) return null;\n\n const centerCoordinates = getCenterCoordinates(mapShapes, otherProps);\n const shouldDisplayMap = isNumber(defaultZoom) && !!centerCoordinates.length;\n\n if (!shouldDisplayMap) return null;\n\n return (\n <GoogleMaps\n key={otherProps.slug}\n centerCoordinates={centerCoordinates}\n mapShapes={mapShapes}\n imageData={imageData}\n {...otherProps}\n />\n );\n};\n\nGoogleMapsRender.propTypes = {\n entityGroups: PropTypes.array,\n id: PropTypes.string,\n shapeConfigs: PropTypes.array,\n centerLatitude: PropTypes.number,\n centerLongitude: PropTypes.number,\n defaultZoom: PropTypes.number\n};\n\nGoogleMapsRender.defaultProps = {\n entityGroups: [],\n shapeConfigs: [],\n id: '',\n centerLatitude: null,\n centerLongitude: null,\n defaultZoom: null\n};\n\nexport default GoogleMapsRender;\n"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,QAAP,MAAqB,iBAArB;AACA,SAASC,QAAT,QAAyB,gBAAzB;AACA,SAASC,SAAT,QAA0B,+BAA1B;AACA,SAASC,YAAT,QAA6B,SAA7B;AACA,SAASC,UAAT,EAAqBC,WAArB,EAAkCC,oBAAlC,EAAwDC,cAAxD,QAA8E,WAA9E;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,cAAP,MAA2B,kBAA3B;AAEA,MAAMC,YAAY,GAAGR,SAAS,CAAC,mBAAD,EAAsB,IAAtB,CAA9B;;AAEA,MAAMS,gBAAgB,GAAG,QAAuD;EAAA,IAAtD;IAAEC,YAAF;IAAgBC,YAAhB;IAA8BC;EAA9B,CAAsD;EAAA,IAAjBC,UAAiB;;EAC9E,MAAM;IAAEC;EAAF,IAAkBD,UAAxB;EACA,MAAM;IAAEE;EAAF,IAAYb,UAAU,CAACQ,YAAD,CAA5B;EACA,MAAM;IAAEM,IAAF;IAAQC,OAAR;IAAiBC;EAAjB,IAA2BnB,QAAQ,CAACgB,KAAK,IAAIP,YAAV,EAAwB;IAC/DW,IAAI,EAAE,CAACJ;EADwD,CAAxB,CAAzC;EAGA,MAAMK,SAAS,GAAGf,cAAc,CAACK,YAAD,EAAeM,IAAf,CAAhC;EACA,MAAMK,QAAQ,GAAGlB,WAAW,CAACiB,SAAD,CAA5B;EACA,MAAM;IACJJ,IAAI,EAAE;MAAEM,QAAQ,EAAEC;IAAZ,IAA0B,EAD5B;IAEJN,OAAO,EAAEO,aAFL;IAGJN,KAAK,EAAEO;EAHH,IAIFxB,YAAY,CAACoB,QAAD,CAJhB;EAKA,IAAIJ,OAAO,IAAIO,aAAf,EAA8B,oBAAO,oBAAC,cAAD,OAAP;EAC9B,IAAIN,KAAK,IAAIO,WAAb,EAA0B,OAAO,IAAP;EAE1B,MAAMC,iBAAiB,GAAGtB,oBAAoB,CAACgB,SAAD,EAAYP,UAAZ,CAA9C;EACA,MAAMc,gBAAgB,GAAG7B,QAAQ,CAACgB,WAAD,CAAR,IAAyB,CAAC,CAACY,iBAAiB,CAACE,MAAtE;EAEA,IAAI,CAACD,gBAAL,EAAuB,OAAO,IAAP;EAEvB,oBACE,oBAAC,UAAD;IACE,GAAG,EAAEd,UAAU,CAACgB,IADlB;IAEE,iBAAiB,EAAEH,iBAFrB;IAGE,SAAS,EAAEN,SAHb;IAIE,SAAS,EAAEG;EAJb,GAKMV,UALN,EADF;AASD,CA9BD;;AAgCAJ,gBAAgB,CAACqB,SAAjB,GAA6B;EAC3BnB,YAAY,EAAEd,SAAS,CAACkC,KADG;EAE3BnB,EAAE,EAAEf,SAAS,CAACmC,MAFa;EAG3BtB,YAAY,EAAEb,SAAS,CAACkC,KAHG;EAI3BE,cAAc,EAAEpC,SAAS,CAACqC,MAJC;EAK3BC,eAAe,EAAEtC,SAAS,CAACqC,MALA;EAM3BpB,WAAW,EAAEjB,SAAS,CAACqC;AANI,CAA7B;AASAzB,gBAAgB,CAAC2B,YAAjB,GAAgC;EAC9BzB,YAAY,EAAE,EADgB;EAE9BD,YAAY,EAAE,EAFgB;EAG9BE,EAAE,EAAE,EAH0B;EAI9BqB,cAAc,EAAE,IAJc;EAK9BE,eAAe,EAAE,IALa;EAM9BrB,WAAW,EAAE;AANiB,CAAhC;AASA,eAAeL,gBAAf"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
|
|
3
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
4
|
+
|
|
5
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
6
|
+
|
|
1
7
|
const getLatLonValues = (keys, data) => {
|
|
2
8
|
if (keys.length === 1) return data[keys];
|
|
3
9
|
const key = keys.shift();
|
|
@@ -36,16 +42,6 @@ const buildMapShapes = (shapesOptions, shapesData) => {
|
|
|
36
42
|
dataSummaries,
|
|
37
43
|
enableInfoPane
|
|
38
44
|
} = entityOptions;
|
|
39
|
-
const {
|
|
40
|
-
imageId,
|
|
41
|
-
label,
|
|
42
|
-
markerHeight,
|
|
43
|
-
markerWidth,
|
|
44
|
-
maxZoom,
|
|
45
|
-
minZoom,
|
|
46
|
-
type,
|
|
47
|
-
useAsCenter
|
|
48
|
-
} = shapeOptions;
|
|
49
45
|
const shapeData = Array.isArray(shapesData[shapeKey]) ? shapesData[shapeKey] : shapesData[shapeKey].results;
|
|
50
46
|
if (!shapeData) return;
|
|
51
47
|
const {
|
|
@@ -60,22 +56,16 @@ const buildMapShapes = (shapesOptions, shapesData) => {
|
|
|
60
56
|
latitude,
|
|
61
57
|
longitude
|
|
62
58
|
} = getLatLong(latProp, lonProp, shapeOptions, data);
|
|
63
|
-
|
|
59
|
+
|
|
60
|
+
const formatedShape = _objectSpread(_objectSpread({}, shapeOptions), {}, {
|
|
64
61
|
latitude,
|
|
65
62
|
longitude,
|
|
66
63
|
dataSummaries,
|
|
67
64
|
enableInfoPane,
|
|
68
|
-
imageId,
|
|
69
|
-
label,
|
|
70
|
-
markerHeight,
|
|
71
|
-
markerWidth,
|
|
72
|
-
maxZoom,
|
|
73
|
-
minZoom,
|
|
74
|
-
type,
|
|
75
65
|
url,
|
|
76
|
-
useAsCenter,
|
|
77
66
|
shapeData: data
|
|
78
|
-
};
|
|
67
|
+
});
|
|
68
|
+
|
|
79
69
|
mapShapes.push(formatedShape);
|
|
80
70
|
});
|
|
81
71
|
});
|
|
@@ -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.0-alpha.
|
|
3
|
+
"version": "0.124.0-alpha.16",
|
|
4
4
|
"description": "Blaze Google maps plugin fe",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"lib/*",
|
|
45
45
|
"lib-es/*"
|
|
46
46
|
],
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "35e7b7deb8844e1027f620a17d8356d1c20dfb20"
|
|
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
|
};
|