@appbaseio/reactivesearch-vue 1.16.0-alpha.3 → 1.16.0-alpha.30
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/dist/@appbaseio/reactivesearch-vue.umd.js +7438 -6512
- package/dist/@appbaseio/reactivesearch-vue.umd.js.map +1 -1
- package/dist/@appbaseio/reactivesearch-vue.umd.min.js +5 -5
- package/dist/@appbaseio/reactivesearch-vue.umd.min.js.map +1 -1
- package/dist/cjs/Button-d2f1aeda.js +68 -0
- package/dist/cjs/{DownShift-b09da079.js → CancelSvg-82021d23.js} +60 -16
- package/dist/cjs/Card-4b915733.js +30 -0
- package/dist/cjs/{ComponentWrapper-5a0a8849.js → ComponentWrapper-ab813390.js} +40 -21
- package/dist/cjs/{Container-f84e72fc.js → Container-8a08d663.js} +3 -11
- package/dist/cjs/DataSearch.js +341 -391
- package/dist/cjs/{DropDown-c66be1a8.js → DropDown-0359da33.js} +76 -96
- package/dist/cjs/DynamicRangeSlider.js +47 -24
- package/dist/cjs/Flex-699639d2.js +52 -0
- package/dist/cjs/FormControlList-73497794.js +47 -0
- package/dist/cjs/Input-c6f181d5.js +79 -0
- package/dist/cjs/ListItem-933c27e4.js +46 -0
- package/dist/cjs/MultiDropdownList.js +69 -45
- package/dist/cjs/MultiList.js +36 -21
- package/dist/cjs/MultiRange.js +20 -14
- package/dist/cjs/{Pagination-91df3b77.js → Pagination-1b2320a7.js} +4 -3
- package/dist/cjs/RangeInput.js +25 -45
- package/dist/cjs/RangeSlider.js +31 -28
- package/dist/cjs/ReactiveBase.js +55 -34
- package/dist/cjs/ReactiveComponent.js +80 -36
- package/dist/cjs/ReactiveGoogleMap.js +320 -234
- package/dist/cjs/ReactiveList.js +149 -202
- package/dist/cjs/ResultCard.js +8 -6
- package/dist/cjs/ResultList.js +8 -6
- package/dist/cjs/SelectedFilters.js +25 -12
- package/dist/cjs/SingleDropdownList.js +69 -45
- package/dist/cjs/SingleList.js +44 -26
- package/dist/cjs/SingleRange.js +17 -11
- package/dist/cjs/StateProvider.js +11 -7
- package/dist/cjs/{Title-e9beb554.js → Title-39765ee6.js} +3 -11
- package/dist/cjs/ToggleButton.js +35 -16
- package/dist/cjs/{_rollupPluginBabelHelpers-280a574c.js → _rollupPluginBabelHelpers-4abdbfff.js} +11 -1
- package/dist/cjs/{index-e0583d76.js → index-2a8358cd.js} +77 -9
- package/dist/cjs/index.js +23 -19
- package/dist/cjs/initReactivesearch.js +80 -38
- package/dist/cjs/install.js +20 -18
- package/dist/cjs/ssr-c333c82c.js +39 -0
- package/dist/cjs/{utils-d1ea9f95.js → utils-23afb20b.js} +2 -2
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/{vueTypes-c21f265b.js → vueTypes-6de9d2a9.js} +9 -4
- package/dist/es/Button-799185e2.js +59 -0
- package/dist/es/{DownShift-d8f2500f.js → CancelSvg-4d9e0857.js} +56 -17
- package/dist/es/Card-04b3c33e.js +23 -0
- package/dist/es/{ComponentWrapper-d0b21b95.js → ComponentWrapper-459505fd.js} +40 -21
- package/dist/es/Container-4383c6f0.js +10 -0
- package/dist/es/DataSearch.js +339 -389
- package/dist/es/{DropDown-5dbd69c2.js → DropDown-168b60f6.js} +75 -95
- package/dist/es/DynamicRangeSlider.js +47 -24
- package/dist/es/Flex-aac91505.js +47 -0
- package/dist/es/FormControlList-fe389a2e.js +40 -0
- package/dist/es/Input-d8519224.js +71 -0
- package/dist/es/ListItem-bdb6d53d.js +39 -0
- package/dist/es/MultiDropdownList.js +69 -45
- package/dist/es/MultiList.js +36 -21
- package/dist/es/MultiRange.js +20 -14
- package/dist/es/{Pagination-800af44f.js → Pagination-b3e4054a.js} +4 -3
- package/dist/es/RangeInput.js +25 -45
- package/dist/es/RangeSlider.js +31 -28
- package/dist/es/ReactiveBase.js +55 -34
- package/dist/es/ReactiveComponent.js +80 -36
- package/dist/es/ReactiveGoogleMap.js +320 -234
- package/dist/es/ReactiveList.js +149 -202
- package/dist/es/ResultCard.js +8 -6
- package/dist/es/ResultList.js +8 -6
- package/dist/es/SelectedFilters.js +25 -12
- package/dist/es/SingleDropdownList.js +69 -45
- package/dist/es/SingleList.js +44 -26
- package/dist/es/SingleRange.js +17 -11
- package/dist/es/StateProvider.js +11 -7
- package/dist/es/Title-579f8d6c.js +10 -0
- package/dist/es/ToggleButton.js +35 -16
- package/dist/es/{_rollupPluginBabelHelpers-c9fbe19f.js → _rollupPluginBabelHelpers-ecf6c03c.js} +11 -1
- package/dist/es/{index-1fe91a0a.js → index-4755c9a0.js} +74 -10
- package/dist/es/index.js +23 -19
- package/dist/es/initReactivesearch.js +80 -38
- package/dist/es/install.js +20 -18
- package/dist/es/ssr-e3196de1.js +33 -0
- package/dist/es/{utils-ce3d86fd.js → utils-3a32e13f.js} +2 -2
- package/dist/es/version.js +1 -1
- package/dist/es/{vueTypes-98d938a9.js → vueTypes-9326e0be.js} +9 -4
- package/package.json +86 -78
- package/dist/cjs/Button-78d8bc26.js +0 -146
- package/dist/cjs/Card-b4af314f.js +0 -58
- package/dist/cjs/Flex-737c55be.js +0 -160
- package/dist/cjs/FormControlList-08dfb28e.js +0 -105
- package/dist/cjs/Input-643d02a7.js +0 -178
- package/dist/cjs/ListItem-0c58c5d2.js +0 -84
- package/dist/cjs/ssr-b7a729f9.js +0 -47
- package/dist/es/Button-6c71c66e.js +0 -137
- package/dist/es/Card-ecf70ba1.js +0 -51
- package/dist/es/Container-f5efec9e.js +0 -18
- package/dist/es/Flex-40a74d8a.js +0 -155
- package/dist/es/FormControlList-b96aebef.js +0 -98
- package/dist/es/Input-dfd9dd40.js +0 -170
- package/dist/es/ListItem-da73bc7d.js +0 -77
- package/dist/es/Title-22c2f3bf.js +0 -18
- package/dist/es/ssr-2f57791d.js +0 -41
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
import { Actions, helper } from '@appbaseio/reactivecore';
|
|
2
|
-
import { a as _extends,
|
|
2
|
+
import { a as _extends, d as _inheritsLoose, _ as _taggedTemplateLiteralLoose, b as _objectWithoutPropertiesLoose, c as _toPropertyKey } from './_rollupPluginBabelHelpers-ecf6c03c.js';
|
|
3
3
|
import VueTypes from 'vue-types';
|
|
4
4
|
import { componentTypes } from '@appbaseio/reactivecore/lib/utils/constants';
|
|
5
5
|
import 'emotion';
|
|
6
6
|
import styled, { css } from '@appbaseio/vue-emotion';
|
|
7
7
|
import 'polished';
|
|
8
|
-
import './Button-
|
|
9
|
-
import { t as types } from './vueTypes-
|
|
10
|
-
import { P as Pagination } from './Pagination-
|
|
8
|
+
import './Button-799185e2.js';
|
|
9
|
+
import { t as types } from './vueTypes-9326e0be.js';
|
|
10
|
+
import { P as Pagination } from './Pagination-b3e4054a.js';
|
|
11
11
|
import '@appbaseio/reactivecore/lib/utils/transform';
|
|
12
12
|
import 'redux';
|
|
13
|
-
import { h as hasCustomRenderer, i as isQueryIdentical, g as getComponent, a as isFunction, c as connect } from './index-
|
|
14
|
-
import { C as ComponentWrapper } from './ComponentWrapper-
|
|
13
|
+
import { h as hasCustomRenderer, i as isQueryIdentical, g as getComponent, a as isFunction, c as connect } from './index-4755c9a0.js';
|
|
14
|
+
import { C as ComponentWrapper } from './ComponentWrapper-459505fd.js';
|
|
15
15
|
import _mergeJSXProps from '@vue/babel-helper-vue-jsx-merge-props';
|
|
16
|
-
import { C as Checkbox } from './FormControlList-
|
|
16
|
+
import { C as Checkbox } from './FormControlList-fe389a2e.js';
|
|
17
17
|
import * as GmapMapFull from 'gmap-vue';
|
|
18
18
|
import Map from 'gmap-vue/dist/components-implementation/map';
|
|
19
19
|
import geohash from 'ngeohash';
|
|
20
20
|
import GmapCluster from 'gmap-vue/dist/components/cluster';
|
|
21
|
-
import Marker from 'gmap-vue/dist/components/marker';
|
|
22
21
|
import InfoWindow from 'gmap-vue/dist/components-implementation/info-window';
|
|
22
|
+
import Marker from 'gmap-vue/dist/components/marker';
|
|
23
23
|
import MapElementMixin from 'gmap-vue/dist/mixins/map-element';
|
|
24
24
|
|
|
25
25
|
var setStreaming = Actions.setStreaming,
|
|
@@ -68,7 +68,7 @@ function withDistinctLat(loc, count) {
|
|
|
68
68
|
|
|
69
69
|
var suffix = 1 / Math.pow(10, noiseFactor) * count;
|
|
70
70
|
|
|
71
|
-
var location = _extends(
|
|
71
|
+
var location = _extends({}, loc, {
|
|
72
72
|
lat: parseFloat((loc.lat + suffix).toFixed(length))
|
|
73
73
|
});
|
|
74
74
|
|
|
@@ -120,14 +120,13 @@ var ReactiveMap = {
|
|
|
120
120
|
react: types.react,
|
|
121
121
|
size: types.number,
|
|
122
122
|
sortBy: types.sortBy,
|
|
123
|
-
URLParams:
|
|
124
|
-
autoCenter:
|
|
123
|
+
URLParams: VueTypes.bool,
|
|
124
|
+
autoCenter: VueTypes.bool,
|
|
125
125
|
getMapRef: VueTypes.func.isRequired,
|
|
126
126
|
center: types.location,
|
|
127
127
|
defaultCenter: types.location,
|
|
128
128
|
defaultPin: types.string,
|
|
129
129
|
defaultZoom: VueTypes.number.def(13),
|
|
130
|
-
markerProps: types.props,
|
|
131
130
|
defaultQuery: types.func,
|
|
132
131
|
innerClass: types.style,
|
|
133
132
|
loader: types.title,
|
|
@@ -136,19 +135,19 @@ var ReactiveMap = {
|
|
|
136
135
|
renderError: types.title,
|
|
137
136
|
pages: VueTypes.number.def(5),
|
|
138
137
|
currentPage: VueTypes.number.def(0),
|
|
139
|
-
pagination:
|
|
140
|
-
showMarkers:
|
|
141
|
-
defaultSearchAsMove:
|
|
142
|
-
showSearchAsMove:
|
|
138
|
+
pagination: VueTypes.bool,
|
|
139
|
+
showMarkers: VueTypes.bool,
|
|
140
|
+
defaultSearchAsMove: VueTypes.bool,
|
|
141
|
+
showSearchAsMove: VueTypes.bool,
|
|
143
142
|
defaultRadius: types.number,
|
|
144
143
|
unit: types.string,
|
|
145
|
-
autoClosePopover:
|
|
144
|
+
autoClosePopover: VueTypes.bool,
|
|
146
145
|
renderMap: VueTypes.func.isRequired,
|
|
147
146
|
renderPopover: VueTypes.func,
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
onIdle: types.func
|
|
147
|
+
calculateMarkers: VueTypes.func,
|
|
148
|
+
searchAsMoveLabel: VueTypes.string.def('Search as I move the map')
|
|
151
149
|
},
|
|
150
|
+
preserveCenter: false,
|
|
152
151
|
data: function data() {
|
|
153
152
|
var props = this.$props;
|
|
154
153
|
var currentPageState = 0;
|
|
@@ -162,8 +161,8 @@ var ReactiveMap = {
|
|
|
162
161
|
zoom: props.defaultZoom,
|
|
163
162
|
searchAsMove: props.defaultSearchAsMove,
|
|
164
163
|
currentPageState: currentPageState,
|
|
165
|
-
|
|
166
|
-
|
|
164
|
+
mapBoxBounds: null,
|
|
165
|
+
markersData: null
|
|
167
166
|
};
|
|
168
167
|
return this.__state;
|
|
169
168
|
},
|
|
@@ -175,7 +174,7 @@ var ReactiveMap = {
|
|
|
175
174
|
var _this$getAllData = this.getAllData(),
|
|
176
175
|
resultsToRender = _this$getAllData.resultsToRender;
|
|
177
176
|
|
|
178
|
-
return _extends(
|
|
177
|
+
return _extends({}, getResultStats(this), {
|
|
179
178
|
currentPage: this.currentPageState,
|
|
180
179
|
displayedResults: resultsToRender.length
|
|
181
180
|
});
|
|
@@ -210,16 +209,19 @@ var ReactiveMap = {
|
|
|
210
209
|
var queryOptions = getOptionsFromQuery(this.$defaultQuery);
|
|
211
210
|
|
|
212
211
|
if (queryOptions) {
|
|
213
|
-
options = _extends(
|
|
212
|
+
options = _extends({}, options, getOptionsFromQuery(this.$defaultQuery));
|
|
214
213
|
} // Update calculated default query in store
|
|
215
214
|
|
|
216
215
|
|
|
217
|
-
this.setQueryOptions(this.$props.componentId, options,
|
|
216
|
+
this.setQueryOptions(this.$props.componentId, options, false);
|
|
218
217
|
var persistMapQuery = true;
|
|
219
218
|
var forceExecute = true; // Update default query to include the geo bounding box query
|
|
220
219
|
|
|
221
220
|
this.setDefaultQueryForRSAPI();
|
|
222
|
-
|
|
221
|
+
var meta = {
|
|
222
|
+
mapBoxBounds: this.mapBoxBounds
|
|
223
|
+
};
|
|
224
|
+
this.setMapData(this.componentId, query, persistMapQuery, forceExecute, meta);
|
|
223
225
|
this.currentPageState = 0;
|
|
224
226
|
this.from = 0;
|
|
225
227
|
}
|
|
@@ -250,7 +252,45 @@ var ReactiveMap = {
|
|
|
250
252
|
}
|
|
251
253
|
},
|
|
252
254
|
rawData: function rawData(newVal, oldVal) {
|
|
255
|
+
var _this = this;
|
|
256
|
+
|
|
253
257
|
if (!isEqual(newVal, oldVal)) {
|
|
258
|
+
var promotedResults = this.promotedResults,
|
|
259
|
+
hits = this.hits;
|
|
260
|
+
var results = parseHits(hits) || [];
|
|
261
|
+
var parsedPromotedResults = parseHits(promotedResults) || [];
|
|
262
|
+
var filteredResults = results;
|
|
263
|
+
|
|
264
|
+
if (parsedPromotedResults.length) {
|
|
265
|
+
var ids = parsedPromotedResults.map(function (item) {
|
|
266
|
+
return item._id;
|
|
267
|
+
}).filter(Boolean);
|
|
268
|
+
|
|
269
|
+
if (ids) {
|
|
270
|
+
filteredResults = filteredResults.filter(function (item) {
|
|
271
|
+
return !ids.includes(item._id);
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
filteredResults = [].concat(parsedPromotedResults, filteredResults);
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
filteredResults = filteredResults.filter(function (item) {
|
|
279
|
+
return !!item[_this.dataField];
|
|
280
|
+
}).map(function (item) {
|
|
281
|
+
var _extends2;
|
|
282
|
+
|
|
283
|
+
return _extends({}, item, (_extends2 = {}, _extends2[_this.dataField] = getLocationObject(item[_this.dataField]), _extends2));
|
|
284
|
+
});
|
|
285
|
+
this.filteredResults = this.addNoise(filteredResults);
|
|
286
|
+
|
|
287
|
+
if (this.calculateMarkers) {
|
|
288
|
+
this.markersData = this.calculateMarkers({
|
|
289
|
+
data: this.filteredResults,
|
|
290
|
+
rawData: this.rawData
|
|
291
|
+
}) || [];
|
|
292
|
+
}
|
|
293
|
+
|
|
254
294
|
this.$emit('data', this.getData());
|
|
255
295
|
}
|
|
256
296
|
},
|
|
@@ -288,18 +328,18 @@ var ReactiveMap = {
|
|
|
288
328
|
return this.parseLocation(MAP_CENTER);
|
|
289
329
|
},
|
|
290
330
|
addNoise: function addNoise(hits) {
|
|
291
|
-
var
|
|
331
|
+
var _this2 = this;
|
|
292
332
|
|
|
293
333
|
var hitMap = {};
|
|
294
334
|
var updatedHits = [];
|
|
295
335
|
hits.forEach(function (item) {
|
|
296
336
|
var updatedItem = _extends({}, item);
|
|
297
337
|
|
|
298
|
-
var location =
|
|
338
|
+
var location = _this2.parseLocation(item[_this2.dataField]);
|
|
299
339
|
|
|
300
340
|
var key = JSON.stringify(location);
|
|
301
341
|
var count = hitMap[key] || 0;
|
|
302
|
-
updatedItem[
|
|
342
|
+
updatedItem[_this2.dataField] = count ? withDistinctLat(location, count) : location;
|
|
303
343
|
updatedHits = [].concat(updatedHits, [updatedItem]);
|
|
304
344
|
hitMap[key] = count + 1;
|
|
305
345
|
});
|
|
@@ -313,10 +353,10 @@ var ReactiveMap = {
|
|
|
313
353
|
return null;
|
|
314
354
|
},
|
|
315
355
|
getHitsCenter: function getHitsCenter(hits) {
|
|
316
|
-
var
|
|
356
|
+
var _this3 = this;
|
|
317
357
|
|
|
318
358
|
var data = hits.map(function (hit) {
|
|
319
|
-
return hit[
|
|
359
|
+
return hit[_this3.dataField];
|
|
320
360
|
});
|
|
321
361
|
|
|
322
362
|
if (data.length) {
|
|
@@ -357,7 +397,7 @@ var ReactiveMap = {
|
|
|
357
397
|
return false;
|
|
358
398
|
},
|
|
359
399
|
getCenter: function getCenter(hits) {
|
|
360
|
-
var
|
|
400
|
+
var _this4 = this;
|
|
361
401
|
|
|
362
402
|
if (this.center) {
|
|
363
403
|
return this.parseLocation(this.center);
|
|
@@ -365,10 +405,10 @@ var ReactiveMap = {
|
|
|
365
405
|
|
|
366
406
|
var mapRef = this.getMapRef();
|
|
367
407
|
|
|
368
|
-
if (mapRef && typeof mapRef.getCenter === 'function' && this.preserveCenter) {
|
|
408
|
+
if (mapRef && typeof mapRef.getCenter === 'function' && this.$options.preserveCenter) {
|
|
369
409
|
var currentCenter = mapRef.getCenter();
|
|
370
410
|
setTimeout(function () {
|
|
371
|
-
|
|
411
|
+
_this4.$options.preserveCenter = false;
|
|
372
412
|
}, 100);
|
|
373
413
|
return this.parseLocation({
|
|
374
414
|
lat: currentCenter.lat(),
|
|
@@ -388,27 +428,31 @@ var ReactiveMap = {
|
|
|
388
428
|
},
|
|
389
429
|
handleZoomChange: function handleZoomChange(zoom) {
|
|
390
430
|
if (zoom) {
|
|
431
|
+
var prevZoom = this.zoom;
|
|
432
|
+
|
|
391
433
|
if (this.searchAsMove) {
|
|
392
434
|
this.zoom = zoom;
|
|
393
|
-
this.preserveCenter = true;
|
|
435
|
+
this.$options.preserveCenter = true;
|
|
394
436
|
this.setGeoQuery(true);
|
|
395
437
|
} else {
|
|
396
438
|
this.zoom = zoom;
|
|
397
439
|
}
|
|
398
440
|
|
|
399
|
-
if (
|
|
441
|
+
if (prevZoom !== zoom) {
|
|
442
|
+
this.$emit('zoom-changed', zoom);
|
|
443
|
+
}
|
|
400
444
|
}
|
|
401
445
|
},
|
|
402
446
|
handleOnDragEnd: function handleOnDragEnd() {
|
|
403
447
|
if (this.searchAsMove) {
|
|
404
|
-
this.preserveCenter = true;
|
|
448
|
+
this.$options.preserveCenter = true;
|
|
405
449
|
this.setGeoQuery(true);
|
|
406
450
|
}
|
|
407
451
|
|
|
408
|
-
|
|
452
|
+
this.$emit('drag-end');
|
|
409
453
|
},
|
|
410
454
|
handlePreserveCenter: function handlePreserveCenter(preserveCenter) {
|
|
411
|
-
this.preserveCenter = preserveCenter;
|
|
455
|
+
this.$options.preserveCenter = preserveCenter;
|
|
412
456
|
},
|
|
413
457
|
handleOnIdle: function handleOnIdle() {
|
|
414
458
|
// only make the geo_bounding query if we have hits data
|
|
@@ -419,7 +463,7 @@ var ReactiveMap = {
|
|
|
419
463
|
this.setGeoQuery(executeUpdate);
|
|
420
464
|
}
|
|
421
465
|
|
|
422
|
-
|
|
466
|
+
this.$emit('idle');
|
|
423
467
|
},
|
|
424
468
|
setGeoQuery: function setGeoQuery(executeUpdate) {
|
|
425
469
|
if (executeUpdate === void 0) {
|
|
@@ -448,7 +492,6 @@ var ReactiveMap = {
|
|
|
448
492
|
defaultPin = this.defaultPin,
|
|
449
493
|
renderPopover = this.renderPopover,
|
|
450
494
|
autoClosePopover = this.autoClosePopover,
|
|
451
|
-
markerProps = this.markerProps,
|
|
452
495
|
renderItem = this.renderItem;
|
|
453
496
|
return {
|
|
454
497
|
resultsToRender: data,
|
|
@@ -461,17 +504,14 @@ var ReactiveMap = {
|
|
|
461
504
|
renderPopover: renderPopover,
|
|
462
505
|
autoClosePopover: autoClosePopover,
|
|
463
506
|
renderSearchAsMove: this.renderSearchAsMove,
|
|
464
|
-
markerProps: markerProps,
|
|
465
507
|
handlePreserveCenter: this.handlePreserveCenter,
|
|
466
|
-
preserveCenter: this.preserveCenter,
|
|
508
|
+
preserveCenter: this.$options.preserveCenter,
|
|
467
509
|
handleOnDragEnd: this.handleOnDragEnd,
|
|
468
510
|
handleOnIdle: this.handleOnIdle,
|
|
469
511
|
handleZoomChange: this.handleZoomChange
|
|
470
512
|
};
|
|
471
513
|
},
|
|
472
514
|
getAllData: function getAllData() {
|
|
473
|
-
var _this4 = this;
|
|
474
|
-
|
|
475
515
|
var size = this.size,
|
|
476
516
|
promotedResults = this.promotedResults,
|
|
477
517
|
customData = this.customData,
|
|
@@ -479,31 +519,13 @@ var ReactiveMap = {
|
|
|
479
519
|
hits = this.hits;
|
|
480
520
|
var results = parseHits(hits) || [];
|
|
481
521
|
var parsedPromotedResults = parseHits(promotedResults) || [];
|
|
482
|
-
var filteredResults = results;
|
|
483
522
|
var base = currentPage * size;
|
|
523
|
+
var resultsToRender = this.filteredResults || [];
|
|
484
524
|
|
|
485
|
-
if (
|
|
486
|
-
|
|
487
|
-
return item._id;
|
|
488
|
-
}).filter(Boolean);
|
|
489
|
-
|
|
490
|
-
if (ids) {
|
|
491
|
-
filteredResults = filteredResults.filter(function (item) {
|
|
492
|
-
return !ids.includes(item._id);
|
|
493
|
-
});
|
|
494
|
-
}
|
|
495
|
-
|
|
496
|
-
filteredResults = [].concat(parsedPromotedResults, filteredResults);
|
|
525
|
+
if (this.markersData) {
|
|
526
|
+
resultsToRender = this.markersData;
|
|
497
527
|
}
|
|
498
528
|
|
|
499
|
-
filteredResults = filteredResults.filter(function (item) {
|
|
500
|
-
return !!item[_this4.dataField];
|
|
501
|
-
}).map(function (item) {
|
|
502
|
-
var _extends2;
|
|
503
|
-
|
|
504
|
-
return _extends(_extends({}, item), {}, (_extends2 = {}, _extends2[_this4.dataField] = getLocationObject(item[_this4.dataField]), _extends2));
|
|
505
|
-
});
|
|
506
|
-
var resultsToRender = this.addNoise(filteredResults);
|
|
507
529
|
return {
|
|
508
530
|
results: results,
|
|
509
531
|
resultsToRender: resultsToRender,
|
|
@@ -554,7 +576,7 @@ var ReactiveMap = {
|
|
|
554
576
|
options.from = this.$data.from;
|
|
555
577
|
this.from = value;
|
|
556
578
|
this.currentPageState = page;
|
|
557
|
-
this.loadMoreAction(this.componentId, _extends(
|
|
579
|
+
this.loadMoreAction(this.componentId, _extends({}, options, {
|
|
558
580
|
from: value
|
|
559
581
|
}), false);
|
|
560
582
|
|
|
@@ -566,29 +588,6 @@ var ReactiveMap = {
|
|
|
566
588
|
setDefaultQueryForRSAPI: function setDefaultQueryForRSAPI() {
|
|
567
589
|
if (this.defaultQuery && typeof this.defaultQuery === 'function') {
|
|
568
590
|
var defaultQuery = this.defaultQuery();
|
|
569
|
-
|
|
570
|
-
if (this.mapBoxBounds) {
|
|
571
|
-
var _geo_bounding_box;
|
|
572
|
-
|
|
573
|
-
var geoQuery = {
|
|
574
|
-
geo_bounding_box: (_geo_bounding_box = {}, _geo_bounding_box[this.dataField] = this.mapBoxBounds, _geo_bounding_box)
|
|
575
|
-
};
|
|
576
|
-
|
|
577
|
-
var _defaultQuery = defaultQuery,
|
|
578
|
-
query = _defaultQuery.query,
|
|
579
|
-
options = _objectWithoutPropertiesLoose(_defaultQuery, ["query"]);
|
|
580
|
-
|
|
581
|
-
if (query) {
|
|
582
|
-
// adds defaultQuery's query to geo-query
|
|
583
|
-
// to generate a map query
|
|
584
|
-
defaultQuery = _extends({
|
|
585
|
-
query: {
|
|
586
|
-
must: [geoQuery, query]
|
|
587
|
-
}
|
|
588
|
-
}, options);
|
|
589
|
-
}
|
|
590
|
-
}
|
|
591
|
-
|
|
592
591
|
this.setDefaultQuery(this.componentId, defaultQuery);
|
|
593
592
|
}
|
|
594
593
|
},
|
|
@@ -612,7 +611,7 @@ var ReactiveMap = {
|
|
|
612
611
|
var west;
|
|
613
612
|
|
|
614
613
|
if (mapBounds) {
|
|
615
|
-
var
|
|
614
|
+
var _geo_bounding_box;
|
|
616
615
|
|
|
617
616
|
north = mapBounds.getNorthEast().lat();
|
|
618
617
|
south = mapBounds.getSouthWest().lat();
|
|
@@ -624,7 +623,7 @@ var ReactiveMap = {
|
|
|
624
623
|
};
|
|
625
624
|
this.mapBoxBounds = boundingBoxCoordinates;
|
|
626
625
|
var geoQuery = {
|
|
627
|
-
geo_bounding_box: (
|
|
626
|
+
geo_bounding_box: (_geo_bounding_box = {}, _geo_bounding_box[this.dataField] = boundingBoxCoordinates, _geo_bounding_box)
|
|
628
627
|
};
|
|
629
628
|
|
|
630
629
|
if (this.$defaultQuery) {
|
|
@@ -667,7 +666,7 @@ var ReactiveMap = {
|
|
|
667
666
|
var value = this.from + this.size;
|
|
668
667
|
var options = getQueryOptions(this.$props);
|
|
669
668
|
this.from = value;
|
|
670
|
-
this.loadMoreAction(this.componentId, _extends(
|
|
669
|
+
this.loadMoreAction(this.componentId, _extends({}, options, {
|
|
671
670
|
from: value
|
|
672
671
|
}), true);
|
|
673
672
|
}
|
|
@@ -695,13 +694,14 @@ var ReactiveMap = {
|
|
|
695
694
|
base = _this$getAllData3.base;
|
|
696
695
|
|
|
697
696
|
return results.map(function (result, index) {
|
|
698
|
-
return _extends(
|
|
697
|
+
return _extends({}, result, {
|
|
699
698
|
_click_id: base + index
|
|
700
699
|
});
|
|
701
700
|
});
|
|
702
701
|
},
|
|
703
702
|
toggleSearchAsMove: function toggleSearchAsMove() {
|
|
704
703
|
this.searchAsMove = !this.searchAsMove;
|
|
704
|
+
this.$emit('search-as-move', this.searchAsMove);
|
|
705
705
|
},
|
|
706
706
|
renderErrorComponent: function renderErrorComponent() {
|
|
707
707
|
var renderError = this.$scopedSlots.renderError || this.$props.renderError;
|
|
@@ -747,7 +747,7 @@ var ReactiveMap = {
|
|
|
747
747
|
"className": getClassName(this.innerClass, 'label') || null,
|
|
748
748
|
"for": this.$props.componentId + "-searchasmove"
|
|
749
749
|
}
|
|
750
|
-
}, [
|
|
750
|
+
}, [this.searchAsMoveLabel])]);
|
|
751
751
|
}
|
|
752
752
|
|
|
753
753
|
return null;
|
|
@@ -801,7 +801,7 @@ var ReactiveMap = {
|
|
|
801
801
|
|
|
802
802
|
if (this.$props.defaultQuery) {
|
|
803
803
|
this.$defaultQuery = this.$props.defaultQuery();
|
|
804
|
-
options = _extends(
|
|
804
|
+
options = _extends({}, options, getOptionsFromQuery(this.$defaultQuery)); // Override sort query with defaultQuery's sort if defined
|
|
805
805
|
|
|
806
806
|
if (this.$defaultQuery.sort) {
|
|
807
807
|
options.sort = this.$defaultQuery.sort;
|
|
@@ -815,7 +815,10 @@ var ReactiveMap = {
|
|
|
815
815
|
var forceExecute = false; // Update default query for RS API
|
|
816
816
|
|
|
817
817
|
this.setDefaultQueryForRSAPI();
|
|
818
|
-
|
|
818
|
+
var meta = {
|
|
819
|
+
mapBoxBounds: this.mapBoxBounds
|
|
820
|
+
};
|
|
821
|
+
this.setMapData(this.componentId, this.$defaultQuery.query, persistMapQuery, forceExecute, meta);
|
|
819
822
|
} else {
|
|
820
823
|
// only apply geo-distance when defaultQuery prop is not set
|
|
821
824
|
var query = this.getGeoDistanceQuery();
|
|
@@ -835,11 +838,11 @@ var ReactiveMap = {
|
|
|
835
838
|
|
|
836
839
|
var center = this.center || this.defaultCenter;
|
|
837
840
|
var coordinatesObject = this.getArrPosition(center);
|
|
838
|
-
var
|
|
841
|
+
var _meta = {
|
|
839
842
|
distance: this.defaultRadius,
|
|
840
843
|
coordinates: coordinatesObject.lat + ", " + coordinatesObject.lon
|
|
841
844
|
};
|
|
842
|
-
this.setMapData(this.componentId, query, _persistMapQuery, _forceExecute,
|
|
845
|
+
this.setMapData(this.componentId, query, _persistMapQuery, _forceExecute, _meta);
|
|
843
846
|
}
|
|
844
847
|
}
|
|
845
848
|
|
|
@@ -849,7 +852,7 @@ var ReactiveMap = {
|
|
|
849
852
|
var h = arguments[0];
|
|
850
853
|
var loader = this.$scopedSlots.loader || this.$props.loader;
|
|
851
854
|
return h("div", {
|
|
852
|
-
"style": _extends(
|
|
855
|
+
"style": _extends({}, style, this.$props.style),
|
|
853
856
|
"class": this.$props.className
|
|
854
857
|
}, [this.renderErrorComponent(), this.isLoading && loader, this.hasCustomRender ? this.getComponent() : null, this.renderMap(this.getMapParams()), this.pagination ? this.renderPagination() : null]);
|
|
855
858
|
}
|
|
@@ -893,9 +896,46 @@ ReactiveMap.install = function (Vue) {
|
|
|
893
896
|
|
|
894
897
|
ReactiveMap.componentType = componentTypes.reactiveMap;
|
|
895
898
|
|
|
899
|
+
var InfoWindowWrapper = {
|
|
900
|
+
name: 'InfoWindowWrapper',
|
|
901
|
+
props: {
|
|
902
|
+
id: VueTypes.string,
|
|
903
|
+
renderPopover: VueTypes.func,
|
|
904
|
+
infoWindowProps: VueTypes.object,
|
|
905
|
+
events: VueTypes.object
|
|
906
|
+
},
|
|
907
|
+
data: function data() {
|
|
908
|
+
return {
|
|
909
|
+
infoWindowRef: null
|
|
910
|
+
};
|
|
911
|
+
},
|
|
912
|
+
mounted: function mounted() {
|
|
913
|
+
this.infoWindowRef = this.$refs[this.id + "-Info-Window"];
|
|
914
|
+
},
|
|
915
|
+
methods: {
|
|
916
|
+
handleClose: function handleClose() {
|
|
917
|
+
this.infoWindowRef.$infoWindowObject.close();
|
|
918
|
+
}
|
|
919
|
+
},
|
|
920
|
+
render: function render() {
|
|
921
|
+
var h = arguments[0];
|
|
922
|
+
var renderPopover = this.renderPopover,
|
|
923
|
+
events = this.events;
|
|
924
|
+
return h(InfoWindow, {
|
|
925
|
+
"ref": this.id + "-Info-Window",
|
|
926
|
+
"props": _extends({}, this.infoWindowProps),
|
|
927
|
+
"on": _extends({}, events)
|
|
928
|
+
}, [h("div", [renderPopover(this.handleClose)])]);
|
|
929
|
+
}
|
|
930
|
+
};
|
|
931
|
+
|
|
896
932
|
var MarkerWithLabel = {
|
|
897
933
|
name: 'MarkerWithLabel',
|
|
898
934
|
props: {
|
|
935
|
+
metaData: {
|
|
936
|
+
type: Object,
|
|
937
|
+
"default": undefined
|
|
938
|
+
},
|
|
899
939
|
marker: {
|
|
900
940
|
type: Object,
|
|
901
941
|
"default": undefined
|
|
@@ -995,6 +1035,7 @@ var MarkerWithLabel = {
|
|
|
995
1035
|
var _this3;
|
|
996
1036
|
|
|
997
1037
|
_this3 = _window$google$maps$O.call(this) || this;
|
|
1038
|
+
_this3.metaData = self.metaData;
|
|
998
1039
|
|
|
999
1040
|
_this3.setMap(map2);
|
|
1000
1041
|
|
|
@@ -1160,47 +1201,17 @@ var MarkerWithLabel = {
|
|
|
1160
1201
|
},
|
|
1161
1202
|
"on": {
|
|
1162
1203
|
"mouseover": this.handleMouseOver,
|
|
1163
|
-
"focus": this.handleFocus,
|
|
1164
1204
|
"mouseout": this.handleMouseOut,
|
|
1165
|
-
"blur": this.handleBlur,
|
|
1166
1205
|
"click": this.handleClick
|
|
1167
1206
|
}
|
|
1168
1207
|
}, [this.renderMarker()]);
|
|
1169
1208
|
}
|
|
1170
1209
|
};
|
|
1171
1210
|
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
return data;
|
|
1177
|
-
};
|
|
1178
|
-
|
|
1179
|
-
return data;
|
|
1180
|
-
}
|
|
1181
|
-
|
|
1182
|
-
function _templateObject2() {
|
|
1183
|
-
var data = _taggedTemplateLiteralLoose(["\n\tborder-color: rgba(0, 0, 0, 0.2);\n\tborder-style: solid;\n\tborder-width: 0 1px 1px 0;\n\tmargin-left: -6px;\n\tbackground-color: #fff;\n\tmargin-top: -6px;\n\twidth: 12px;\n\theight: 12px;\n\t-webkit-transform: rotate(45deg);\n\t-ms-transform: rotate(45deg);\n\ttransform: rotate(45deg);\n"]);
|
|
1184
|
-
|
|
1185
|
-
_templateObject2 = function _templateObject2() {
|
|
1186
|
-
return data;
|
|
1187
|
-
};
|
|
1188
|
-
|
|
1189
|
-
return data;
|
|
1190
|
-
}
|
|
1191
|
-
|
|
1192
|
-
function _templateObject() {
|
|
1193
|
-
var data = _taggedTemplateLiteralLoose(["\n\theight: 24px;\n\twidth: auto;\n\tbackground-color: #fff;\n\tborder-radius: 2px;\n\tcolor: #222;\n\tbox-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.15);\n\tpadding: 3px 6px;\n\tfont-size: 15px;\n"]);
|
|
1194
|
-
|
|
1195
|
-
_templateObject = function _templateObject() {
|
|
1196
|
-
return data;
|
|
1197
|
-
};
|
|
1198
|
-
|
|
1199
|
-
return data;
|
|
1200
|
-
}
|
|
1201
|
-
var MapPin = styled('div')(_templateObject());
|
|
1202
|
-
var MapPinArrow = styled('div')(_templateObject2());
|
|
1203
|
-
var mapPinWrapper = css(_templateObject3());
|
|
1211
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
1212
|
+
var MapPin = styled('div')(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n\theight: 24px;\n\twidth: auto;\n\tbackground-color: #fff;\n\tborder-radius: 2px;\n\tcolor: #222;\n\tbox-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.15);\n\tpadding: 3px 6px;\n\tfont-size: 15px;\n"])));
|
|
1213
|
+
var MapPinArrow = styled('div')(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n\tborder-color: rgba(0, 0, 0, 0.2);\n\tborder-style: solid;\n\tborder-width: 0 1px 1px 0;\n\tmargin-left: -6px;\n\tbackground-color: #fff;\n\tmargin-top: -6px;\n\twidth: 12px;\n\theight: 12px;\n\t-webkit-transform: rotate(45deg);\n\t-ms-transform: rotate(45deg);\n\ttransform: rotate(45deg);\n"])));
|
|
1214
|
+
var mapPinWrapper = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n\t&:hover,\n\t&:focus {\n\t\tz-index: 200;\n\t}\n"])));
|
|
1204
1215
|
|
|
1205
1216
|
var recordResultClick$1 = Actions.recordResultClick;
|
|
1206
1217
|
var GoogleMapMarker = {
|
|
@@ -1209,54 +1220,62 @@ var GoogleMapMarker = {
|
|
|
1209
1220
|
index: VueTypes.number,
|
|
1210
1221
|
marker: VueTypes.object.isRequired,
|
|
1211
1222
|
getPosition: VueTypes.func.isRequired,
|
|
1212
|
-
markerOnTop: VueTypes.string,
|
|
1213
1223
|
defaultPin: VueTypes.string,
|
|
1214
1224
|
renderItem: VueTypes.func,
|
|
1215
|
-
setMarkerOnTop: VueTypes.func.isRequired,
|
|
1216
1225
|
setOpenMarkers: VueTypes.func.isRequired,
|
|
1217
1226
|
handlePreserveCenter: VueTypes.func.isRequired,
|
|
1218
1227
|
autoClosePopover: VueTypes.bool,
|
|
1219
1228
|
openMarkers: VueTypes.object,
|
|
1220
|
-
renderPopover: VueTypes.func
|
|
1229
|
+
renderPopover: VueTypes.func,
|
|
1230
|
+
highlightMarkerOnHover: VueTypes.bool
|
|
1231
|
+
},
|
|
1232
|
+
data: function data() {
|
|
1233
|
+
return {
|
|
1234
|
+
zIndex: 0
|
|
1235
|
+
};
|
|
1221
1236
|
},
|
|
1222
1237
|
methods: {
|
|
1223
1238
|
increaseMarkerZIndex: function increaseMarkerZIndex() {
|
|
1224
|
-
var
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1239
|
+
var handlePreserveCenter = this.$props.handlePreserveCenter;
|
|
1240
|
+
|
|
1241
|
+
if (this.highlightMarkerOnHover) {
|
|
1242
|
+
this.zIndex += 1;
|
|
1243
|
+
}
|
|
1244
|
+
|
|
1229
1245
|
handlePreserveCenter(true);
|
|
1230
1246
|
},
|
|
1231
1247
|
removeMarkerZIndex: function removeMarkerZIndex() {
|
|
1232
|
-
var
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1248
|
+
var handlePreserveCenter = this.$props.handlePreserveCenter;
|
|
1249
|
+
|
|
1250
|
+
if (this.highlightMarkerOnHover) {
|
|
1251
|
+
this.zIndex -= 1;
|
|
1252
|
+
}
|
|
1253
|
+
|
|
1236
1254
|
handlePreserveCenter(true);
|
|
1237
1255
|
},
|
|
1238
1256
|
openMarker: function openMarker() {
|
|
1239
1257
|
var _ref, _extends2;
|
|
1240
1258
|
|
|
1241
|
-
var _this$$
|
|
1242
|
-
handleOpenMarkers = _this$$
|
|
1243
|
-
openMarkers = _this$$
|
|
1244
|
-
marker = _this$$
|
|
1245
|
-
autoClosePopover = _this$$
|
|
1246
|
-
handlePreserveCenter = _this$$
|
|
1259
|
+
var _this$$props = this.$props,
|
|
1260
|
+
handleOpenMarkers = _this$$props.setOpenMarkers,
|
|
1261
|
+
openMarkers = _this$$props.openMarkers,
|
|
1262
|
+
marker = _this$$props.marker,
|
|
1263
|
+
autoClosePopover = _this$$props.autoClosePopover,
|
|
1264
|
+
handlePreserveCenter = _this$$props.handlePreserveCenter;
|
|
1247
1265
|
var id = marker._id;
|
|
1248
|
-
var newOpenMarkers = autoClosePopover ? (_ref = {}, _ref[id] = true, _ref) : _extends(
|
|
1266
|
+
var newOpenMarkers = autoClosePopover ? (_ref = {}, _ref[id] = true, _ref) : _extends({}, openMarkers, (_extends2 = {}, _extends2[id] = true, _extends2));
|
|
1249
1267
|
handleOpenMarkers(newOpenMarkers);
|
|
1250
1268
|
handlePreserveCenter(true);
|
|
1251
1269
|
this.triggerAnalytics();
|
|
1270
|
+
this.$emit('open-marker-popover', marker);
|
|
1252
1271
|
},
|
|
1253
1272
|
closeMarker: function closeMarker() {
|
|
1254
|
-
var _this$$
|
|
1255
|
-
handleOpenMarkers = _this$$
|
|
1256
|
-
marker = _this$$
|
|
1257
|
-
autoClosePopover = _this$$
|
|
1258
|
-
handlePreserveCenter = _this$$
|
|
1259
|
-
openMarkers = _this$$
|
|
1273
|
+
var _this$$props2 = this.$props,
|
|
1274
|
+
handleOpenMarkers = _this$$props2.setOpenMarkers,
|
|
1275
|
+
marker = _this$$props2.marker,
|
|
1276
|
+
autoClosePopover = _this$$props2.autoClosePopover,
|
|
1277
|
+
handlePreserveCenter = _this$$props2.handlePreserveCenter,
|
|
1278
|
+
openMarkers = _this$$props2.openMarkers;
|
|
1260
1279
|
var id = marker._id;
|
|
1261
1280
|
|
|
1262
1281
|
var del = openMarkers[id],
|
|
@@ -1265,6 +1284,7 @@ var GoogleMapMarker = {
|
|
|
1265
1284
|
var newOpenMarkers = autoClosePopover ? {} : activeMarkers;
|
|
1266
1285
|
handleOpenMarkers(newOpenMarkers);
|
|
1267
1286
|
handlePreserveCenter(true);
|
|
1287
|
+
this.$emit('close-marker-popover', marker);
|
|
1268
1288
|
},
|
|
1269
1289
|
triggerAnalytics: function triggerAnalytics() {
|
|
1270
1290
|
this.recordResultClick(this.index, this.marker._id);
|
|
@@ -1278,10 +1298,10 @@ var GoogleMapMarker = {
|
|
|
1278
1298
|
|
|
1279
1299
|
var h = this.$createElement;
|
|
1280
1300
|
var additionalProps = {};
|
|
1281
|
-
var _this$$
|
|
1282
|
-
getPosition = _this$$
|
|
1283
|
-
|
|
1284
|
-
openMarkers = _this$$
|
|
1301
|
+
var _this$$props3 = this.$props,
|
|
1302
|
+
getPosition = _this$$props3.getPosition,
|
|
1303
|
+
_renderPopover = _this$$props3.renderPopover,
|
|
1304
|
+
openMarkers = _this$$props3.openMarkers;
|
|
1285
1305
|
|
|
1286
1306
|
if (includeExternalSettings) {
|
|
1287
1307
|
// to render pop-over correctly with MarkerWithLabel
|
|
@@ -1294,19 +1314,32 @@ var GoogleMapMarker = {
|
|
|
1294
1314
|
}
|
|
1295
1315
|
|
|
1296
1316
|
if (item._id in openMarkers) {
|
|
1297
|
-
return h(
|
|
1298
|
-
"attrs": {
|
|
1299
|
-
"zIndex": 500,
|
|
1300
|
-
"position": additionalProps.position,
|
|
1301
|
-
"options": additionalProps.defaultOptions
|
|
1302
|
-
},
|
|
1317
|
+
return h(InfoWindowWrapper, {
|
|
1303
1318
|
"key": item._id + "-InfoWindow",
|
|
1304
|
-
"
|
|
1305
|
-
"
|
|
1306
|
-
|
|
1319
|
+
"attrs": {
|
|
1320
|
+
"id": item._id,
|
|
1321
|
+
"renderPopover": function renderPopover(_handleClose) {
|
|
1322
|
+
return _renderPopover({
|
|
1323
|
+
item: item,
|
|
1324
|
+
handleClose: function handleClose() {
|
|
1325
|
+
_handleClose();
|
|
1326
|
+
|
|
1327
|
+
_this.closeMarker();
|
|
1328
|
+
}
|
|
1329
|
+
});
|
|
1330
|
+
},
|
|
1331
|
+
"infoWindowProps": {
|
|
1332
|
+
zIndex: 500,
|
|
1333
|
+
position: additionalProps.position,
|
|
1334
|
+
options: additionalProps.defaultOptions
|
|
1335
|
+
},
|
|
1336
|
+
"events": {
|
|
1337
|
+
closeclick: function closeclick() {
|
|
1338
|
+
return _this.closeMarker();
|
|
1339
|
+
}
|
|
1307
1340
|
}
|
|
1308
1341
|
}
|
|
1309
|
-
}
|
|
1342
|
+
});
|
|
1310
1343
|
}
|
|
1311
1344
|
|
|
1312
1345
|
return null;
|
|
@@ -1316,20 +1349,17 @@ var GoogleMapMarker = {
|
|
|
1316
1349
|
var _this2 = this;
|
|
1317
1350
|
|
|
1318
1351
|
var h = arguments[0];
|
|
1319
|
-
var _this$$
|
|
1320
|
-
getPosition = _this$$
|
|
1321
|
-
renderItem = _this$$
|
|
1322
|
-
defaultPin = _this$$
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
customMarkerProps = _this$$props6.markerProps,
|
|
1327
|
-
marker = _this$$props6.marker,
|
|
1328
|
-
markerOnTop = _this$$props6.markerOnTop;
|
|
1352
|
+
var _this$$props4 = this.$props,
|
|
1353
|
+
getPosition = _this$$props4.getPosition,
|
|
1354
|
+
renderItem = _this$$props4.renderItem,
|
|
1355
|
+
defaultPin = _this$$props4.defaultPin,
|
|
1356
|
+
renderPopover = _this$$props4.renderPopover,
|
|
1357
|
+
customMarkerProps = _this$$props4.markerProps,
|
|
1358
|
+
marker = _this$$props4.marker;
|
|
1329
1359
|
var markerProps = {};
|
|
1330
1360
|
|
|
1331
|
-
if (
|
|
1332
|
-
markerProps.zIndex = window.google.maps.Marker.MAX_ZINDEX +
|
|
1361
|
+
if (this.zIndex) {
|
|
1362
|
+
markerProps.zIndex = window.google.maps.Marker.MAX_ZINDEX + this.zIndex;
|
|
1333
1363
|
}
|
|
1334
1364
|
|
|
1335
1365
|
if (renderItem) {
|
|
@@ -1339,12 +1369,11 @@ var GoogleMapMarker = {
|
|
|
1339
1369
|
return h(MarkerWithLabel, {
|
|
1340
1370
|
"key": marker._id,
|
|
1341
1371
|
"attrs": {
|
|
1372
|
+
"metaData": marker,
|
|
1342
1373
|
"marker": getPosition(marker),
|
|
1343
1374
|
"labelAnchor": new window.google.maps.Point(0, 30),
|
|
1344
1375
|
"handleMouseOver": this.increaseMarkerZIndex,
|
|
1345
|
-
"handleFocus": this.increaseMarkerZIndex,
|
|
1346
1376
|
"handleMouseOut": this.removeMarkerZIndex,
|
|
1347
|
-
"handleBlur": this.removeMarkerZIndex,
|
|
1348
1377
|
"handleClick": this.openMarker,
|
|
1349
1378
|
"zIndex": markerProps.zIndex,
|
|
1350
1379
|
"renderMarker": function renderMarker() {
|
|
@@ -1365,12 +1394,11 @@ var GoogleMapMarker = {
|
|
|
1365
1394
|
return h(MarkerWithLabel, {
|
|
1366
1395
|
"key": marker._id,
|
|
1367
1396
|
"attrs": {
|
|
1397
|
+
"metaData": marker,
|
|
1368
1398
|
"marker": getPosition(marker),
|
|
1369
1399
|
"handleClick": this.openMarker,
|
|
1370
1400
|
"handleMouseOver": this.increaseMarkerZIndex,
|
|
1371
|
-
"handleFocus": this.increaseMarkerZIndex,
|
|
1372
1401
|
"handleMouseOut": this.removeMarkerZIndex,
|
|
1373
|
-
"handleBlur": this.removeMarkerZIndex,
|
|
1374
1402
|
"zIndex": markerProps.zIndex,
|
|
1375
1403
|
"renderMarker": function renderMarker() {
|
|
1376
1404
|
return h("div", {
|
|
@@ -1394,16 +1422,17 @@ var GoogleMapMarker = {
|
|
|
1394
1422
|
"attrs": {
|
|
1395
1423
|
"icon": markerProps.icon,
|
|
1396
1424
|
"zIndex": markerProps.zIndex,
|
|
1397
|
-
"position": getPosition(marker)
|
|
1425
|
+
"position": getPosition(marker),
|
|
1426
|
+
"options": {
|
|
1427
|
+
metaData: marker
|
|
1428
|
+
}
|
|
1398
1429
|
},
|
|
1399
1430
|
"on": {
|
|
1400
1431
|
"click": function click() {
|
|
1401
|
-
return _this2.openMarker(
|
|
1432
|
+
return _this2.openMarker();
|
|
1402
1433
|
},
|
|
1403
1434
|
"mouseover": this.increaseMarkerZIndex,
|
|
1404
|
-
"
|
|
1405
|
-
"mouseout": this.removeMarkerZIndex,
|
|
1406
|
-
"blur": this.removeMarkerZIndex
|
|
1435
|
+
"mouseout": this.removeMarkerZIndex
|
|
1407
1436
|
},
|
|
1408
1437
|
"props": _extends({}, customMarkerProps)
|
|
1409
1438
|
}, [renderPopover ? this.renderPopoverClick(marker) : null]);
|
|
@@ -1422,34 +1451,60 @@ var GoogleMapMarkers = {
|
|
|
1422
1451
|
resultsToRender: VueTypes.array,
|
|
1423
1452
|
getPosition: VueTypes.func,
|
|
1424
1453
|
renderItem: VueTypes.func,
|
|
1454
|
+
renderClusterPopover: VueTypes.func,
|
|
1425
1455
|
defaultPin: VueTypes.string,
|
|
1426
1456
|
autoClosePopover: VueTypes.bool,
|
|
1427
1457
|
handlePreserveCenter: VueTypes.func,
|
|
1428
1458
|
renderPopover: VueTypes.func,
|
|
1429
1459
|
markerProps: VueTypes.object,
|
|
1430
|
-
|
|
1460
|
+
clusterProps: VueTypes.object,
|
|
1461
|
+
showMarkerClusters: VueTypes.bool,
|
|
1462
|
+
highlightMarkerOnHover: VueTypes.bool
|
|
1431
1463
|
},
|
|
1432
1464
|
data: function data() {
|
|
1433
1465
|
return {
|
|
1434
|
-
|
|
1435
|
-
|
|
1466
|
+
openMarkers: {},
|
|
1467
|
+
clickedCluster: null,
|
|
1468
|
+
clusterMarkers: []
|
|
1436
1469
|
};
|
|
1437
1470
|
},
|
|
1438
1471
|
methods: {
|
|
1439
|
-
setMarkerOnTop: function setMarkerOnTop(markerOnTop) {
|
|
1440
|
-
this.markerOnTop = markerOnTop;
|
|
1441
|
-
},
|
|
1442
1472
|
setOpenMarkers: function setOpenMarkers(openMarkers) {
|
|
1443
1473
|
this.openMarkers = openMarkers;
|
|
1474
|
+
},
|
|
1475
|
+
getClusterMarkers: function getClusterMarkers() {
|
|
1476
|
+
if (this.clickedCluster && Array.isArray(this.clickedCluster.getMarkers())) {
|
|
1477
|
+
return this.clickedCluster.getMarkers().map(function (marker) {
|
|
1478
|
+
return marker.metaData;
|
|
1479
|
+
});
|
|
1480
|
+
}
|
|
1481
|
+
|
|
1482
|
+
return [];
|
|
1483
|
+
},
|
|
1484
|
+
getAdditionalProps: function getAdditionalProps() {
|
|
1485
|
+
return {
|
|
1486
|
+
position: {
|
|
1487
|
+
lat: this.clickedCluster.getCenter().lat(),
|
|
1488
|
+
lng: this.clickedCluster.getCenter().lng()
|
|
1489
|
+
},
|
|
1490
|
+
defaultOptions: {
|
|
1491
|
+
pixelOffset: new window.google.maps.Size(0, -30)
|
|
1492
|
+
}
|
|
1493
|
+
};
|
|
1494
|
+
},
|
|
1495
|
+
closeMarker: function closeMarker() {
|
|
1496
|
+
this.clickedCluster = null;
|
|
1497
|
+
this.clusterMarkers = [];
|
|
1498
|
+
this.$emit('close-cluster-popover');
|
|
1444
1499
|
}
|
|
1445
1500
|
},
|
|
1446
1501
|
render: function render() {
|
|
1502
|
+
var _this = this;
|
|
1503
|
+
|
|
1447
1504
|
var h = arguments[0];
|
|
1448
1505
|
var resultsToRender = this.$props.resultsToRender;
|
|
1449
|
-
var
|
|
1450
|
-
openMarkers = this.openMarkers;
|
|
1506
|
+
var openMarkers = this.openMarkers;
|
|
1451
1507
|
var markerProps = {
|
|
1452
|
-
markerOnTop: markerOnTop,
|
|
1453
1508
|
openMarkers: openMarkers,
|
|
1454
1509
|
setMarkerOnTop: this.setMarkerOnTop,
|
|
1455
1510
|
setOpenMarkers: this.setOpenMarkers,
|
|
@@ -1460,19 +1515,55 @@ var GoogleMapMarkers = {
|
|
|
1460
1515
|
handlePreserveCenter: this.handlePreserveCenter,
|
|
1461
1516
|
renderPopover: this.renderPopover,
|
|
1462
1517
|
markerProps: this.markerProps,
|
|
1463
|
-
showMarkerClusters: this.showMarkerClusters
|
|
1518
|
+
showMarkerClusters: this.showMarkerClusters,
|
|
1519
|
+
highlightMarkerOnHover: this.highlightMarkerOnHover
|
|
1464
1520
|
};
|
|
1465
1521
|
|
|
1466
1522
|
if (this.showMarkerClusters) {
|
|
1467
|
-
return h(
|
|
1523
|
+
return h("div", [h(GmapCluster, {
|
|
1524
|
+
"props": _extends({}, this.clusterProps),
|
|
1525
|
+
"on": {
|
|
1526
|
+
"click": function click(cluster) {
|
|
1527
|
+
_this.clickedCluster = cluster;
|
|
1528
|
+
_this.clusterMarkers = _this.getClusterMarkers();
|
|
1529
|
+
|
|
1530
|
+
_this.$emit('open-cluster-popover', _this.clusterMarkers);
|
|
1531
|
+
}
|
|
1532
|
+
},
|
|
1533
|
+
"ref": "clusterRef"
|
|
1534
|
+
}, [resultsToRender.map(function (marker, index) {
|
|
1468
1535
|
return h(GoogleMapMarker$1, {
|
|
1469
1536
|
"attrs": {
|
|
1470
1537
|
"index": index,
|
|
1471
1538
|
"marker": marker
|
|
1472
1539
|
},
|
|
1473
|
-
"props": _extends({}, markerProps)
|
|
1540
|
+
"props": _extends({}, markerProps),
|
|
1541
|
+
"on": _extends({}, _this.$listeners)
|
|
1474
1542
|
});
|
|
1475
|
-
})])
|
|
1543
|
+
})]), this.clickedCluster && this.renderClusterPopover ? h(InfoWindowWrapper, {
|
|
1544
|
+
"attrs": {
|
|
1545
|
+
"id": "cluster",
|
|
1546
|
+
"infoWindowProps": {
|
|
1547
|
+
zIndex: 500,
|
|
1548
|
+
position: this.getAdditionalProps().position,
|
|
1549
|
+
options: this.getAdditionalProps().defaultOptions
|
|
1550
|
+
},
|
|
1551
|
+
"renderPopover": function renderPopover(_handleClose) {
|
|
1552
|
+
return _this.renderClusterPopover({
|
|
1553
|
+
markers: _this.clusterMarkers,
|
|
1554
|
+
cluster: _this.clickedCluster,
|
|
1555
|
+
handleClose: function handleClose() {
|
|
1556
|
+
_handleClose();
|
|
1557
|
+
|
|
1558
|
+
_this.closeMarker();
|
|
1559
|
+
}
|
|
1560
|
+
});
|
|
1561
|
+
},
|
|
1562
|
+
"events": {
|
|
1563
|
+
closeclick: this.closeMarker
|
|
1564
|
+
}
|
|
1565
|
+
}
|
|
1566
|
+
}) : null]);
|
|
1476
1567
|
}
|
|
1477
1568
|
|
|
1478
1569
|
return h("div", [resultsToRender.map(function (marker, index) {
|
|
@@ -1481,7 +1572,8 @@ var GoogleMapMarkers = {
|
|
|
1481
1572
|
"index": index,
|
|
1482
1573
|
"marker": marker
|
|
1483
1574
|
},
|
|
1484
|
-
"props": _extends({}, markerProps)
|
|
1575
|
+
"props": _extends({}, markerProps),
|
|
1576
|
+
"on": _extends({}, _this.$listeners)
|
|
1485
1577
|
});
|
|
1486
1578
|
})]);
|
|
1487
1579
|
}
|
|
@@ -1493,19 +1585,22 @@ var ReactiveGoogleMap = {
|
|
|
1493
1585
|
className: types.string,
|
|
1494
1586
|
componentId: types.stringRequired,
|
|
1495
1587
|
dataField: types.stringRequired,
|
|
1588
|
+
defaultQuery: VueTypes.func,
|
|
1496
1589
|
loader: types.title,
|
|
1497
1590
|
defaultZoom: VueTypes.number.def(13),
|
|
1498
1591
|
react: types.react,
|
|
1499
1592
|
size: types.number,
|
|
1500
1593
|
sortBy: types.sortBy,
|
|
1501
|
-
URLParams:
|
|
1594
|
+
URLParams: VueTypes.bool,
|
|
1502
1595
|
mapProps: VueTypes.object,
|
|
1503
1596
|
showMarkers: VueTypes.bool.def(true),
|
|
1504
1597
|
showMarkerClusters: VueTypes.bool.def(false),
|
|
1505
1598
|
searchAsMove: VueTypes.bool.def(false),
|
|
1506
|
-
|
|
1599
|
+
searchAsMoveLabel: VueTypes.string,
|
|
1600
|
+
markerProps: VueTypes.object,
|
|
1601
|
+
clusterProps: VueTypes.object,
|
|
1507
1602
|
renderItem: VueTypes.func,
|
|
1508
|
-
showSearchAsMove:
|
|
1603
|
+
showSearchAsMove: VueTypes.bool.def(true),
|
|
1509
1604
|
autoClosePopover: VueTypes.bool,
|
|
1510
1605
|
pagination: VueTypes.bool,
|
|
1511
1606
|
defaultPin: VueTypes.string,
|
|
@@ -1514,7 +1609,9 @@ var ReactiveGoogleMap = {
|
|
|
1514
1609
|
center: types.location,
|
|
1515
1610
|
defaultRadius: types.number,
|
|
1516
1611
|
unit: types.string,
|
|
1517
|
-
pages: VueTypes.number.def(5)
|
|
1612
|
+
pages: VueTypes.number.def(5),
|
|
1613
|
+
calculateMarkers: VueTypes.func,
|
|
1614
|
+
highlightMarkerOnHover: VueTypes.bool.def(true)
|
|
1518
1615
|
},
|
|
1519
1616
|
methods: {
|
|
1520
1617
|
renderMap: function renderMap(_ref) {
|
|
@@ -1529,9 +1626,7 @@ var ReactiveGoogleMap = {
|
|
|
1529
1626
|
renderSearchAsMove = _ref.renderSearchAsMove,
|
|
1530
1627
|
handlePreserveCenter = _ref.handlePreserveCenter,
|
|
1531
1628
|
getPosition = _ref.getPosition,
|
|
1532
|
-
markerProps = _ref.markerProps,
|
|
1533
1629
|
autoClosePopover = _ref.autoClosePopover,
|
|
1534
|
-
renderPopover = _ref.renderPopover,
|
|
1535
1630
|
defaultPin = _ref.defaultPin;
|
|
1536
1631
|
var h = this.$createElement;
|
|
1537
1632
|
var style = {
|
|
@@ -1564,8 +1659,10 @@ var ReactiveGoogleMap = {
|
|
|
1564
1659
|
"attrs": {
|
|
1565
1660
|
"resultsToRender": resultsToRender,
|
|
1566
1661
|
"getPosition": getPosition,
|
|
1567
|
-
"markerProps": markerProps,
|
|
1662
|
+
"markerProps": this.markerProps,
|
|
1663
|
+
"clusterProps": this.clusterProps,
|
|
1568
1664
|
"handlePreserveCenter": handlePreserveCenter,
|
|
1665
|
+
"highlightMarkerOnHover": this.highlightMarkerOnHover,
|
|
1569
1666
|
"renderItem": this.$scopedSlots.renderItem ? function () {
|
|
1570
1667
|
return {
|
|
1571
1668
|
custom: _this.$scopedSlots.renderItem
|
|
@@ -1573,9 +1670,11 @@ var ReactiveGoogleMap = {
|
|
|
1573
1670
|
} : this.renderItem,
|
|
1574
1671
|
"defaultPin": defaultPin,
|
|
1575
1672
|
"autoClosePopover": autoClosePopover,
|
|
1576
|
-
"renderPopover": renderPopover,
|
|
1673
|
+
"renderPopover": this.$scopedSlots.renderPopover,
|
|
1674
|
+
"renderClusterPopover": this.$scopedSlots.renderClusterPopover,
|
|
1577
1675
|
"showMarkerClusters": this.showMarkerClusters
|
|
1578
|
-
}
|
|
1676
|
+
},
|
|
1677
|
+
"on": _extends({}, this.$listeners)
|
|
1579
1678
|
}) : null]), renderSearchAsMove()]);
|
|
1580
1679
|
},
|
|
1581
1680
|
getMapRef: function getMapRef() {
|
|
@@ -1592,8 +1691,6 @@ var ReactiveGoogleMap = {
|
|
|
1592
1691
|
}
|
|
1593
1692
|
},
|
|
1594
1693
|
render: function render() {
|
|
1595
|
-
var _this3 = this;
|
|
1596
|
-
|
|
1597
1694
|
var h = arguments[0];
|
|
1598
1695
|
return h(RMConnected, _mergeJSXProps([{
|
|
1599
1696
|
"attrs": {
|
|
@@ -1610,31 +1707,20 @@ var ReactiveGoogleMap = {
|
|
|
1610
1707
|
"uRLParams": this.URLParams,
|
|
1611
1708
|
"defaultSearchAsMove": this.searchAsMove,
|
|
1612
1709
|
"showSearchAsMove": this.showSearchAsMove,
|
|
1710
|
+
"searchAsMoveLabel": this.searchAsMoveLabel,
|
|
1613
1711
|
"showMarkers": this.showMarkers,
|
|
1614
1712
|
"markerProps": this.markerProps,
|
|
1615
1713
|
"autoClosePopover": this.autoClosePopover,
|
|
1616
1714
|
"defaultPin": this.defaultPin,
|
|
1617
|
-
"
|
|
1618
|
-
return _this3.$scopedSlots.renderPopover(item);
|
|
1619
|
-
} : null,
|
|
1715
|
+
"defaultQuery": this.defaultQuery,
|
|
1620
1716
|
"autoCenter": this.autoCenter,
|
|
1621
1717
|
"defaultCenter": this.defaultCenter,
|
|
1622
1718
|
"defaultRadius": this.defaultRadius,
|
|
1623
1719
|
"unit": this.unit,
|
|
1624
1720
|
"pages": this.pages,
|
|
1625
1721
|
"center": this.center,
|
|
1626
|
-
"loader": this.loader
|
|
1627
|
-
|
|
1628
|
-
"on": {
|
|
1629
|
-
"zoomChanged": function zoomChanged(zoom) {
|
|
1630
|
-
_this3.$emit('zoom-changed', zoom);
|
|
1631
|
-
},
|
|
1632
|
-
"idle": function idle() {
|
|
1633
|
-
_this3.$emit('idle');
|
|
1634
|
-
},
|
|
1635
|
-
"dragEnd": function dragEnd() {
|
|
1636
|
-
_this3.$emit('drag-end');
|
|
1637
|
-
}
|
|
1722
|
+
"loader": this.loader,
|
|
1723
|
+
"calculateMarkers": this.calculateMarkers
|
|
1638
1724
|
}
|
|
1639
1725
|
}, {
|
|
1640
1726
|
scopedSlots: this.$scopedSlots,
|