@blaze-cms/plugin-google-maps-fe 0.123.0-alpha.25 → 0.123.0-alpha.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/lib/GoogleMaps/GoogleMaps.js +68 -40
  3. package/lib/GoogleMaps/GoogleMaps.js.map +1 -1
  4. package/lib/GoogleMaps/GoogleMapsFactory.js +8 -4
  5. package/lib/GoogleMaps/GoogleMapsFactory.js.map +1 -1
  6. package/lib/GoogleMaps/GoogleMapsRender.js +24 -41
  7. package/lib/GoogleMaps/GoogleMapsRender.js.map +1 -1
  8. package/lib/GoogleMaps/helpers/add-zoom-listener.js +3 -50
  9. package/lib/GoogleMaps/helpers/add-zoom-listener.js.map +1 -1
  10. package/lib/GoogleMaps/helpers/build-map-shapes.js +97 -0
  11. package/lib/GoogleMaps/helpers/build-map-shapes.js.map +1 -0
  12. package/lib/GoogleMaps/helpers/build-query.js +24 -14
  13. package/lib/GoogleMaps/helpers/build-query.js.map +1 -1
  14. package/lib/GoogleMaps/helpers/build-shapes-configs.js +196 -0
  15. package/lib/GoogleMaps/helpers/build-shapes-configs.js.map +1 -0
  16. package/lib/GoogleMaps/helpers/get-center-coordinates.js +49 -0
  17. package/lib/GoogleMaps/helpers/get-center-coordinates.js.map +1 -0
  18. package/lib/GoogleMaps/helpers/get-image-ids.js +16 -14
  19. package/lib/GoogleMaps/helpers/get-image-ids.js.map +1 -1
  20. package/lib/GoogleMaps/helpers/index.js +21 -5
  21. package/lib/GoogleMaps/helpers/index.js.map +1 -1
  22. package/lib/GoogleMaps/helpers/set-shapes.js +213 -200
  23. package/lib/GoogleMaps/helpers/set-shapes.js.map +1 -1
  24. package/lib/GoogleMaps/hooks/use-get-images.js +3 -2
  25. package/lib/GoogleMaps/hooks/use-get-images.js.map +1 -1
  26. package/lib/GoogleMaps/queries.js +22 -4
  27. package/lib/GoogleMaps/queries.js.map +1 -1
  28. package/lib-es/GoogleMaps/GoogleMaps.js +51 -25
  29. package/lib-es/GoogleMaps/GoogleMaps.js.map +1 -1
  30. package/lib-es/GoogleMaps/GoogleMapsFactory.js +10 -6
  31. package/lib-es/GoogleMaps/GoogleMapsFactory.js.map +1 -1
  32. package/lib-es/GoogleMaps/GoogleMapsRender.js +24 -32
  33. package/lib-es/GoogleMaps/GoogleMapsRender.js.map +1 -1
  34. package/lib-es/GoogleMaps/helpers/add-zoom-listener.js +3 -23
  35. package/lib-es/GoogleMaps/helpers/add-zoom-listener.js.map +1 -1
  36. package/lib-es/GoogleMaps/helpers/build-map-shapes.js +86 -0
  37. package/lib-es/GoogleMaps/helpers/build-map-shapes.js.map +1 -0
  38. package/lib-es/GoogleMaps/helpers/build-query.js +17 -8
  39. package/lib-es/GoogleMaps/helpers/build-query.js.map +1 -1
  40. package/lib-es/GoogleMaps/helpers/build-shapes-configs.js +134 -0
  41. package/lib-es/GoogleMaps/helpers/build-shapes-configs.js.map +1 -0
  42. package/lib-es/GoogleMaps/helpers/get-center-coordinates.js +31 -0
  43. package/lib-es/GoogleMaps/helpers/get-center-coordinates.js.map +1 -0
  44. package/lib-es/GoogleMaps/helpers/get-image-ids.js +9 -14
  45. package/lib-es/GoogleMaps/helpers/get-image-ids.js.map +1 -1
  46. package/lib-es/GoogleMaps/helpers/index.js +4 -2
  47. package/lib-es/GoogleMaps/helpers/index.js.map +1 -1
  48. package/lib-es/GoogleMaps/helpers/set-shapes.js +80 -125
  49. package/lib-es/GoogleMaps/helpers/set-shapes.js.map +1 -1
  50. package/lib-es/GoogleMaps/hooks/use-get-images.js +4 -3
  51. package/lib-es/GoogleMaps/hooks/use-get-images.js.map +1 -1
  52. package/lib-es/GoogleMaps/queries.js +23 -2
  53. package/lib-es/GoogleMaps/queries.js.map +1 -1
  54. package/package.json +3 -3
  55. package/src/GoogleMaps/GoogleMaps.js +40 -27
  56. package/src/GoogleMaps/GoogleMapsFactory.js +11 -4
  57. package/src/GoogleMaps/GoogleMapsRender.js +22 -21
  58. package/src/GoogleMaps/helpers/add-zoom-listener.js +3 -22
  59. package/src/GoogleMaps/helpers/build-map-shapes.js +70 -0
  60. package/src/GoogleMaps/helpers/build-query.js +25 -10
  61. package/src/GoogleMaps/helpers/build-shapes-configs.js +110 -0
  62. package/src/GoogleMaps/helpers/get-center-coordinates.js +24 -0
  63. package/src/GoogleMaps/helpers/get-image-ids.js +6 -15
  64. package/src/GoogleMaps/helpers/index.js +12 -2
  65. package/src/GoogleMaps/helpers/set-shapes.js +87 -123
  66. package/src/GoogleMaps/hooks/use-get-images.js +4 -3
  67. package/src/GoogleMaps/queries.js +30 -3
  68. package/lib/GoogleMaps/helpers/set-entity-configs.js +0 -144
  69. package/lib/GoogleMaps/helpers/set-entity-configs.js.map +0 -1
  70. package/lib-es/GoogleMaps/helpers/set-entity-configs.js +0 -94
  71. package/lib-es/GoogleMaps/helpers/set-entity-configs.js.map +0 -1
  72. package/src/GoogleMaps/helpers/set-entity-configs.js +0 -84
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/GoogleMaps/hooks/use-get-images.js"],"names":["useGetImages","imageIds","queryName","action","variables","where","id","_in","data","loading","error"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAAAC,QAAQ,EAAI;AAC/B,MAAMC,SAAS,GAAG,UAAlB;AACA,MAAMC,MAAM,GAAG,4BAAc,kCAAoBD,SAApB,EAA+BA,SAA/B,EAA0C,aAA1C,CAAd,CAAf;;AACA,kBAAsC,sBAASC,MAAT,EAAiB;AACrDC,IAAAA,SAAS,EAAE;AAAEC,MAAAA,KAAK,EAAE;AAAEC,QAAAA,EAAE,EAAE;AAAEC,UAAAA,GAAG,EAAEN;AAAP;AAAN;AAAT;AAD0C,GAAjB,CAAtC;AAAA,iCAAQO,IAAR;AAAA,MAAQA,IAAR,+BAAe,EAAf;AAAA,MAAmBC,OAAnB,aAAmBA,OAAnB;AAAA,MAA4BC,KAA5B,aAA4BA,KAA5B;;AAGA,SAAO;AAAEF,IAAAA,IAAI,EAAJA,IAAF;AAAQC,IAAAA,OAAO,EAAPA,OAAR;AAAiBC,IAAAA,KAAK,EAALA;AAAjB,GAAP;AACD,CAPD;;eASeV,Y","sourcesContent":["import { useQuery } from '@apollo/client';\nimport { generateQuery, generateQueryString } from '../queries';\n\nconst useGetImages = imageIds => {\n const queryName = 'getFiles';\n const action = generateQuery(generateQueryString(queryName, queryName, 'id url data'));\n const { data = {}, loading, error } = useQuery(action, {\n variables: { where: { id: { _in: imageIds } } }\n });\n return { data, loading, error };\n};\n\nexport default useGetImages;\n"],"file":"use-get-images.js"}
1
+ {"version":3,"sources":["../../../src/GoogleMaps/hooks/use-get-images.js"],"names":["useGetImages","imageIds","queryName","action","variables","where","id","_in","skip","length","data","loading","error"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAAAC,QAAQ,EAAI;AAC/B,MAAMC,SAAS,GAAG,UAAlB;AACA,MAAMC,MAAM,GAAG,iCAAmB,kCAAoBD,SAApB,EAA+BA,SAA/B,EAA0C,aAA1C,CAAnB,CAAf;;AACA,kBAAsC,sBAASC,MAAT,EAAiB;AACrDC,IAAAA,SAAS,EAAE;AAAEC,MAAAA,KAAK,EAAE;AAAEC,QAAAA,EAAE,EAAE;AAAEC,UAAAA,GAAG,EAAEN;AAAP;AAAN;AAAT,KAD0C;AAErDO,IAAAA,IAAI,EAAE,CAACP,QAAD,IAAa,CAACA,QAAQ,CAACQ;AAFwB,GAAjB,CAAtC;AAAA,iCAAQC,IAAR;AAAA,MAAQA,IAAR,+BAAe,EAAf;AAAA,MAAmBC,OAAnB,aAAmBA,OAAnB;AAAA,MAA4BC,KAA5B,aAA4BA,KAA5B;;AAIA,SAAO;AAAEF,IAAAA,IAAI,EAAJA,IAAF;AAAQC,IAAAA,OAAO,EAAPA,OAAR;AAAiBC,IAAAA,KAAK,EAALA;AAAjB,GAAP;AACD,CARD;;eAUeZ,Y","sourcesContent":["import { useQuery } from '@apollo/client';\nimport { generateWhereQuery, generateQueryString } from '../queries';\n\nconst useGetImages = imageIds => {\n const queryName = 'getFiles';\n const action = generateWhereQuery(generateQueryString(queryName, queryName, 'id url data'));\n const { data = {}, loading, error } = useQuery(action, {\n variables: { where: { id: { _in: imageIds } } },\n skip: !imageIds || !imageIds.length\n });\n return { data, loading, error };\n};\n\nexport default useGetImages;\n"],"file":"use-get-images.js"}
@@ -7,7 +7,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.generateQueryString = exports.generateQuery = exports.GET_ENTITY_SCHEMAS = void 0;
10
+ exports.generateWhereQuery = exports.generateQueryString = exports.generateQuery = exports.generateIdsQuery = exports.generateFiltersQuery = exports.GET_ENTITY_SCHEMAS = void 0;
11
11
 
12
12
  require("core-js/modules/es.array.concat.js");
13
13
 
@@ -15,20 +15,38 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
15
15
 
16
16
  var _client = require("@apollo/client");
17
17
 
18
- var _templateObject, _templateObject2;
18
+ var _templateObject, _templateObject2, _templateObject3;
19
19
 
20
20
  var GET_ENTITY_SCHEMAS = (0, _client.gql)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n query getEntitySchemas($identifier: String) {\n getEntitySchemas(identifier: $identifier) {\n identifier\n actions\n dynamicProperties\n properties\n }\n }\n"])));
21
21
  exports.GET_ENTITY_SCHEMAS = GET_ENTITY_SCHEMAS;
22
22
 
23
23
  var generateQuery = function generateQuery(queryString) {
24
- return (0, _client.gql)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n query getEntityData($where: JSON){\n ", "\n }\n"])), queryString);
24
+ return (0, _client.gql)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n query getEntityData {\n ", "\n }\n"])), queryString);
25
25
  };
26
26
 
27
27
  exports.generateQuery = generateQuery;
28
28
 
29
+ var generateWhereQuery = function generateWhereQuery(queryString) {
30
+ return (0, _client.gql)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n query getEntityData($where: JSON){\n ", "\n }\n"])), queryString);
31
+ };
32
+
33
+ exports.generateWhereQuery = generateWhereQuery;
34
+
29
35
  var generateQueryString = function generateQueryString(action, query, props) {
30
- return "\n ".concat(query, ": ").concat(action, "(where: $where){\n ").concat(props, "\n __typename\n }\n");
36
+ return "\n ".concat(query, ": ").concat(action, "(where: $where){\n ").concat(props, "\n }\n");
31
37
  };
32
38
 
33
39
  exports.generateQueryString = generateQueryString;
40
+
41
+ var generateIdsQuery = function generateIdsQuery(query, props, action, ids) {
42
+ return "\n ".concat(query, ": ").concat(action, "(where: { id: { _in: ").concat(JSON.stringify(ids), " } }){\n ").concat(props, "\n }\n");
43
+ };
44
+
45
+ exports.generateIdsQuery = generateIdsQuery;
46
+
47
+ var generateFiltersQuery = function generateFiltersQuery(query, props, rawQUery, filterQueryKey) {
48
+ return "\n ".concat(query, ": searchPublishedContent(rawQueryStringified: ").concat(JSON.stringify(rawQUery), "){\n results {\n ...on ").concat(filterQueryKey, " {\n ").concat(props, "\n }\n }\n }\n");
49
+ };
50
+
51
+ exports.generateFiltersQuery = generateFiltersQuery;
34
52
  //# sourceMappingURL=queries.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/GoogleMaps/queries.js"],"names":["GET_ENTITY_SCHEMAS","gql","generateQuery","queryString","generateQueryString","action","query","props"],"mappings":";;;;;;;;;;;;;;;AAAA;;;;AAEA,IAAMA,kBAAkB,OAAGC,WAAH,mRAAxB;;;AAWA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAAAC,WAAW;AAAA,aAAIF,WAAJ,iJAE3BE,WAF2B;AAAA,CAAjC;;;;AAMA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,MAAD,EAASC,KAAT,EAAgBC,KAAhB;AAAA,uBACxBD,KADwB,eACdD,MADc,mCAEtBE,KAFsB;AAAA,CAA5B","sourcesContent":["import { gql } from '@apollo/client';\n\nconst GET_ENTITY_SCHEMAS = gql`\n query getEntitySchemas($identifier: String) {\n getEntitySchemas(identifier: $identifier) {\n identifier\n actions\n dynamicProperties\n properties\n }\n }\n`;\n\nconst generateQuery = queryString => gql`\n query getEntityData($where: JSON){\n ${queryString}\n }\n`;\n\nconst generateQueryString = (action, query, props) => `\n ${query}: ${action}(where: $where){\n ${props}\n __typename\n }\n`;\n\nexport { GET_ENTITY_SCHEMAS, generateQuery, generateQueryString };\n"],"file":"queries.js"}
1
+ {"version":3,"sources":["../../src/GoogleMaps/queries.js"],"names":["GET_ENTITY_SCHEMAS","gql","generateQuery","queryString","generateWhereQuery","generateQueryString","action","query","props","generateIdsQuery","ids","JSON","stringify","generateFiltersQuery","rawQUery","filterQueryKey"],"mappings":";;;;;;;;;;;;;;;AAAA;;;;AAEA,IAAMA,kBAAkB,OAAGC,WAAH,mRAAxB;;;AAWA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAAAC,WAAW;AAAA,aAAIF,WAAJ,oIAE3BE,WAF2B;AAAA,CAAjC;;;;AAMA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,CAAAD,WAAW;AAAA,aAAIF,WAAJ,iJAEhCE,WAFgC;AAAA,CAAtC;;;;AAKA,IAAME,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,MAAD,EAASC,KAAT,EAAgBC,KAAhB;AAAA,uBACxBD,KADwB,eACdD,MADc,mCAEtBE,KAFsB;AAAA,CAA5B;;;;AAMA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACF,KAAD,EAAQC,KAAR,EAAeF,MAAf,EAAuBI,GAAvB;AAAA,uBACrBH,KADqB,eACXD,MADW,kCACmBK,IAAI,CAACC,SAAL,CAAeF,GAAf,CADnB,yBAEnBF,KAFmB;AAAA,CAAzB;;;;AAMA,IAAMK,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACN,KAAD,EAAQC,KAAR,EAAeM,QAAf,EAAyBC,cAAzB;AAAA,uBACzBR,KADyB,4DAC8BI,IAAI,CAACC,SAAL,CAAeE,QAAf,CAD9B,4CAGfC,cAHe,yBAInBP,KAJmB;AAAA,CAA7B","sourcesContent":["import { gql } from '@apollo/client';\n\nconst GET_ENTITY_SCHEMAS = gql`\n query getEntitySchemas($identifier: String) {\n getEntitySchemas(identifier: $identifier) {\n identifier\n actions\n dynamicProperties\n properties\n }\n }\n`;\n\nconst generateQuery = queryString => gql`\n query getEntityData {\n ${queryString}\n }\n`;\n\nconst generateWhereQuery = queryString => gql`\n query getEntityData($where: JSON){\n ${queryString}\n }\n`;\nconst generateQueryString = (action, query, props) => `\n ${query}: ${action}(where: $where){\n ${props}\n }\n`;\n\nconst generateIdsQuery = (query, props, action, ids) => `\n ${query}: ${action}(where: { id: { _in: ${JSON.stringify(ids)} } }){\n ${props}\n }\n`;\n\nconst generateFiltersQuery = (query, props, rawQUery, filterQueryKey) => `\n ${query}: searchPublishedContent(rawQueryStringified: ${JSON.stringify(rawQUery)}){\n results {\n ...on ${filterQueryKey} {\n ${props}\n }\n }\n }\n`;\n\nexport {\n GET_ENTITY_SCHEMAS,\n generateQuery,\n generateQueryString,\n generateIdsQuery,\n generateFiltersQuery,\n generateWhereQuery\n};\n"],"file":"queries.js"}
@@ -1,35 +1,67 @@
1
1
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
2
- const _excluded = ["router", "data", "type", "name", "modifier", "elementTitle", "entityGroups", "imageData", "onMount", "onMountProps"];
2
+ const _excluded = ["type", "name", "modifier", "elementTitle", "imageData", "onMount", "onMountProps", "parent", "mapShapes", "centerCoordinates"];
3
3
  import React, { useEffect, useState } from 'react';
4
4
  import PropTypes from 'prop-types';
5
- import { withRouter } from 'next/router';
5
+ import { useRouter } from 'next/router';
6
6
  import { withTitle } from '@blaze-cms/react-page-builder';
7
7
  import { useInView } from '@blaze-react/utils/lib/customHooks';
8
8
  import { functions, isEqual, omit } from 'lodash';
9
9
  import { setMapOptions, addZoomListener } from './helpers';
10
10
  import { GOOGLE_MAPS_SCRIPT, LOAD, SCRIPT, IN_VIEW_CONFIG } from '../constants';
11
11
 
12
+ const shouldNotUpdate = (props, nextProps) => {
13
+ const [funcs, nextFuncs] = [functions(props), functions(nextProps)];
14
+ const noPropChange = isEqual(omit(props, funcs), omit(nextProps, nextFuncs));
15
+ const noFuncChange = funcs.length === nextFuncs.length && funcs.every(fn => props[fn].toString() === nextProps[fn].toString());
16
+ return noPropChange && noFuncChange;
17
+ };
18
+
12
19
  const GoogleMaps = _ref => {
13
20
  let {
14
- router,
15
- data,
16
21
  type,
17
22
  name,
18
23
  modifier,
19
24
  elementTitle,
20
- entityGroups,
21
25
  imageData,
22
26
  onMount,
23
- onMountProps
27
+ onMountProps,
28
+ parent,
29
+ mapShapes,
30
+ centerCoordinates
24
31
  } = _ref,
25
32
  otherProps = _objectWithoutProperties(_ref, _excluded);
26
33
 
34
+ const router = useRouter();
27
35
  const [isIntersecting, mapRef] = useInView(IN_VIEW_CONFIG);
28
36
  const [map, setMap] = useState();
29
37
  useEffect(() => {
30
38
  const options = setMapOptions(otherProps);
31
39
 
32
- const onLoad = () => setMap(new window.google.maps.Map(mapRef.current, options));
40
+ const onLoad = () => {
41
+ const initialMap = new window.google.maps.Map(mapRef.current, options);
42
+
43
+ if (centerCoordinates.length === 1) {
44
+ const [{
45
+ latitude: lat,
46
+ longitude: lng
47
+ }] = centerCoordinates;
48
+ initialMap.setCenter({
49
+ lat,
50
+ lng
51
+ });
52
+ } else {
53
+ const bounds = new window.google.maps.LatLngBounds();
54
+ centerCoordinates.forEach(({
55
+ latitude,
56
+ longitude
57
+ }) => {
58
+ bounds.extend(new window.google.maps.LatLng(latitude, longitude));
59
+ });
60
+ initialMap.fitBounds(bounds);
61
+ }
62
+
63
+ setMap(initialMap);
64
+ };
33
65
 
34
66
  if (!window.google) {
35
67
  const script = document.createElement(SCRIPT);
@@ -62,42 +94,36 @@ const GoogleMaps = _ref => {
62
94
  return () => {}; // eslint-disable-next-line react-hooks/exhaustive-deps
63
95
  }, []);
64
96
  if (map && typeof onMount === `function`) onMount(map, onMountProps);
65
- if (isIntersecting) addZoomListener(map, router, data, imageData, entityGroups);
97
+ if (isIntersecting) addZoomListener(map, router, mapShapes, imageData);
66
98
  return /*#__PURE__*/React.createElement("div", {
67
99
  className: "google-maps",
68
100
  ref: mapRef
69
101
  });
70
102
  };
71
103
 
72
- const shouldNotUpdate = (props, nextProps) => {
73
- const [funcs, nextFuncs] = [functions(props), functions(nextProps)];
74
- const noPropChange = isEqual(omit(props, funcs), omit(nextProps, nextFuncs));
75
- const noFuncChange = funcs.length === nextFuncs.length && funcs.every(fn => props[fn].toString() === nextProps[fn].toString());
76
- return noPropChange && noFuncChange;
77
- };
78
-
79
104
  GoogleMaps.propTypes = {
80
- router: PropTypes.object.isRequired,
81
- data: PropTypes.object,
82
- imageData: PropTypes.object,
105
+ mapShapes: PropTypes.array,
106
+ imageData: PropTypes.array,
83
107
  type: PropTypes.string,
84
108
  name: PropTypes.string,
85
109
  modifier: PropTypes.string,
86
110
  elementTitle: PropTypes.string,
87
- entityGroups: PropTypes.array,
88
111
  onMount: PropTypes.func,
89
- onMountProps: PropTypes.object
112
+ onMountProps: PropTypes.object,
113
+ parent: PropTypes.object,
114
+ centerCoordinates: PropTypes.array
90
115
  };
91
116
  GoogleMaps.defaultProps = {
92
- data: {},
93
- imageData: {},
117
+ mapShapes: [],
118
+ imageData: [],
119
+ centerCoordinates: [],
94
120
  type: '',
95
121
  name: '',
96
122
  modifier: '',
97
123
  elementTitle: '',
98
- entityGroups: [],
99
124
  onMount: null,
100
- onMountProps: null
125
+ onMountProps: null,
126
+ parent: {}
101
127
  };
102
- export default React.memo(withRouter(withTitle(GoogleMaps)), shouldNotUpdate);
128
+ export default React.memo(withTitle(GoogleMaps), shouldNotUpdate);
103
129
  //# sourceMappingURL=GoogleMaps.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/GoogleMaps/GoogleMaps.js"],"names":["React","useEffect","useState","PropTypes","withRouter","withTitle","useInView","functions","isEqual","omit","setMapOptions","addZoomListener","GOOGLE_MAPS_SCRIPT","LOAD","SCRIPT","IN_VIEW_CONFIG","GoogleMaps","router","data","type","name","modifier","elementTitle","entityGroups","imageData","onMount","onMountProps","otherProps","isIntersecting","mapRef","map","setMap","options","onLoad","window","google","maps","Map","current","script","document","createElement","src","process","env","GOOGLE_MAPS_API_KEY","head","append","addEventListener","removeEventListener","setOptions","enableGeolocation","shouldActivateGeolocation","navigator","geolocation","getCurrentPosition","position","center","lat","coords","latitude","lng","longitude","setCenter","shouldNotUpdate","props","nextProps","funcs","nextFuncs","noPropChange","noFuncChange","length","every","fn","toString","propTypes","object","isRequired","string","array","func","defaultProps","memo"],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'next/router';\nimport { withTitle } from '@blaze-cms/react-page-builder';\nimport { useInView } from '@blaze-react/utils/lib/customHooks';\nimport { functions, isEqual, omit } from 'lodash';\nimport { setMapOptions, addZoomListener } from './helpers';\nimport { GOOGLE_MAPS_SCRIPT, LOAD, SCRIPT, IN_VIEW_CONFIG } from '../constants';\n\nconst GoogleMaps = ({\n router,\n data,\n type,\n name,\n modifier,\n elementTitle,\n entityGroups,\n imageData,\n onMount,\n onMountProps,\n ...otherProps\n}) => {\n const [isIntersecting, mapRef] = useInView(IN_VIEW_CONFIG);\n const [map, setMap] = useState();\n\n useEffect(() => {\n const options = setMapOptions(otherProps);\n const onLoad = () => setMap(new window.google.maps.Map(mapRef.current, options));\n\n if (!window.google) {\n const script = document.createElement(SCRIPT);\n script.src = `${GOOGLE_MAPS_SCRIPT}${process.env.GOOGLE_MAPS_API_KEY}`;\n document.head.append(script);\n script.addEventListener(LOAD, onLoad);\n return () => script.removeEventListener(LOAD, onLoad);\n }\n\n onLoad();\n\n if (map) {\n map.setOptions(options);\n\n const { enableGeolocation } = otherProps;\n const shouldActivateGeolocation = enableGeolocation && navigator.geolocation;\n if (shouldActivateGeolocation) {\n navigator.geolocation.getCurrentPosition(\n position => {\n const center = {\n lat: position.coords.latitude,\n lng: position.coords.longitude\n };\n\n map.setCenter(center);\n },\n () => {}\n );\n }\n }\n\n return () => {};\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (map && typeof onMount === `function`) onMount(map, onMountProps);\n\n if (isIntersecting) addZoomListener(map, router, data, imageData, entityGroups);\n\n return <div className=\"google-maps\" ref={mapRef} />;\n};\n\nconst shouldNotUpdate = (props, nextProps) => {\n const [funcs, nextFuncs] = [functions(props), functions(nextProps)];\n const noPropChange = isEqual(omit(props, funcs), omit(nextProps, nextFuncs));\n const noFuncChange =\n funcs.length === nextFuncs.length &&\n funcs.every(fn => props[fn].toString() === nextProps[fn].toString());\n return noPropChange && noFuncChange;\n};\n\nGoogleMaps.propTypes = {\n router: PropTypes.object.isRequired,\n data: PropTypes.object,\n imageData: PropTypes.object,\n type: PropTypes.string,\n name: PropTypes.string,\n modifier: PropTypes.string,\n elementTitle: PropTypes.string,\n entityGroups: PropTypes.array,\n onMount: PropTypes.func,\n onMountProps: PropTypes.object\n};\n\nGoogleMaps.defaultProps = {\n data: {},\n imageData: {},\n type: '',\n name: '',\n modifier: '',\n elementTitle: '',\n entityGroups: [],\n onMount: null,\n onMountProps: null\n};\n\nexport default React.memo(withRouter(withTitle(GoogleMaps)), shouldNotUpdate);\n"],"file":"GoogleMaps.js"}
1
+ {"version":3,"sources":["../../src/GoogleMaps/GoogleMaps.js"],"names":["React","useEffect","useState","PropTypes","useRouter","withTitle","useInView","functions","isEqual","omit","setMapOptions","addZoomListener","GOOGLE_MAPS_SCRIPT","LOAD","SCRIPT","IN_VIEW_CONFIG","shouldNotUpdate","props","nextProps","funcs","nextFuncs","noPropChange","noFuncChange","length","every","fn","toString","GoogleMaps","type","name","modifier","elementTitle","imageData","onMount","onMountProps","parent","mapShapes","centerCoordinates","otherProps","router","isIntersecting","mapRef","map","setMap","options","onLoad","initialMap","window","google","maps","Map","current","latitude","lat","longitude","lng","setCenter","bounds","LatLngBounds","forEach","extend","LatLng","fitBounds","script","document","createElement","src","process","env","GOOGLE_MAPS_API_KEY","head","append","addEventListener","removeEventListener","setOptions","enableGeolocation","shouldActivateGeolocation","navigator","geolocation","getCurrentPosition","position","center","coords","propTypes","array","string","func","object","defaultProps","memo"],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { withTitle } from '@blaze-cms/react-page-builder';\nimport { useInView } from '@blaze-react/utils/lib/customHooks';\nimport { functions, isEqual, omit } from 'lodash';\nimport { setMapOptions, addZoomListener } from './helpers';\nimport { GOOGLE_MAPS_SCRIPT, LOAD, SCRIPT, IN_VIEW_CONFIG } from '../constants';\n\nconst shouldNotUpdate = (props, nextProps) => {\n const [funcs, nextFuncs] = [functions(props), functions(nextProps)];\n const noPropChange = isEqual(omit(props, funcs), omit(nextProps, nextFuncs));\n const noFuncChange =\n funcs.length === nextFuncs.length &&\n funcs.every(fn => props[fn].toString() === nextProps[fn].toString());\n return noPropChange && noFuncChange;\n};\n\nconst GoogleMaps = ({\n type,\n name,\n modifier,\n elementTitle,\n imageData,\n onMount,\n onMountProps,\n parent,\n mapShapes,\n centerCoordinates,\n ...otherProps\n}) => {\n const router = useRouter();\n const [isIntersecting, mapRef] = useInView(IN_VIEW_CONFIG);\n const [map, setMap] = useState();\n\n useEffect(() => {\n const options = setMapOptions(otherProps);\n const onLoad = () => {\n const initialMap = new window.google.maps.Map(mapRef.current, options);\n if (centerCoordinates.length === 1) {\n const [{ latitude: lat, longitude: lng }] = centerCoordinates;\n initialMap.setCenter({ lat, lng });\n } else {\n const bounds = new window.google.maps.LatLngBounds();\n centerCoordinates.forEach(({ latitude, longitude }) => {\n bounds.extend(new window.google.maps.LatLng(latitude, longitude));\n });\n initialMap.fitBounds(bounds);\n }\n setMap(initialMap);\n };\n\n if (!window.google) {\n const script = document.createElement(SCRIPT);\n script.src = `${GOOGLE_MAPS_SCRIPT}${process.env.GOOGLE_MAPS_API_KEY}`;\n document.head.append(script);\n script.addEventListener(LOAD, onLoad);\n return () => script.removeEventListener(LOAD, onLoad);\n }\n\n onLoad();\n\n if (map) {\n map.setOptions(options);\n const { enableGeolocation } = otherProps;\n const shouldActivateGeolocation = enableGeolocation && navigator.geolocation;\n if (shouldActivateGeolocation) {\n navigator.geolocation.getCurrentPosition(\n position => {\n const center = {\n lat: position.coords.latitude,\n lng: position.coords.longitude\n };\n\n map.setCenter(center);\n },\n () => {}\n );\n }\n }\n\n return () => {};\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (map && typeof onMount === `function`) onMount(map, onMountProps);\n if (isIntersecting) addZoomListener(map, router, mapShapes, imageData);\n\n return <div className=\"google-maps\" ref={mapRef} />;\n};\n\nGoogleMaps.propTypes = {\n mapShapes: PropTypes.array,\n imageData: PropTypes.array,\n type: PropTypes.string,\n name: PropTypes.string,\n modifier: PropTypes.string,\n elementTitle: PropTypes.string,\n onMount: PropTypes.func,\n onMountProps: PropTypes.object,\n parent: PropTypes.object,\n centerCoordinates: PropTypes.array\n};\n\nGoogleMaps.defaultProps = {\n mapShapes: [],\n imageData: [],\n centerCoordinates: [],\n type: '',\n name: '',\n modifier: '',\n elementTitle: '',\n onMount: null,\n onMountProps: null,\n parent: {}\n};\n\nexport default React.memo(withTitle(GoogleMaps), shouldNotUpdate);\n"],"file":"GoogleMaps.js"}
@@ -1,15 +1,16 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- const _excluded = ["entityGroups"];
3
+ const _excluded = ["entityGroups", "parent"];
4
4
  import React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { useGetEntitySchemasAsObj } from '@blaze-cms/react-page-builder';
7
- import { setEntityConfigs } from './helpers';
7
+ import { buildShapesConfig } from './helpers';
8
8
  import GoogleMapsRender from './GoogleMapsRender';
9
9
 
10
10
  const GoogleMapsFactory = _ref => {
11
11
  let {
12
- entityGroups
12
+ entityGroups,
13
+ parent
13
14
  } = _ref,
14
15
  otherProps = _objectWithoutProperties(_ref, _excluded);
15
16
 
@@ -22,17 +23,20 @@ const GoogleMapsFactory = _ref => {
22
23
  }) => entity));
23
24
  if (loading) return '';
24
25
  if (error) return error.message;
25
- const entityConfigs = setEntityConfigs(data, entityGroups);
26
+ const shapeConfigs = buildShapesConfig(data, entityGroups, parent);
26
27
  return /*#__PURE__*/React.createElement(GoogleMapsRender, _extends({
27
- entityConfigs: entityConfigs,
28
- entityGroups: entityGroups
28
+ shapeConfigs: shapeConfigs,
29
+ entityGroups: entityGroups,
30
+ parent: parent
29
31
  }, otherProps));
30
32
  };
31
33
 
32
34
  GoogleMapsFactory.propTypes = {
35
+ parent: PropTypes.object,
33
36
  entityGroups: PropTypes.array
34
37
  };
35
38
  GoogleMapsFactory.defaultProps = {
39
+ parent: {},
36
40
  entityGroups: []
37
41
  };
38
42
  export default GoogleMapsFactory;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/GoogleMaps/GoogleMapsFactory.js"],"names":["React","PropTypes","useGetEntitySchemasAsObj","setEntityConfigs","GoogleMapsRender","GoogleMapsFactory","entityGroups","otherProps","data","loading","error","map","entity","message","entityConfigs","propTypes","array","defaultProps"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,wBAAT,QAAyC,+BAAzC;AACA,SAASC,gBAAT,QAAiC,WAAjC;AACA,OAAOC,gBAAP,MAA6B,oBAA7B;;AAEA,MAAMC,iBAAiB,GAAG,QAAqC;AAAA,MAApC;AAAEC,IAAAA;AAAF,GAAoC;AAAA,MAAjBC,UAAiB;;AAC7D,QAAM;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,OAAR;AAAiBC,IAAAA;AAAjB,MAA2BR,wBAAwB,CACvDI,YAAY,CAACK,GAAb,CAAiB,CAAC;AAAEC,IAAAA;AAAF,GAAD,KAAgBA,MAAjC,CADuD,CAAzD;AAIA,MAAIH,OAAJ,EAAa,OAAO,EAAP;AACb,MAAIC,KAAJ,EAAW,OAAOA,KAAK,CAACG,OAAb;AAEX,QAAMC,aAAa,GAAGX,gBAAgB,CAACK,IAAD,EAAOF,YAAP,CAAtC;AAEA,sBACE,oBAAC,gBAAD;AAAkB,IAAA,aAAa,EAAEQ,aAAjC;AAAgD,IAAA,YAAY,EAAER;AAA9D,KAAgFC,UAAhF,EADF;AAGD,CAbD;;AAeAF,iBAAiB,CAACU,SAAlB,GAA8B;AAC5BT,EAAAA,YAAY,EAAEL,SAAS,CAACe;AADI,CAA9B;AAIAX,iBAAiB,CAACY,YAAlB,GAAiC;AAC/BX,EAAAA,YAAY,EAAE;AADiB,CAAjC;AAIA,eAAeD,iBAAf","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useGetEntitySchemasAsObj } from '@blaze-cms/react-page-builder';\nimport { setEntityConfigs } from './helpers';\nimport GoogleMapsRender from './GoogleMapsRender';\n\nconst GoogleMapsFactory = ({ entityGroups, ...otherProps }) => {\n const { data, loading, error } = useGetEntitySchemasAsObj(\n entityGroups.map(({ entity }) => entity)\n );\n\n if (loading) return '';\n if (error) return error.message;\n\n const entityConfigs = setEntityConfigs(data, entityGroups);\n\n return (\n <GoogleMapsRender entityConfigs={entityConfigs} entityGroups={entityGroups} {...otherProps} />\n );\n};\n\nGoogleMapsFactory.propTypes = {\n entityGroups: PropTypes.array\n};\n\nGoogleMapsFactory.defaultProps = {\n entityGroups: []\n};\n\nexport default GoogleMapsFactory;\n"],"file":"GoogleMapsFactory.js"}
1
+ {"version":3,"sources":["../../src/GoogleMaps/GoogleMapsFactory.js"],"names":["React","PropTypes","useGetEntitySchemasAsObj","buildShapesConfig","GoogleMapsRender","GoogleMapsFactory","entityGroups","parent","otherProps","data","loading","error","map","entity","message","shapeConfigs","propTypes","object","array","defaultProps"],"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;;AAEA,MAAMC,iBAAiB,GAAG,QAA6C;AAAA,MAA5C;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,GAA4C;AAAA,MAAjBC,UAAiB;;AACrE,QAAM;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,OAAR;AAAiBC,IAAAA;AAAjB,MAA2BT,wBAAwB,CACvDI,YAAY,CAACM,GAAb,CAAiB,CAAC;AAAEC,IAAAA;AAAF,GAAD,KAAgBA,MAAjC,CADuD,CAAzD;AAIA,MAAIH,OAAJ,EAAa,OAAO,EAAP;AACb,MAAIC,KAAJ,EAAW,OAAOA,KAAK,CAACG,OAAb;AAEX,QAAMC,YAAY,GAAGZ,iBAAiB,CAACM,IAAD,EAAOH,YAAP,EAAqBC,MAArB,CAAtC;AAEA,sBACE,oBAAC,gBAAD;AACE,IAAA,YAAY,EAAEQ,YADhB;AAEE,IAAA,YAAY,EAAET,YAFhB;AAGE,IAAA,MAAM,EAAEC;AAHV,KAIMC,UAJN,EADF;AAQD,CAlBD;;AAoBAH,iBAAiB,CAACW,SAAlB,GAA8B;AAC5BT,EAAAA,MAAM,EAAEN,SAAS,CAACgB,MADU;AAE5BX,EAAAA,YAAY,EAAEL,SAAS,CAACiB;AAFI,CAA9B;AAKAb,iBAAiB,CAACc,YAAlB,GAAiC;AAC/BZ,EAAAA,MAAM,EAAE,EADuB;AAE/BD,EAAAA,YAAY,EAAE;AAFiB,CAAjC;AAKA,eAAeD,iBAAf","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 '';\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"],"file":"GoogleMapsFactory.js"}
@@ -1,78 +1,70 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- const _excluded = ["entityConfigs", "entityGroups", "id", "parent"];
3
+ const _excluded = ["shapeConfigs", "entityGroups", "id"];
4
4
  import React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import isNumber from 'lodash.isnumber';
7
7
  import { useQuery } from '@apollo/client';
8
8
  import { getAction } from '@blaze-cms/react-page-builder';
9
9
  import { useGetImages } from './hooks';
10
- import { buildQuery, getImageIds } from './helpers';
10
+ import { buildQuery, getImageIds, getCenterCoordinates, buildMapShapes } from './helpers';
11
11
  import GoogleMaps from './GoogleMaps';
12
12
  const defaultQuery = getAction('getPublishedPages', 'id');
13
13
 
14
14
  const GoogleMapsRender = _ref => {
15
15
  let {
16
- entityConfigs,
16
+ shapeConfigs,
17
17
  entityGroups,
18
- id,
19
- parent
18
+ id
20
19
  } = _ref,
21
20
  otherProps = _objectWithoutProperties(_ref, _excluded);
22
21
 
23
22
  const {
24
- centerLatitude,
25
- centerLongitude,
26
23
  defaultZoom
27
24
  } = otherProps;
28
25
  const {
29
- query,
30
- ids
31
- } = buildQuery(entityConfigs);
32
- const shouldDisplayMap = [centerLatitude, centerLongitude, defaultZoom].every(value => isNumber(value));
26
+ query
27
+ } = buildQuery(shapeConfigs);
33
28
  const {
34
- data = {},
29
+ data,
35
30
  loading,
36
31
  error
37
32
  } = useQuery(query || defaultQuery, {
38
- variables: {
39
- where: {
40
- id: {
41
- _in: ids
42
- }
43
- }
44
- },
45
- skip: !(ids.length && query)
33
+ skip: !query
46
34
  });
47
- const imageIds = getImageIds(entityConfigs, data);
35
+ const mapShapes = buildMapShapes(shapeConfigs, data);
36
+ const imageIds = getImageIds(mapShapes);
48
37
  const {
49
- data: imageData = {},
50
- loading: _loading,
51
- error: _error
38
+ data: {
39
+ getFiles: imageData
40
+ } = {},
41
+ loading: imagesLoading,
42
+ error: imagesError
52
43
  } = useGetImages(imageIds);
53
- if (loading || _loading) return '';
54
- if (error || _error) return null;
44
+ if (loading || imagesLoading) return '';
45
+ if (error || imagesError) return null;
46
+ const centerCoordinates = getCenterCoordinates(mapShapes, otherProps);
47
+ const shouldDisplayMap = isNumber(defaultZoom) && !!centerCoordinates.length;
55
48
  if (!shouldDisplayMap) return null;
56
49
  return /*#__PURE__*/React.createElement(GoogleMaps, _extends({
57
50
  key: otherProps.slug,
58
- data: data,
59
- imageData: imageData,
60
- entityGroups: entityGroups
51
+ centerCoordinates: centerCoordinates,
52
+ mapShapes: mapShapes,
53
+ imageData: imageData
61
54
  }, otherProps));
62
55
  };
63
56
 
64
57
  GoogleMapsRender.propTypes = {
65
- parent: PropTypes.object.isRequired,
66
58
  entityGroups: PropTypes.array,
67
59
  id: PropTypes.string,
68
- entityConfigs: PropTypes.object,
60
+ shapeConfigs: PropTypes.array,
69
61
  centerLatitude: PropTypes.number,
70
62
  centerLongitude: PropTypes.number,
71
63
  defaultZoom: PropTypes.number
72
64
  };
73
65
  GoogleMapsRender.defaultProps = {
74
66
  entityGroups: [],
75
- entityConfigs: {},
67
+ shapeConfigs: [],
76
68
  id: '',
77
69
  centerLatitude: null,
78
70
  centerLongitude: null,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/GoogleMaps/GoogleMapsRender.js"],"names":["React","PropTypes","isNumber","useQuery","getAction","useGetImages","buildQuery","getImageIds","GoogleMaps","defaultQuery","GoogleMapsRender","entityConfigs","entityGroups","id","parent","otherProps","centerLatitude","centerLongitude","defaultZoom","query","ids","shouldDisplayMap","every","value","data","loading","error","variables","where","_in","skip","length","imageIds","imageData","_loading","_error","slug","propTypes","object","isRequired","array","string","number","defaultProps"],"mappings":"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","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 } from './helpers';\nimport GoogleMaps from './GoogleMaps';\n\nconst defaultQuery = getAction('getPublishedPages', 'id');\n\nconst GoogleMapsRender = ({ entityConfigs, entityGroups, id, parent, ...otherProps }) => {\n const { centerLatitude, centerLongitude, defaultZoom } = otherProps;\n const { query, ids } = buildQuery(entityConfigs);\n const shouldDisplayMap = [centerLatitude, centerLongitude, defaultZoom].every(value =>\n isNumber(value)\n );\n\n const { data = {}, loading, error } = useQuery(query || defaultQuery, {\n variables: { where: { id: { _in: ids } } },\n skip: !(ids.length && query)\n });\n\n const imageIds = getImageIds(entityConfigs, data);\n const { data: imageData = {}, loading: _loading, error: _error } = useGetImages(imageIds);\n\n if (loading || _loading) return '';\n if (error || _error) return null;\n if (!shouldDisplayMap) return null;\n\n return (\n <GoogleMaps\n key={otherProps.slug}\n data={data}\n imageData={imageData}\n entityGroups={entityGroups}\n {...otherProps}\n />\n );\n};\n\nGoogleMapsRender.propTypes = {\n parent: PropTypes.object.isRequired,\n entityGroups: PropTypes.array,\n id: PropTypes.string,\n entityConfigs: PropTypes.object,\n centerLatitude: PropTypes.number,\n centerLongitude: PropTypes.number,\n defaultZoom: PropTypes.number\n};\n\nGoogleMapsRender.defaultProps = {\n entityGroups: [],\n entityConfigs: {},\n id: '',\n centerLatitude: null,\n centerLongitude: null,\n defaultZoom: null\n};\n\nexport default GoogleMapsRender;\n"],"file":"GoogleMapsRender.js"}
1
+ {"version":3,"sources":["../../src/GoogleMaps/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"],"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;AAEA,MAAMC,YAAY,GAAGP,SAAS,CAAC,mBAAD,EAAsB,IAAtB,CAA9B;;AAEA,MAAMQ,gBAAgB,GAAG,QAAuD;AAAA,MAAtD;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA,YAAhB;AAA8BC,IAAAA;AAA9B,GAAsD;AAAA,MAAjBC,UAAiB;;AAC9E,QAAM;AAAEC,IAAAA;AAAF,MAAkBD,UAAxB;AACA,QAAM;AAAEE,IAAAA;AAAF,MAAYZ,UAAU,CAACO,YAAD,CAA5B;AACA,QAAM;AAAEM,IAAAA,IAAF;AAAQC,IAAAA,OAAR;AAAiBC,IAAAA;AAAjB,MAA2BlB,QAAQ,CAACe,KAAK,IAAIP,YAAV,EAAwB;AAC/DW,IAAAA,IAAI,EAAE,CAACJ;AADwD,GAAxB,CAAzC;AAGA,QAAMK,SAAS,GAAGd,cAAc,CAACI,YAAD,EAAeM,IAAf,CAAhC;AACA,QAAMK,QAAQ,GAAGjB,WAAW,CAACgB,SAAD,CAA5B;AACA,QAAM;AACJJ,IAAAA,IAAI,EAAE;AAAEM,MAAAA,QAAQ,EAAEC;AAAZ,QAA0B,EAD5B;AAEJN,IAAAA,OAAO,EAAEO,aAFL;AAGJN,IAAAA,KAAK,EAAEO;AAHH,MAIFvB,YAAY,CAACmB,QAAD,CAJhB;AAKA,MAAIJ,OAAO,IAAIO,aAAf,EAA8B,OAAO,EAAP;AAC9B,MAAIN,KAAK,IAAIO,WAAb,EAA0B,OAAO,IAAP;AAE1B,QAAMC,iBAAiB,GAAGrB,oBAAoB,CAACe,SAAD,EAAYP,UAAZ,CAA9C;AACA,QAAMc,gBAAgB,GAAG5B,QAAQ,CAACe,WAAD,CAAR,IAAyB,CAAC,CAACY,iBAAiB,CAACE,MAAtE;AAEA,MAAI,CAACD,gBAAL,EAAuB,OAAO,IAAP;AAEvB,sBACE,oBAAC,UAAD;AACE,IAAA,GAAG,EAAEd,UAAU,CAACgB,IADlB;AAEE,IAAA,iBAAiB,EAAEH,iBAFrB;AAGE,IAAA,SAAS,EAAEN,SAHb;AAIE,IAAA,SAAS,EAAEG;AAJb,KAKMV,UALN,EADF;AASD,CA9BD;;AAgCAJ,gBAAgB,CAACqB,SAAjB,GAA6B;AAC3BnB,EAAAA,YAAY,EAAEb,SAAS,CAACiC,KADG;AAE3BnB,EAAAA,EAAE,EAAEd,SAAS,CAACkC,MAFa;AAG3BtB,EAAAA,YAAY,EAAEZ,SAAS,CAACiC,KAHG;AAI3BE,EAAAA,cAAc,EAAEnC,SAAS,CAACoC,MAJC;AAK3BC,EAAAA,eAAe,EAAErC,SAAS,CAACoC,MALA;AAM3BpB,EAAAA,WAAW,EAAEhB,SAAS,CAACoC;AANI,CAA7B;AASAzB,gBAAgB,CAAC2B,YAAjB,GAAgC;AAC9BzB,EAAAA,YAAY,EAAE,EADgB;AAE9BD,EAAAA,YAAY,EAAE,EAFgB;AAG9BE,EAAAA,EAAE,EAAE,EAH0B;AAI9BqB,EAAAA,cAAc,EAAE,IAJc;AAK9BE,EAAAA,eAAe,EAAE,IALa;AAM9BrB,EAAAA,WAAW,EAAE;AANiB,CAAhC;AASA,eAAeL,gBAAf","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 '';\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"],"file":"GoogleMapsRender.js"}
@@ -1,30 +1,10 @@
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
-
7
1
  import { ZOOM_CHANGED } from '../../constants';
8
2
  import setShapes from './set-shapes';
9
3
 
10
- const addZoomListener = (map, router, data, imageData, entityGroups = []) => {
4
+ const addZoomListener = (map, router, shapes, imageData) => {
11
5
  if (!map) return;
12
- const shapes = entityGroups.reduce((acc, entityGroup) => {
13
- const {
14
- entity,
15
- shapes: entityShapes,
16
- enableInfoPane = false,
17
- dataSummaries = []
18
- } = entityGroup;
19
- acc.push(...entityShapes.map(entityShape => _objectSpread(_objectSpread({}, entityShape), {}, {
20
- entity,
21
- enableInfoPane,
22
- dataSummaries
23
- })));
24
- return acc;
25
- }, []);
26
- setShapes(map, router, shapes, data, imageData);
27
- map.addListener(ZOOM_CHANGED, () => setShapes(map, router, shapes, data, imageData));
6
+ setShapes(map, router, shapes, imageData);
7
+ map.addListener(ZOOM_CHANGED, () => setShapes(map, router, shapes, imageData));
28
8
  };
29
9
 
30
10
  export default addZoomListener;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/GoogleMaps/helpers/add-zoom-listener.js"],"names":["ZOOM_CHANGED","setShapes","addZoomListener","map","router","data","imageData","entityGroups","shapes","reduce","acc","entityGroup","entity","entityShapes","enableInfoPane","dataSummaries","push","entityShape","addListener"],"mappings":";;;;;;AAAA,SAASA,YAAT,QAA6B,iBAA7B;AACA,OAAOC,SAAP,MAAsB,cAAtB;;AAEA,MAAMC,eAAe,GAAG,CAACC,GAAD,EAAMC,MAAN,EAAcC,IAAd,EAAoBC,SAApB,EAA+BC,YAAY,GAAG,EAA9C,KAAqD;AAC3E,MAAI,CAACJ,GAAL,EAAU;AACV,QAAMK,MAAM,GAAGD,YAAY,CAACE,MAAb,CAAoB,CAACC,GAAD,EAAMC,WAAN,KAAsB;AACvD,UAAM;AACJC,MAAAA,MADI;AAEJJ,MAAAA,MAAM,EAAEK,YAFJ;AAGJC,MAAAA,cAAc,GAAG,KAHb;AAIJC,MAAAA,aAAa,GAAG;AAJZ,QAKFJ,WALJ;AAMAD,IAAAA,GAAG,CAACM,IAAJ,CACE,GAAGH,YAAY,CAACV,GAAb,CAAiBc,WAAW,oCAC1BA,WAD0B;AAE7BL,MAAAA,MAF6B;AAG7BE,MAAAA,cAH6B;AAI7BC,MAAAA;AAJ6B,MAA5B,CADL;AAQA,WAAOL,GAAP;AACD,GAhBc,EAgBZ,EAhBY,CAAf;AAkBAT,EAAAA,SAAS,CAACE,GAAD,EAAMC,MAAN,EAAcI,MAAd,EAAsBH,IAAtB,EAA4BC,SAA5B,CAAT;AAEAH,EAAAA,GAAG,CAACe,WAAJ,CAAgBlB,YAAhB,EAA8B,MAAMC,SAAS,CAACE,GAAD,EAAMC,MAAN,EAAcI,MAAd,EAAsBH,IAAtB,EAA4BC,SAA5B,CAA7C;AACD,CAvBD;;AAyBA,eAAeJ,eAAf","sourcesContent":["import { ZOOM_CHANGED } from '../../constants';\nimport setShapes from './set-shapes';\n\nconst addZoomListener = (map, router, data, imageData, entityGroups = []) => {\n if (!map) return;\n const shapes = entityGroups.reduce((acc, entityGroup) => {\n const {\n entity,\n shapes: entityShapes,\n enableInfoPane = false,\n dataSummaries = []\n } = entityGroup;\n acc.push(\n ...entityShapes.map(entityShape => ({\n ...entityShape,\n entity,\n enableInfoPane,\n dataSummaries\n }))\n );\n return acc;\n }, []);\n\n setShapes(map, router, shapes, data, imageData);\n\n map.addListener(ZOOM_CHANGED, () => setShapes(map, router, shapes, data, imageData));\n};\n\nexport default addZoomListener;\n"],"file":"add-zoom-listener.js"}
1
+ {"version":3,"sources":["../../../src/GoogleMaps/helpers/add-zoom-listener.js"],"names":["ZOOM_CHANGED","setShapes","addZoomListener","map","router","shapes","imageData","addListener"],"mappings":"AAAA,SAASA,YAAT,QAA6B,iBAA7B;AACA,OAAOC,SAAP,MAAsB,cAAtB;;AAEA,MAAMC,eAAe,GAAG,CAACC,GAAD,EAAMC,MAAN,EAAcC,MAAd,EAAsBC,SAAtB,KAAoC;AAC1D,MAAI,CAACH,GAAL,EAAU;AACVF,EAAAA,SAAS,CAACE,GAAD,EAAMC,MAAN,EAAcC,MAAd,EAAsBC,SAAtB,CAAT;AACAH,EAAAA,GAAG,CAACI,WAAJ,CAAgBP,YAAhB,EAA8B,MAAMC,SAAS,CAACE,GAAD,EAAMC,MAAN,EAAcC,MAAd,EAAsBC,SAAtB,CAA7C;AACD,CAJD;;AAMA,eAAeJ,eAAf","sourcesContent":["import { ZOOM_CHANGED } from '../../constants';\nimport setShapes from './set-shapes';\n\nconst addZoomListener = (map, router, shapes, imageData) => {\n if (!map) return;\n setShapes(map, router, shapes, imageData);\n map.addListener(ZOOM_CHANGED, () => setShapes(map, router, shapes, imageData));\n};\n\nexport default addZoomListener;\n"],"file":"add-zoom-listener.js"}
@@ -0,0 +1,86 @@
1
+ const getLatLonValues = (keys, data) => {
2
+ if (keys.length === 1) return data[keys];
3
+ const key = keys.shift();
4
+ return getLatLonValues(keys, data[key]);
5
+ };
6
+
7
+ const getLatLong = (latProp, lonProp, shape, data) => {
8
+ const {
9
+ latitude,
10
+ longitude
11
+ } = shape;
12
+ if (!latProp || !lonProp) return {
13
+ latitude,
14
+ longitude
15
+ };
16
+ const latKeys = latProp.split('.');
17
+ const lonKeys = lonProp.split('.');
18
+ const lat = getLatLonValues(latKeys, data);
19
+ const lon = getLatLonValues(lonKeys, data);
20
+ return {
21
+ latitude: lat,
22
+ longitude: lon
23
+ };
24
+ };
25
+
26
+ const buildMapShapes = (shapesOptions, shapesData) => {
27
+ if (!shapesData) return [];
28
+ const mapShapes = [];
29
+ shapesOptions.forEach(shape => {
30
+ const {
31
+ shapeKey,
32
+ entityOptions,
33
+ shapeOptions
34
+ } = shape;
35
+ const {
36
+ dataSummaries,
37
+ enableInfoPane
38
+ } = entityOptions;
39
+ const {
40
+ imageId,
41
+ label,
42
+ markerHeight,
43
+ markerWidth,
44
+ maxZoom,
45
+ minZoom,
46
+ type,
47
+ useAsCenter
48
+ } = shapeOptions;
49
+ const shapeData = Array.isArray(shapesData[shapeKey]) ? shapesData[shapeKey] : shapesData[shapeKey].results;
50
+ if (!shapeData) return;
51
+ const {
52
+ latProp,
53
+ lonProp
54
+ } = entityOptions;
55
+ shapeData.forEach(data => {
56
+ const {
57
+ url
58
+ } = data;
59
+ const {
60
+ latitude,
61
+ longitude
62
+ } = getLatLong(latProp, lonProp, shapeOptions, data);
63
+ const formatedShape = {
64
+ latitude,
65
+ longitude,
66
+ dataSummaries,
67
+ enableInfoPane,
68
+ imageId,
69
+ label,
70
+ markerHeight,
71
+ markerWidth,
72
+ maxZoom,
73
+ minZoom,
74
+ type,
75
+ url,
76
+ useAsCenter,
77
+ shapeData: data
78
+ };
79
+ mapShapes.push(formatedShape);
80
+ });
81
+ });
82
+ return mapShapes;
83
+ };
84
+
85
+ export default buildMapShapes;
86
+ //# sourceMappingURL=build-map-shapes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/GoogleMaps/helpers/build-map-shapes.js"],"names":["getLatLonValues","keys","data","length","key","shift","getLatLong","latProp","lonProp","shape","latitude","longitude","latKeys","split","lonKeys","lat","lon","buildMapShapes","shapesOptions","shapesData","mapShapes","forEach","shapeKey","entityOptions","shapeOptions","dataSummaries","enableInfoPane","imageId","label","markerHeight","markerWidth","maxZoom","minZoom","type","useAsCenter","shapeData","Array","isArray","results","url","formatedShape","push"],"mappings":"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","sourcesContent":["const getLatLonValues = (keys, data) => {\n if (keys.length === 1) return data[keys];\n const key = keys.shift();\n return getLatLonValues(keys, data[key]);\n};\n\nconst getLatLong = (latProp, lonProp, shape, data) => {\n const { latitude, longitude } = shape;\n\n if (!latProp || !lonProp) return { latitude, longitude };\n const latKeys = latProp.split('.');\n const lonKeys = lonProp.split('.');\n const lat = getLatLonValues(latKeys, data);\n const lon = getLatLonValues(lonKeys, data);\n\n return { latitude: lat, longitude: lon };\n};\n\nconst buildMapShapes = (shapesOptions, shapesData) => {\n if (!shapesData) return [];\n const mapShapes = [];\n shapesOptions.forEach(shape => {\n const { shapeKey, entityOptions, shapeOptions } = shape;\n const { dataSummaries, enableInfoPane } = entityOptions;\n const {\n imageId,\n label,\n markerHeight,\n markerWidth,\n maxZoom,\n minZoom,\n type,\n useAsCenter\n } = shapeOptions;\n\n const shapeData = Array.isArray(shapesData[shapeKey])\n ? shapesData[shapeKey]\n : shapesData[shapeKey].results;\n if (!shapeData) return;\n const { latProp, lonProp } = entityOptions;\n\n shapeData.forEach(data => {\n const { url } = data;\n const { latitude, longitude } = getLatLong(latProp, lonProp, shapeOptions, data);\n\n const formatedShape = {\n latitude,\n longitude,\n dataSummaries,\n enableInfoPane,\n imageId,\n label,\n markerHeight,\n markerWidth,\n maxZoom,\n minZoom,\n type,\n url,\n useAsCenter,\n shapeData: data\n };\n\n mapShapes.push(formatedShape);\n });\n });\n\n return mapShapes;\n};\n\nexport default buildMapShapes;\n"],"file":"build-map-shapes.js"}