@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 +11 -0
- package/lib/GoogleMaps/GoogleMapsRender.js +1 -1
- package/lib/GoogleMaps/GoogleMapsRender.js.map +1 -1
- package/lib/GoogleMaps/helpers/set-shapes.js +144 -65
- package/lib/GoogleMaps/helpers/set-shapes.js.map +1 -1
- package/lib-es/GoogleMaps/GoogleMapsRender.js +1 -1
- package/lib-es/GoogleMaps/GoogleMapsRender.js.map +1 -1
- package/lib-es/GoogleMaps/helpers/set-shapes.js +7 -5
- package/lib-es/GoogleMaps/helpers/set-shapes.js.map +1 -1
- package/package.json +2 -2
- package/src/GoogleMaps/GoogleMapsRender.js +1 -2
- package/src/GoogleMaps/helpers/set-shapes.js +32 -28
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
|
|
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,
|
|
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 (
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
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 (
|
|
151
|
-
var 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
|
|
159
|
-
var
|
|
160
|
-
var
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
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
|
-
|
|
207
|
-
|
|
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
|
|
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,
|
|
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(
|
|
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
|
|
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.
|
|
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": "
|
|
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
|
-
|
|
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
|
|
93
|
-
const summariesWithContent =
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
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;
|