@blaze-cms/plugin-google-maps-fe 0.123.0-alpha.28 → 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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [0.123.0-alpha.29](https://github.com/thebyte9/blaze/compare/v0.123.0-alpha.28...v0.123.0-alpha.29) (2022-04-07)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * wait for map datasummary components to load before render. render map if no markers set ([#3429](https://github.com/thebyte9/blaze/issues/3429)) ([a2417bf](https://github.com/thebyte9/blaze/commit/a2417bf2f956d1af5b2a712d0004ef67b7a786bd))
12
+
13
+
14
+
15
+
16
+
6
17
  # [0.123.0-alpha.28](https://github.com/thebyte9/blaze/compare/v0.123.0-alpha.27...v0.123.0-alpha.28) (2022-04-07)
7
18
 
8
19
 
@@ -62,7 +62,7 @@ var GoogleMapsRender = function GoogleMapsRender(_ref) {
62
62
  if (loading || imagesLoading) return '';
63
63
  if (error || imagesError) return null;
64
64
  var centerCoordinates = (0, _helpers.getCenterCoordinates)(mapShapes, otherProps);
65
- var shouldDisplayMap = (0, _lodash["default"])(defaultZoom) && !!centerCoordinates.length && !!mapShapes.length;
65
+ var shouldDisplayMap = (0, _lodash["default"])(defaultZoom) && !!centerCoordinates.length;
66
66
  if (!shouldDisplayMap) return null;
67
67
  return /*#__PURE__*/_react["default"].createElement(_GoogleMaps["default"], (0, _extends2["default"])({
68
68
  key: otherProps.slug,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/GoogleMaps/GoogleMapsRender.js"],"names":["defaultQuery","GoogleMapsRender","shapeConfigs","entityGroups","id","otherProps","defaultZoom","query","skip","data","loading","error","mapShapes","imageIds","imageData","getFiles","imagesLoading","imagesError","centerCoordinates","shouldDisplayMap","length","slug","propTypes","PropTypes","array","string","centerLatitude","number","centerLongitude","defaultProps"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;AAEA,IAAMA,YAAY,GAAG,iCAAU,mBAAV,EAA+B,IAA/B,CAArB;;AAEA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,OAAuD;AAAA,MAApDC,YAAoD,QAApDA,YAAoD;AAAA,MAAtCC,YAAsC,QAAtCA,YAAsC;AAAA,MAAxBC,EAAwB,QAAxBA,EAAwB;AAAA,MAAjBC,UAAiB;AAC9E,MAAQC,WAAR,GAAwBD,UAAxB,CAAQC,WAAR;;AACA,oBAAkB,yBAAWJ,YAAX,CAAlB;AAAA,MAAQK,KAAR,eAAQA,KAAR;;AACA,kBAAiC,sBAASA,KAAK,IAAIP,YAAlB,EAAgC;AAC/DQ,IAAAA,IAAI,EAAE,CAACD;AADwD,GAAhC,CAAjC;AAAA,MAAQE,IAAR,aAAQA,IAAR;AAAA,MAAcC,OAAd,aAAcA,OAAd;AAAA,MAAuBC,KAAvB,aAAuBA,KAAvB;;AAGA,MAAMC,SAAS,GAAG,6BAAeV,YAAf,EAA6BO,IAA7B,CAAlB;AACA,MAAMI,QAAQ,GAAG,0BAAYD,SAAZ,CAAjB;;AACA,sBAII,yBAAaC,QAAb,CAJJ;AAAA,yCACEJ,IADF;;AAAA,uDACkC,EADlC;AAAA,MACoBK,SADpB,sBACUC,QADV;AAAA,MAEWC,aAFX,iBAEEN,OAFF;AAAA,MAGSO,WAHT,iBAGEN,KAHF;AAKA,MAAID,OAAO,IAAIM,aAAf,EAA8B,OAAO,EAAP;AAC9B,MAAIL,KAAK,IAAIM,WAAb,EAA0B,OAAO,IAAP;AAE1B,MAAMC,iBAAiB,GAAG,mCAAqBN,SAArB,EAAgCP,UAAhC,CAA1B;AACA,MAAMc,gBAAgB,GACpB,wBAASb,WAAT,KAAyB,CAAC,CAACY,iBAAiB,CAACE,MAA7C,IAAuD,CAAC,CAACR,SAAS,CAACQ,MADrE;AAGA,MAAI,CAACD,gBAAL,EAAuB,OAAO,IAAP;AAEvB,sBACE,gCAAC,sBAAD;AACE,IAAA,GAAG,EAAEd,UAAU,CAACgB,IADlB;AAEE,IAAA,iBAAiB,EAAEH,iBAFrB;AAGE,IAAA,SAAS,EAAEN,SAHb;AAIE,IAAA,SAAS,EAAEE;AAJb,KAKMT,UALN,EADF;AASD,CA/BD;;AAiCAJ,gBAAgB,CAACqB,SAAjB,GAA6B;AAC3BnB,EAAAA,YAAY,EAAEoB,sBAAUC,KADG;AAE3BpB,EAAAA,EAAE,EAAEmB,sBAAUE,MAFa;AAG3BvB,EAAAA,YAAY,EAAEqB,sBAAUC,KAHG;AAI3BE,EAAAA,cAAc,EAAEH,sBAAUI,MAJC;AAK3BC,EAAAA,eAAe,EAAEL,sBAAUI,MALA;AAM3BrB,EAAAA,WAAW,EAAEiB,sBAAUI;AANI,CAA7B;AASA1B,gBAAgB,CAAC4B,YAAjB,GAAgC;AAC9B1B,EAAAA,YAAY,EAAE,EADgB;AAE9BD,EAAAA,YAAY,EAAE,EAFgB;AAG9BE,EAAAA,EAAE,EAAE,EAH0B;AAI9BsB,EAAAA,cAAc,EAAE,IAJc;AAK9BE,EAAAA,eAAe,EAAE,IALa;AAM9BtB,EAAAA,WAAW,EAAE;AANiB,CAAhC;eASeL,gB","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 =\n isNumber(defaultZoom) && !!centerCoordinates.length && !!mapShapes.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
+ {"version":3,"sources":["../../src/GoogleMaps/GoogleMapsRender.js"],"names":["defaultQuery","GoogleMapsRender","shapeConfigs","entityGroups","id","otherProps","defaultZoom","query","skip","data","loading","error","mapShapes","imageIds","imageData","getFiles","imagesLoading","imagesError","centerCoordinates","shouldDisplayMap","length","slug","propTypes","PropTypes","array","string","centerLatitude","number","centerLongitude","defaultProps"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;AAEA,IAAMA,YAAY,GAAG,iCAAU,mBAAV,EAA+B,IAA/B,CAArB;;AAEA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,OAAuD;AAAA,MAApDC,YAAoD,QAApDA,YAAoD;AAAA,MAAtCC,YAAsC,QAAtCA,YAAsC;AAAA,MAAxBC,EAAwB,QAAxBA,EAAwB;AAAA,MAAjBC,UAAiB;AAC9E,MAAQC,WAAR,GAAwBD,UAAxB,CAAQC,WAAR;;AACA,oBAAkB,yBAAWJ,YAAX,CAAlB;AAAA,MAAQK,KAAR,eAAQA,KAAR;;AACA,kBAAiC,sBAASA,KAAK,IAAIP,YAAlB,EAAgC;AAC/DQ,IAAAA,IAAI,EAAE,CAACD;AADwD,GAAhC,CAAjC;AAAA,MAAQE,IAAR,aAAQA,IAAR;AAAA,MAAcC,OAAd,aAAcA,OAAd;AAAA,MAAuBC,KAAvB,aAAuBA,KAAvB;;AAGA,MAAMC,SAAS,GAAG,6BAAeV,YAAf,EAA6BO,IAA7B,CAAlB;AACA,MAAMI,QAAQ,GAAG,0BAAYD,SAAZ,CAAjB;;AACA,sBAII,yBAAaC,QAAb,CAJJ;AAAA,yCACEJ,IADF;;AAAA,uDACkC,EADlC;AAAA,MACoBK,SADpB,sBACUC,QADV;AAAA,MAEWC,aAFX,iBAEEN,OAFF;AAAA,MAGSO,WAHT,iBAGEN,KAHF;AAKA,MAAID,OAAO,IAAIM,aAAf,EAA8B,OAAO,EAAP;AAC9B,MAAIL,KAAK,IAAIM,WAAb,EAA0B,OAAO,IAAP;AAE1B,MAAMC,iBAAiB,GAAG,mCAAqBN,SAArB,EAAgCP,UAAhC,CAA1B;AACA,MAAMc,gBAAgB,GAAG,wBAASb,WAAT,KAAyB,CAAC,CAACY,iBAAiB,CAACE,MAAtE;AAEA,MAAI,CAACD,gBAAL,EAAuB,OAAO,IAAP;AAEvB,sBACE,gCAAC,sBAAD;AACE,IAAA,GAAG,EAAEd,UAAU,CAACgB,IADlB;AAEE,IAAA,iBAAiB,EAAEH,iBAFrB;AAGE,IAAA,SAAS,EAAEN,SAHb;AAIE,IAAA,SAAS,EAAEE;AAJb,KAKMT,UALN,EADF;AASD,CA9BD;;AAgCAJ,gBAAgB,CAACqB,SAAjB,GAA6B;AAC3BnB,EAAAA,YAAY,EAAEoB,sBAAUC,KADG;AAE3BpB,EAAAA,EAAE,EAAEmB,sBAAUE,MAFa;AAG3BvB,EAAAA,YAAY,EAAEqB,sBAAUC,KAHG;AAI3BE,EAAAA,cAAc,EAAEH,sBAAUI,MAJC;AAK3BC,EAAAA,eAAe,EAAEL,sBAAUI,MALA;AAM3BrB,EAAAA,WAAW,EAAEiB,sBAAUI;AANI,CAA7B;AASA1B,gBAAgB,CAAC4B,YAAjB,GAAgC;AAC9B1B,EAAAA,YAAY,EAAE,EADgB;AAE9BD,EAAAA,YAAY,EAAE,EAFgB;AAG9BE,EAAAA,EAAE,EAAE,EAH0B;AAI9BsB,EAAAA,cAAc,EAAE,IAJc;AAK9BE,EAAAA,eAAe,EAAE,IALa;AAM9BtB,EAAAA,WAAW,EAAE;AANiB,CAAhC;eASeL,gB","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"}
@@ -21,8 +21,12 @@ exports["default"] = void 0;
21
21
 
22
22
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
23
23
 
24
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
25
+
24
26
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
27
 
28
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
29
+
26
30
  require("core-js/modules/es.array.for-each.js");
27
31
 
28
32
  require("core-js/modules/es.object.to-string.js");
@@ -39,6 +43,14 @@ require("core-js/modules/es.array.every.js");
39
43
 
40
44
  require("core-js/modules/es.array.find.js");
41
45
 
46
+ require("core-js/modules/es.array.iterator.js");
47
+
48
+ require("core-js/modules/es.promise.js");
49
+
50
+ require("core-js/modules/es.string.iterator.js");
51
+
52
+ require("core-js/modules/web.dom-collections.iterator.js");
53
+
42
54
  require("core-js/modules/es.array.map.js");
43
55
 
44
56
  require("core-js/modules/web.dom-collections.for-each.js");
@@ -96,16 +108,38 @@ var addShapeListeners = function addShapeListeners(map, router, shape, imageData
96
108
  var infoWindow = new window.google.maps.InfoWindow({
97
109
  content: ''
98
110
  });
99
- shapeInstance.addListener(_constants.CLICK, function (event) {
100
- closeInfoWindows();
101
-
102
- var content = _server["default"].renderToString(InfoWindowContent(imageData, dataSummaries, url, shapeData));
111
+ shapeInstance.addListener(_constants.CLICK, /*#__PURE__*/function () {
112
+ var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(event) {
113
+ var content;
114
+ return _regenerator["default"].wrap(function _callee$(_context) {
115
+ while (1) {
116
+ switch (_context.prev = _context.next) {
117
+ case 0:
118
+ closeInfoWindows();
119
+ _context.t0 = _server["default"];
120
+ _context.next = 4;
121
+ return infoWindowContent(imageData, dataSummaries, url, shapeData);
122
+
123
+ case 4:
124
+ _context.t1 = _context.sent;
125
+ content = _context.t0.renderToString.call(_context.t0, _context.t1);
126
+ infoWindow.setContent(content);
127
+ infoWindow.setPosition(event.latLng);
128
+ infoWindow.open(map, shapeInstance);
129
+ infoWindowArray.push(infoWindow);
130
+
131
+ case 10:
132
+ case "end":
133
+ return _context.stop();
134
+ }
135
+ }
136
+ }, _callee);
137
+ }));
103
138
 
104
- infoWindow.setContent(content);
105
- infoWindow.setPosition(event.latLng);
106
- infoWindow.open(map, shapeInstance);
107
- infoWindowArray.push(infoWindow);
108
- });
139
+ return function (_x) {
140
+ return _ref.apply(this, arguments);
141
+ };
142
+ }());
109
143
  } else if (url) {
110
144
  shapeInstance.addListener(_constants.CLICK, function () {
111
145
  router.push(url);
@@ -147,70 +181,115 @@ var isPositionCorrect = function isPositionCorrect(lat, lng) {
147
181
 
148
182
  var getIconUrl = function getIconUrl(imageId, imageData) {
149
183
  if (!imageId) return '';
150
- var image = imageData.find(function (_ref) {
151
- var id = _ref.id;
184
+ var image = imageData.find(function (_ref2) {
185
+ var id = _ref2.id;
152
186
  return id === imageId;
153
187
  });
154
188
  if (!image || !image.url) return '';
155
189
  return image.url;
156
190
  };
157
191
 
158
- var InfoWindowContent = function InfoWindowContent(imageData, dataSummaries, url, shapeData) {
159
- var summariesWithContent = dataSummaries.map(function (dataSummary) {
160
- var elementTitle = dataSummary.elementTitle,
161
- type = dataSummary.type,
162
- propsToDisplay = dataSummary.propsToDisplay,
163
- otherProps = (0, _objectWithoutProperties2["default"])(dataSummary, _excluded);
164
- var isTypeHeading = type === _constants.HEADING_LARGE;
165
- var summaryPropsWithContent = (0, _reactPageBuilder.buildPropsToDisplayWithContent)(shapeData, propsToDisplay);
166
- var modifier = (0, _reactPageBuilder.getClassModifiers)(_constants.LIST, otherProps);
167
- var SummaryComponent = _reactPageBuilder.summaryComponents[type];
168
- if (!summaryPropsWithContent.length) return null;
169
-
170
- var getDataSummaryComponent = function getDataSummaryComponent() {
171
- var component = /*#__PURE__*/_react["default"].createElement(SummaryComponent, {
172
- key: type,
173
- modifier: modifier,
174
- elementTitle: elementTitle,
175
- summaryPropsWithContent: summaryPropsWithContent
176
- });
177
-
178
- if (isTypeHeading && url) return /*#__PURE__*/_react["default"].createElement(_nextjsComponents.Link, {
179
- href: url
180
- }, component);
181
- return component;
182
- };
183
-
184
- return getDataSummaryComponent();
185
- });
186
-
187
- var _ref2 = shapeData || {},
188
- imageId = _ref2.imageId;
189
-
190
- var image = imageData.find(function (_ref3) {
191
- var id = _ref3.id;
192
- return id === imageId;
193
- });
194
- var shouldShowImage = image && image.url;
195
-
196
- var getImageElement = function getImageElement() {
197
- var imageUrl = image.url,
198
- data = image.data;
199
-
200
- var imageElement = /*#__PURE__*/_react["default"].createElement("img", {
201
- className: "info__window",
202
- src: imageUrl,
203
- alt: data && data.altText ? data.altText : ''
204
- });
192
+ var infoWindowContent = /*#__PURE__*/function () {
193
+ var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(imageData, dataSummaries, url, shapeData) {
194
+ var summariesWithContent, _ref5, imageId, image, shouldShowImage, getImageElement;
195
+
196
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
197
+ while (1) {
198
+ switch (_context3.prev = _context3.next) {
199
+ case 0:
200
+ _context3.next = 2;
201
+ return Promise.all(dataSummaries.map( /*#__PURE__*/function () {
202
+ var _ref4 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(dataSummary) {
203
+ var elementTitle, type, propsToDisplay, otherProps, isTypeHeading, summaryPropsWithContent, modifier, SummaryComponent, getDataSummaryComponent;
204
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
205
+ while (1) {
206
+ switch (_context2.prev = _context2.next) {
207
+ case 0:
208
+ elementTitle = dataSummary.elementTitle, type = dataSummary.type, propsToDisplay = dataSummary.propsToDisplay, otherProps = (0, _objectWithoutProperties2["default"])(dataSummary, _excluded);
209
+ isTypeHeading = type === _constants.HEADING_LARGE;
210
+ summaryPropsWithContent = (0, _reactPageBuilder.buildPropsToDisplayWithContent)(shapeData, propsToDisplay);
211
+ modifier = (0, _reactPageBuilder.getClassModifiers)(_constants.LIST, otherProps);
212
+ SummaryComponent = _reactPageBuilder.summaryComponents[type];
213
+ _context2.next = 7;
214
+ return SummaryComponent.render.preload();
215
+
216
+ case 7:
217
+ if (summaryPropsWithContent.length) {
218
+ _context2.next = 9;
219
+ break;
220
+ }
221
+
222
+ return _context2.abrupt("return", null);
223
+
224
+ case 9:
225
+ getDataSummaryComponent = function getDataSummaryComponent() {
226
+ var component = /*#__PURE__*/_react["default"].createElement(SummaryComponent, {
227
+ key: type,
228
+ modifier: modifier,
229
+ elementTitle: elementTitle,
230
+ summaryPropsWithContent: summaryPropsWithContent
231
+ });
232
+
233
+ if (isTypeHeading && url) return /*#__PURE__*/_react["default"].createElement(_nextjsComponents.Link, {
234
+ href: url
235
+ }, component);
236
+ return component;
237
+ };
238
+
239
+ return _context2.abrupt("return", getDataSummaryComponent());
240
+
241
+ case 11:
242
+ case "end":
243
+ return _context2.stop();
244
+ }
245
+ }
246
+ }, _callee2);
247
+ }));
248
+
249
+ return function (_x6) {
250
+ return _ref4.apply(this, arguments);
251
+ };
252
+ }()));
253
+
254
+ case 2:
255
+ summariesWithContent = _context3.sent;
256
+ _ref5 = shapeData || {}, imageId = _ref5.imageId;
257
+ image = imageData.find(function (_ref6) {
258
+ var id = _ref6.id;
259
+ return id === imageId;
260
+ });
261
+ shouldShowImage = image && image.url;
262
+
263
+ getImageElement = function getImageElement() {
264
+ var imageUrl = image.url,
265
+ data = image.data;
266
+
267
+ var imageElement = /*#__PURE__*/_react["default"].createElement("img", {
268
+ className: "info__window",
269
+ src: imageUrl,
270
+ alt: data && data.altText ? data.altText : ''
271
+ });
272
+
273
+ if (url) return /*#__PURE__*/_react["default"].createElement(_nextjsComponents.Link, {
274
+ href: url
275
+ }, imageElement);
276
+ return imageElement;
277
+ };
278
+
279
+ return _context3.abrupt("return", /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, shouldShowImage && getImageElement(), summariesWithContent));
280
+
281
+ case 8:
282
+ case "end":
283
+ return _context3.stop();
284
+ }
285
+ }
286
+ }, _callee3);
287
+ }));
205
288
 
206
- if (url) return /*#__PURE__*/_react["default"].createElement(_nextjsComponents.Link, {
207
- href: url
208
- }, imageElement);
209
- return imageElement;
289
+ return function infoWindowContent(_x2, _x3, _x4, _x5) {
290
+ return _ref3.apply(this, arguments);
210
291
  };
211
-
212
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, shouldShowImage && getImageElement(), summariesWithContent);
213
- };
292
+ }();
214
293
 
215
294
  var setMarker = function setMarker(map, router, shape, imageData) {
216
295
  var _shape$label = shape.label,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/GoogleMaps/helpers/set-shapes.js"],"names":["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","CLICK","event","ReactDOMServer","renderToString","InfoWindowContent","setContent","setPosition","latLng","open","push","setStyleOptions","strokeColor","strokeOpacity","strokeWeight","fillColor","fillOpacity","styleSettings","Object","keys","reduce","acc","key","settingValue","shouldValueBeNumber","includes","COLOR","hasValuePassedCondition","areRectangleBoundsNumbers","bounds","every","bound","isPositionCorrect","lat","lng","getIconUrl","imageId","image","find","id","summariesWithContent","dataSummary","elementTitle","type","propsToDisplay","otherProps","isTypeHeading","HEADING_LARGE","summaryPropsWithContent","modifier","LIST","SummaryComponent","summaryComponents","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","MARKER","POLYLINE","POLYGON","RECTANGLE","CIRCLE"],"mappings":"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","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, event => {\n closeInfoWindows();\n const content = ReactDOMServer.renderToString(\n 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 = (imageData, dataSummaries, url, shapeData) => {\n const summariesWithContent = dataSummaries.map(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 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 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"],"file":"set-shapes.js"}
1
+ {"version":3,"sources":["../../../src/GoogleMaps/helpers/set-shapes.js"],"names":["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","CLICK","event","ReactDOMServer","infoWindowContent","renderToString","setContent","setPosition","latLng","open","push","setStyleOptions","strokeColor","strokeOpacity","strokeWeight","fillColor","fillOpacity","styleSettings","Object","keys","reduce","acc","key","settingValue","shouldValueBeNumber","includes","COLOR","hasValuePassedCondition","areRectangleBoundsNumbers","bounds","every","bound","isPositionCorrect","lat","lng","getIconUrl","imageId","image","find","id","Promise","all","dataSummary","elementTitle","type","propsToDisplay","otherProps","isTypeHeading","HEADING_LARGE","summaryPropsWithContent","modifier","LIST","SummaryComponent","summaryComponents","render","preload","getDataSummaryComponent","component","summariesWithContent","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","MARKER","POLYLINE","POLYGON","RECTANGLE","CIRCLE"],"mappings":"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","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"],"file":"set-shapes.js"}
@@ -44,7 +44,7 @@ const GoogleMapsRender = _ref => {
44
44
  if (loading || imagesLoading) return '';
45
45
  if (error || imagesError) return null;
46
46
  const centerCoordinates = getCenterCoordinates(mapShapes, otherProps);
47
- const shouldDisplayMap = isNumber(defaultZoom) && !!centerCoordinates.length && !!mapShapes.length;
47
+ const shouldDisplayMap = isNumber(defaultZoom) && !!centerCoordinates.length;
48
48
  if (!shouldDisplayMap) return null;
49
49
  return /*#__PURE__*/React.createElement(GoogleMaps, _extends({
50
50
  key: otherProps.slug,
@@ -1 +1 @@
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,GACpB5B,QAAQ,CAACe,WAAD,CAAR,IAAyB,CAAC,CAACY,iBAAiB,CAACE,MAA7C,IAAuD,CAAC,CAACR,SAAS,CAACQ,MADrE;AAGA,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,CA/BD;;AAiCAJ,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 =\n isNumber(defaultZoom) && !!centerCoordinates.length && !!mapShapes.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
+ {"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"}
@@ -42,9 +42,9 @@ const addShapeListeners = (map, router, shape, imageData, shapeInstance) => {
42
42
  const infoWindow = new window.google.maps.InfoWindow({
43
43
  content: ''
44
44
  });
45
- shapeInstance.addListener(CLICK, event => {
45
+ shapeInstance.addListener(CLICK, async event => {
46
46
  closeInfoWindows();
47
- const content = ReactDOMServer.renderToString(InfoWindowContent(imageData, dataSummaries, url, shapeData));
47
+ const content = ReactDOMServer.renderToString(await infoWindowContent(imageData, dataSummaries, url, shapeData));
48
48
  infoWindow.setContent(content);
49
49
  infoWindow.setPosition(event.latLng);
50
50
  infoWindow.open(map, shapeInstance);
@@ -94,8 +94,8 @@ const getIconUrl = (imageId, imageData) => {
94
94
  return image.url;
95
95
  };
96
96
 
97
- const InfoWindowContent = (imageData, dataSummaries, url, shapeData) => {
98
- const summariesWithContent = dataSummaries.map(dataSummary => {
97
+ const infoWindowContent = async (imageData, dataSummaries, url, shapeData) => {
98
+ const summariesWithContent = await Promise.all(dataSummaries.map(async dataSummary => {
99
99
  const {
100
100
  elementTitle,
101
101
  type,
@@ -107,6 +107,8 @@ const InfoWindowContent = (imageData, dataSummaries, url, shapeData) => {
107
107
  const summaryPropsWithContent = buildPropsToDisplayWithContent(shapeData, propsToDisplay);
108
108
  const modifier = getClassModifiers(LIST, otherProps);
109
109
  const SummaryComponent = summaryComponents[type];
110
+ await SummaryComponent.render.preload(); // preload dynamic nextjs component
111
+
110
112
  if (!summaryPropsWithContent.length) return null;
111
113
 
112
114
  const getDataSummaryComponent = () => {
@@ -123,7 +125,7 @@ const InfoWindowContent = (imageData, dataSummaries, url, shapeData) => {
123
125
  };
124
126
 
125
127
  return getDataSummaryComponent();
126
- });
128
+ }));
127
129
  const {
128
130
  imageId
129
131
  } = shapeData || {};
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/GoogleMaps/helpers/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","dataSummary","elementTitle","type","propsToDisplay","otherProps","isTypeHeading","summaryPropsWithContent","modifier","SummaryComponent","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"],"mappings":"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","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, event => {\n closeInfoWindows();\n const content = ReactDOMServer.renderToString(\n 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 = (imageData, dataSummaries, url, shapeData) => {\n const summariesWithContent = dataSummaries.map(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 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 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"],"file":"set-shapes.js"}
1
+ {"version":3,"sources":["../../../src/GoogleMaps/helpers/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"],"mappings":"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","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"],"file":"set-shapes.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blaze-cms/plugin-google-maps-fe",
3
- "version": "0.123.0-alpha.28",
3
+ "version": "0.123.0-alpha.29",
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": "4d91bead9baebe04760725bf5b8a0dd756d5b2a4"
47
+ "gitHead": "71687f97bbe4705da75c13e0e7b8913a29a902b8"
48
48
  }
@@ -26,8 +26,7 @@ const GoogleMapsRender = ({ shapeConfigs, entityGroups, id, ...otherProps }) =>
26
26
  if (error || imagesError) return null;
27
27
 
28
28
  const centerCoordinates = getCenterCoordinates(mapShapes, otherProps);
29
- const shouldDisplayMap =
30
- isNumber(defaultZoom) && !!centerCoordinates.length && !!mapShapes.length;
29
+ const shouldDisplayMap = isNumber(defaultZoom) && !!centerCoordinates.length;
31
30
 
32
31
  if (!shouldDisplayMap) return null;
33
32
 
@@ -45,10 +45,10 @@ const addShapeListeners = (map, router, shape, imageData, shapeInstance) => {
45
45
  content: ''
46
46
  });
47
47
 
48
- shapeInstance.addListener(CLICK, event => {
48
+ shapeInstance.addListener(CLICK, async event => {
49
49
  closeInfoWindows();
50
50
  const content = ReactDOMServer.renderToString(
51
- InfoWindowContent(imageData, dataSummaries, url, shapeData)
51
+ await infoWindowContent(imageData, dataSummaries, url, shapeData)
52
52
  );
53
53
  infoWindow.setContent(content);
54
54
  infoWindow.setPosition(event.latLng);
@@ -89,32 +89,36 @@ const getIconUrl = (imageId, imageData) => {
89
89
  return image.url;
90
90
  };
91
91
 
92
- const InfoWindowContent = (imageData, dataSummaries, url, shapeData) => {
93
- const summariesWithContent = dataSummaries.map(dataSummary => {
94
- const { elementTitle, type, propsToDisplay, ...otherProps } = dataSummary;
95
- const isTypeHeading = type === HEADING_LARGE;
96
- const summaryPropsWithContent = buildPropsToDisplayWithContent(shapeData, propsToDisplay);
97
- const modifier = getClassModifiers(LIST, otherProps);
98
- const SummaryComponent = summaryComponents[type];
99
- if (!summaryPropsWithContent.length) return null;
100
-
101
- const getDataSummaryComponent = () => {
102
- const component = (
103
- <SummaryComponent
104
- key={type}
105
- modifier={modifier}
106
- elementTitle={elementTitle}
107
- summaryPropsWithContent={summaryPropsWithContent}
108
- />
109
- );
110
-
111
- if (isTypeHeading && url) return <Link href={url}>{component}</Link>;
112
-
113
- return component;
114
- };
115
-
116
- return getDataSummaryComponent();
117
- });
92
+ const infoWindowContent = async (imageData, dataSummaries, url, shapeData) => {
93
+ const summariesWithContent = await Promise.all(
94
+ dataSummaries.map(async dataSummary => {
95
+ const { elementTitle, type, propsToDisplay, ...otherProps } = dataSummary;
96
+ const isTypeHeading = type === HEADING_LARGE;
97
+ const summaryPropsWithContent = buildPropsToDisplayWithContent(shapeData, propsToDisplay);
98
+ const modifier = getClassModifiers(LIST, otherProps);
99
+ const SummaryComponent = summaryComponents[type];
100
+ await SummaryComponent.render.preload(); // preload dynamic nextjs component
101
+
102
+ if (!summaryPropsWithContent.length) return null;
103
+
104
+ const getDataSummaryComponent = () => {
105
+ const component = (
106
+ <SummaryComponent
107
+ key={type}
108
+ modifier={modifier}
109
+ elementTitle={elementTitle}
110
+ summaryPropsWithContent={summaryPropsWithContent}
111
+ />
112
+ );
113
+
114
+ if (isTypeHeading && url) return <Link href={url}>{component}</Link>;
115
+
116
+ return component;
117
+ };
118
+
119
+ return getDataSummaryComponent();
120
+ })
121
+ );
118
122
  const { imageId } = shapeData || {};
119
123
  const image = imageData.find(({ id }) => id === imageId);
120
124
  const shouldShowImage = image && image.url;