@appbaseio/reactivesearch-vue 1.16.0-alpha.5 → 1.16.0-alpha.52
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 +15109 -13024
- 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-10e5cf51.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-7302fe1a.js} +40 -21
- package/dist/cjs/{Container-f84e72fc.js → Container-8a08d663.js} +3 -11
- package/dist/cjs/DataSearch-7fd1b95d.js +2181 -0
- package/dist/cjs/DataSearch.js +18 -2151
- package/dist/cjs/{DropDown-c66be1a8.js → DropDown-16a2a728.js} +80 -95
- package/dist/cjs/DynamicRangeSlider.js +107 -43
- package/dist/cjs/Flex-699639d2.js +52 -0
- package/dist/cjs/FormControlList-73497794.js +47 -0
- package/dist/cjs/Input-64087a69.js +79 -0
- package/dist/cjs/ListItem-933c27e4.js +46 -0
- package/dist/cjs/MultiDropdownList.js +102 -68
- package/dist/cjs/MultiList.js +80 -50
- package/dist/cjs/MultiRange.js +21 -16
- package/dist/cjs/{Pagination-91df3b77.js → Pagination-e0654529.js} +4 -3
- package/dist/cjs/RangeInput.js +29 -45
- package/dist/cjs/RangeSlider.js +32 -30
- package/dist/cjs/ReactiveBase.js +87 -56
- package/dist/cjs/ReactiveComponent.js +75 -62
- package/dist/cjs/ReactiveGoogleMap.js +326 -235
- package/dist/cjs/ReactiveList.js +189 -241
- package/dist/cjs/ResultCard.js +8 -6
- package/dist/cjs/ResultList.js +8 -6
- package/dist/cjs/SelectedFilters.js +27 -12
- package/dist/cjs/SingleDropdownList.js +88 -60
- package/dist/cjs/SingleList.js +53 -35
- package/dist/cjs/SingleRange.js +18 -13
- 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-d44a0a21.js} +87 -13
- package/dist/cjs/index.js +30 -25
- package/dist/cjs/initReactivesearch.js +177 -103
- package/dist/cjs/install-856cc730.js +1247 -0
- package/dist/cjs/install.js +41 -44
- 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-8b211174.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-bbb717bc.js} +40 -21
- package/dist/es/Container-4383c6f0.js +10 -0
- package/dist/es/DataSearch-a5aaa29e.js +2168 -0
- package/dist/es/DataSearch.js +17 -2150
- package/dist/es/{DropDown-5dbd69c2.js → DropDown-7639f223.js} +79 -94
- package/dist/es/DynamicRangeSlider.js +107 -43
- package/dist/es/Flex-aac91505.js +47 -0
- package/dist/es/FormControlList-fe389a2e.js +40 -0
- package/dist/es/Input-d1bb4868.js +71 -0
- package/dist/es/ListItem-bdb6d53d.js +39 -0
- package/dist/es/MultiDropdownList.js +102 -68
- package/dist/es/MultiList.js +80 -50
- package/dist/es/MultiRange.js +21 -16
- package/dist/es/{Pagination-800af44f.js → Pagination-3c50d4ba.js} +4 -3
- package/dist/es/RangeInput.js +29 -45
- package/dist/es/RangeSlider.js +32 -30
- package/dist/es/ReactiveBase.js +87 -56
- package/dist/es/ReactiveComponent.js +75 -62
- package/dist/es/ReactiveGoogleMap.js +326 -235
- package/dist/es/ReactiveList.js +189 -241
- package/dist/es/ResultCard.js +8 -6
- package/dist/es/ResultList.js +8 -6
- package/dist/es/SelectedFilters.js +27 -12
- package/dist/es/SingleDropdownList.js +88 -60
- package/dist/es/SingleList.js +53 -35
- package/dist/es/SingleRange.js +18 -13
- 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-5daa8276.js} +84 -14
- package/dist/es/index.js +26 -22
- package/dist/es/initReactivesearch.js +178 -104
- package/dist/es/install-d1a27419.js +1240 -0
- package/dist/es/install.js +39 -46
- 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 +6 -4
- 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
|
@@ -6,28 +6,28 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
|
|
|
6
6
|
|
|
7
7
|
var configureStore = require('@appbaseio/reactivecore');
|
|
8
8
|
var configureStore__default = _interopDefault(configureStore);
|
|
9
|
-
var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-
|
|
9
|
+
var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-4abdbfff.js');
|
|
10
10
|
var VueTypes = _interopDefault(require('vue-types'));
|
|
11
11
|
var constants = require('@appbaseio/reactivecore/lib/utils/constants');
|
|
12
12
|
require('emotion');
|
|
13
13
|
var styled = require('@appbaseio/vue-emotion');
|
|
14
14
|
var styled__default = _interopDefault(styled);
|
|
15
15
|
require('polished');
|
|
16
|
-
require('./Button-
|
|
17
|
-
var vueTypes = require('./vueTypes-
|
|
18
|
-
var Pagination = require('./Pagination-
|
|
16
|
+
require('./Button-10e5cf51.js');
|
|
17
|
+
var vueTypes = require('./vueTypes-6de9d2a9.js');
|
|
18
|
+
var Pagination = require('./Pagination-e0654529.js');
|
|
19
19
|
require('@appbaseio/reactivecore/lib/utils/transform');
|
|
20
20
|
require('redux');
|
|
21
|
-
var index = require('./index-
|
|
22
|
-
var ComponentWrapper = require('./ComponentWrapper-
|
|
21
|
+
var index = require('./index-d44a0a21.js');
|
|
22
|
+
var ComponentWrapper = require('./ComponentWrapper-7302fe1a.js');
|
|
23
23
|
var _mergeJSXProps = _interopDefault(require('@vue/babel-helper-vue-jsx-merge-props'));
|
|
24
|
-
var FormControlList = require('./FormControlList-
|
|
24
|
+
var FormControlList = require('./FormControlList-73497794.js');
|
|
25
25
|
var GmapMapFull = require('gmap-vue');
|
|
26
26
|
var Map = _interopDefault(require('gmap-vue/dist/components-implementation/map'));
|
|
27
27
|
var geohash = _interopDefault(require('ngeohash'));
|
|
28
28
|
var GmapCluster = _interopDefault(require('gmap-vue/dist/components/cluster'));
|
|
29
|
-
var Marker = _interopDefault(require('gmap-vue/dist/components/marker'));
|
|
30
29
|
var InfoWindow = _interopDefault(require('gmap-vue/dist/components-implementation/info-window'));
|
|
30
|
+
var Marker = _interopDefault(require('gmap-vue/dist/components/marker'));
|
|
31
31
|
var MapElementMixin = _interopDefault(require('gmap-vue/dist/mixins/map-element'));
|
|
32
32
|
|
|
33
33
|
var setStreaming = configureStore.Actions.setStreaming,
|
|
@@ -76,7 +76,7 @@ function withDistinctLat(loc, count) {
|
|
|
76
76
|
|
|
77
77
|
var suffix = 1 / Math.pow(10, noiseFactor) * count;
|
|
78
78
|
|
|
79
|
-
var location = _rollupPluginBabelHelpers._extends(
|
|
79
|
+
var location = _rollupPluginBabelHelpers._extends({}, loc, {
|
|
80
80
|
lat: parseFloat((loc.lat + suffix).toFixed(length))
|
|
81
81
|
});
|
|
82
82
|
|
|
@@ -128,14 +128,13 @@ var ReactiveMap = {
|
|
|
128
128
|
react: vueTypes.types.react,
|
|
129
129
|
size: vueTypes.types.number,
|
|
130
130
|
sortBy: vueTypes.types.sortBy,
|
|
131
|
-
URLParams:
|
|
132
|
-
autoCenter:
|
|
131
|
+
URLParams: VueTypes.bool,
|
|
132
|
+
autoCenter: VueTypes.bool,
|
|
133
133
|
getMapRef: VueTypes.func.isRequired,
|
|
134
134
|
center: vueTypes.types.location,
|
|
135
135
|
defaultCenter: vueTypes.types.location,
|
|
136
136
|
defaultPin: vueTypes.types.string,
|
|
137
137
|
defaultZoom: VueTypes.number.def(13),
|
|
138
|
-
markerProps: vueTypes.types.props,
|
|
139
138
|
defaultQuery: vueTypes.types.func,
|
|
140
139
|
innerClass: vueTypes.types.style,
|
|
141
140
|
loader: vueTypes.types.title,
|
|
@@ -144,19 +143,19 @@ var ReactiveMap = {
|
|
|
144
143
|
renderError: vueTypes.types.title,
|
|
145
144
|
pages: VueTypes.number.def(5),
|
|
146
145
|
currentPage: VueTypes.number.def(0),
|
|
147
|
-
pagination:
|
|
148
|
-
showMarkers:
|
|
149
|
-
defaultSearchAsMove:
|
|
150
|
-
showSearchAsMove:
|
|
146
|
+
pagination: VueTypes.bool,
|
|
147
|
+
showMarkers: VueTypes.bool,
|
|
148
|
+
defaultSearchAsMove: VueTypes.bool,
|
|
149
|
+
showSearchAsMove: VueTypes.bool,
|
|
151
150
|
defaultRadius: vueTypes.types.number,
|
|
152
151
|
unit: vueTypes.types.string,
|
|
153
|
-
autoClosePopover:
|
|
152
|
+
autoClosePopover: VueTypes.bool,
|
|
154
153
|
renderMap: VueTypes.func.isRequired,
|
|
155
154
|
renderPopover: VueTypes.func,
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
onIdle: vueTypes.types.func
|
|
155
|
+
calculateMarkers: VueTypes.func,
|
|
156
|
+
searchAsMoveLabel: VueTypes.string.def('Search as I move the map')
|
|
159
157
|
},
|
|
158
|
+
preserveCenter: false,
|
|
160
159
|
data: function data() {
|
|
161
160
|
var props = this.$props;
|
|
162
161
|
var currentPageState = 0;
|
|
@@ -170,8 +169,8 @@ var ReactiveMap = {
|
|
|
170
169
|
zoom: props.defaultZoom,
|
|
171
170
|
searchAsMove: props.defaultSearchAsMove,
|
|
172
171
|
currentPageState: currentPageState,
|
|
173
|
-
|
|
174
|
-
|
|
172
|
+
mapBoxBounds: null,
|
|
173
|
+
markersData: null
|
|
175
174
|
};
|
|
176
175
|
return this.__state;
|
|
177
176
|
},
|
|
@@ -183,7 +182,7 @@ var ReactiveMap = {
|
|
|
183
182
|
var _this$getAllData = this.getAllData(),
|
|
184
183
|
resultsToRender = _this$getAllData.resultsToRender;
|
|
185
184
|
|
|
186
|
-
return _rollupPluginBabelHelpers._extends(
|
|
185
|
+
return _rollupPluginBabelHelpers._extends({}, getResultStats(this), {
|
|
187
186
|
currentPage: this.currentPageState,
|
|
188
187
|
displayedResults: resultsToRender.length
|
|
189
188
|
});
|
|
@@ -218,16 +217,19 @@ var ReactiveMap = {
|
|
|
218
217
|
var queryOptions = getOptionsFromQuery(this.$defaultQuery);
|
|
219
218
|
|
|
220
219
|
if (queryOptions) {
|
|
221
|
-
options = _rollupPluginBabelHelpers._extends(
|
|
220
|
+
options = _rollupPluginBabelHelpers._extends({}, options, getOptionsFromQuery(this.$defaultQuery));
|
|
222
221
|
} // Update calculated default query in store
|
|
223
222
|
|
|
224
223
|
|
|
225
|
-
this.setQueryOptions(this.$props.componentId, options,
|
|
224
|
+
this.setQueryOptions(this.$props.componentId, options, false);
|
|
226
225
|
var persistMapQuery = true;
|
|
227
226
|
var forceExecute = true; // Update default query to include the geo bounding box query
|
|
228
227
|
|
|
229
228
|
this.setDefaultQueryForRSAPI();
|
|
230
|
-
|
|
229
|
+
var meta = {
|
|
230
|
+
mapBoxBounds: this.mapBoxBounds
|
|
231
|
+
};
|
|
232
|
+
this.setMapData(this.componentId, query, persistMapQuery, forceExecute, meta);
|
|
231
233
|
this.currentPageState = 0;
|
|
232
234
|
this.from = 0;
|
|
233
235
|
}
|
|
@@ -258,7 +260,45 @@ var ReactiveMap = {
|
|
|
258
260
|
}
|
|
259
261
|
},
|
|
260
262
|
rawData: function rawData(newVal, oldVal) {
|
|
263
|
+
var _this = this;
|
|
264
|
+
|
|
261
265
|
if (!isEqual(newVal, oldVal)) {
|
|
266
|
+
var promotedResults = this.promotedResults,
|
|
267
|
+
hits = this.hits;
|
|
268
|
+
var results = parseHits(hits) || [];
|
|
269
|
+
var parsedPromotedResults = parseHits(promotedResults) || [];
|
|
270
|
+
var filteredResults = results;
|
|
271
|
+
|
|
272
|
+
if (parsedPromotedResults.length) {
|
|
273
|
+
var ids = parsedPromotedResults.map(function (item) {
|
|
274
|
+
return item._id;
|
|
275
|
+
}).filter(Boolean);
|
|
276
|
+
|
|
277
|
+
if (ids) {
|
|
278
|
+
filteredResults = filteredResults.filter(function (item) {
|
|
279
|
+
return !ids.includes(item._id);
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
filteredResults = [].concat(parsedPromotedResults, filteredResults);
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
filteredResults = filteredResults.filter(function (item) {
|
|
287
|
+
return !!item[_this.dataField];
|
|
288
|
+
}).map(function (item) {
|
|
289
|
+
var _extends2;
|
|
290
|
+
|
|
291
|
+
return _rollupPluginBabelHelpers._extends({}, item, (_extends2 = {}, _extends2[_this.dataField] = getLocationObject(item[_this.dataField]), _extends2));
|
|
292
|
+
});
|
|
293
|
+
this.filteredResults = this.addNoise(filteredResults);
|
|
294
|
+
|
|
295
|
+
if (this.calculateMarkers) {
|
|
296
|
+
this.markersData = this.calculateMarkers({
|
|
297
|
+
data: this.filteredResults,
|
|
298
|
+
rawData: this.rawData
|
|
299
|
+
}) || [];
|
|
300
|
+
}
|
|
301
|
+
|
|
262
302
|
this.$emit('data', this.getData());
|
|
263
303
|
}
|
|
264
304
|
},
|
|
@@ -296,18 +336,18 @@ var ReactiveMap = {
|
|
|
296
336
|
return this.parseLocation(MAP_CENTER);
|
|
297
337
|
},
|
|
298
338
|
addNoise: function addNoise(hits) {
|
|
299
|
-
var
|
|
339
|
+
var _this2 = this;
|
|
300
340
|
|
|
301
341
|
var hitMap = {};
|
|
302
342
|
var updatedHits = [];
|
|
303
343
|
hits.forEach(function (item) {
|
|
304
344
|
var updatedItem = _rollupPluginBabelHelpers._extends({}, item);
|
|
305
345
|
|
|
306
|
-
var location =
|
|
346
|
+
var location = _this2.parseLocation(item[_this2.dataField]);
|
|
307
347
|
|
|
308
348
|
var key = JSON.stringify(location);
|
|
309
349
|
var count = hitMap[key] || 0;
|
|
310
|
-
updatedItem[
|
|
350
|
+
updatedItem[_this2.dataField] = count ? withDistinctLat(location, count) : location;
|
|
311
351
|
updatedHits = [].concat(updatedHits, [updatedItem]);
|
|
312
352
|
hitMap[key] = count + 1;
|
|
313
353
|
});
|
|
@@ -321,10 +361,10 @@ var ReactiveMap = {
|
|
|
321
361
|
return null;
|
|
322
362
|
},
|
|
323
363
|
getHitsCenter: function getHitsCenter(hits) {
|
|
324
|
-
var
|
|
364
|
+
var _this3 = this;
|
|
325
365
|
|
|
326
366
|
var data = hits.map(function (hit) {
|
|
327
|
-
return hit[
|
|
367
|
+
return hit[_this3.dataField];
|
|
328
368
|
});
|
|
329
369
|
|
|
330
370
|
if (data.length) {
|
|
@@ -365,7 +405,7 @@ var ReactiveMap = {
|
|
|
365
405
|
return false;
|
|
366
406
|
},
|
|
367
407
|
getCenter: function getCenter(hits) {
|
|
368
|
-
var
|
|
408
|
+
var _this4 = this;
|
|
369
409
|
|
|
370
410
|
if (this.center) {
|
|
371
411
|
return this.parseLocation(this.center);
|
|
@@ -373,10 +413,10 @@ var ReactiveMap = {
|
|
|
373
413
|
|
|
374
414
|
var mapRef = this.getMapRef();
|
|
375
415
|
|
|
376
|
-
if (mapRef && typeof mapRef.getCenter === 'function' && this.preserveCenter) {
|
|
416
|
+
if (mapRef && typeof mapRef.getCenter === 'function' && this.$options.preserveCenter) {
|
|
377
417
|
var currentCenter = mapRef.getCenter();
|
|
378
418
|
setTimeout(function () {
|
|
379
|
-
|
|
419
|
+
_this4.$options.preserveCenter = false;
|
|
380
420
|
}, 100);
|
|
381
421
|
return this.parseLocation({
|
|
382
422
|
lat: currentCenter.lat(),
|
|
@@ -396,27 +436,31 @@ var ReactiveMap = {
|
|
|
396
436
|
},
|
|
397
437
|
handleZoomChange: function handleZoomChange(zoom) {
|
|
398
438
|
if (zoom) {
|
|
439
|
+
var prevZoom = this.zoom;
|
|
440
|
+
|
|
399
441
|
if (this.searchAsMove) {
|
|
400
442
|
this.zoom = zoom;
|
|
401
|
-
this.preserveCenter = true;
|
|
443
|
+
this.$options.preserveCenter = true;
|
|
402
444
|
this.setGeoQuery(true);
|
|
403
445
|
} else {
|
|
404
446
|
this.zoom = zoom;
|
|
405
447
|
}
|
|
406
448
|
|
|
407
|
-
if (
|
|
449
|
+
if (prevZoom !== zoom) {
|
|
450
|
+
this.$emit('zoom-changed', zoom);
|
|
451
|
+
}
|
|
408
452
|
}
|
|
409
453
|
},
|
|
410
454
|
handleOnDragEnd: function handleOnDragEnd() {
|
|
411
455
|
if (this.searchAsMove) {
|
|
412
|
-
this.preserveCenter = true;
|
|
456
|
+
this.$options.preserveCenter = true;
|
|
413
457
|
this.setGeoQuery(true);
|
|
414
458
|
}
|
|
415
459
|
|
|
416
|
-
|
|
460
|
+
this.$emit('drag-end');
|
|
417
461
|
},
|
|
418
462
|
handlePreserveCenter: function handlePreserveCenter(preserveCenter) {
|
|
419
|
-
this.preserveCenter = preserveCenter;
|
|
463
|
+
this.$options.preserveCenter = preserveCenter;
|
|
420
464
|
},
|
|
421
465
|
handleOnIdle: function handleOnIdle() {
|
|
422
466
|
// only make the geo_bounding query if we have hits data
|
|
@@ -427,7 +471,7 @@ var ReactiveMap = {
|
|
|
427
471
|
this.setGeoQuery(executeUpdate);
|
|
428
472
|
}
|
|
429
473
|
|
|
430
|
-
|
|
474
|
+
this.$emit('idle');
|
|
431
475
|
},
|
|
432
476
|
setGeoQuery: function setGeoQuery(executeUpdate) {
|
|
433
477
|
if (executeUpdate === void 0) {
|
|
@@ -456,7 +500,6 @@ var ReactiveMap = {
|
|
|
456
500
|
defaultPin = this.defaultPin,
|
|
457
501
|
renderPopover = this.renderPopover,
|
|
458
502
|
autoClosePopover = this.autoClosePopover,
|
|
459
|
-
markerProps = this.markerProps,
|
|
460
503
|
renderItem = this.renderItem;
|
|
461
504
|
return {
|
|
462
505
|
resultsToRender: data,
|
|
@@ -469,17 +512,14 @@ var ReactiveMap = {
|
|
|
469
512
|
renderPopover: renderPopover,
|
|
470
513
|
autoClosePopover: autoClosePopover,
|
|
471
514
|
renderSearchAsMove: this.renderSearchAsMove,
|
|
472
|
-
markerProps: markerProps,
|
|
473
515
|
handlePreserveCenter: this.handlePreserveCenter,
|
|
474
|
-
preserveCenter: this.preserveCenter,
|
|
516
|
+
preserveCenter: this.$options.preserveCenter,
|
|
475
517
|
handleOnDragEnd: this.handleOnDragEnd,
|
|
476
518
|
handleOnIdle: this.handleOnIdle,
|
|
477
519
|
handleZoomChange: this.handleZoomChange
|
|
478
520
|
};
|
|
479
521
|
},
|
|
480
522
|
getAllData: function getAllData() {
|
|
481
|
-
var _this4 = this;
|
|
482
|
-
|
|
483
523
|
var size = this.size,
|
|
484
524
|
promotedResults = this.promotedResults,
|
|
485
525
|
customData = this.customData,
|
|
@@ -487,31 +527,13 @@ var ReactiveMap = {
|
|
|
487
527
|
hits = this.hits;
|
|
488
528
|
var results = parseHits(hits) || [];
|
|
489
529
|
var parsedPromotedResults = parseHits(promotedResults) || [];
|
|
490
|
-
var filteredResults = results;
|
|
491
530
|
var base = currentPage * size;
|
|
531
|
+
var resultsToRender = this.filteredResults || [];
|
|
492
532
|
|
|
493
|
-
if (
|
|
494
|
-
|
|
495
|
-
return item._id;
|
|
496
|
-
}).filter(Boolean);
|
|
497
|
-
|
|
498
|
-
if (ids) {
|
|
499
|
-
filteredResults = filteredResults.filter(function (item) {
|
|
500
|
-
return !ids.includes(item._id);
|
|
501
|
-
});
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
filteredResults = [].concat(parsedPromotedResults, filteredResults);
|
|
533
|
+
if (this.markersData) {
|
|
534
|
+
resultsToRender = this.markersData;
|
|
505
535
|
}
|
|
506
536
|
|
|
507
|
-
filteredResults = filteredResults.filter(function (item) {
|
|
508
|
-
return !!item[_this4.dataField];
|
|
509
|
-
}).map(function (item) {
|
|
510
|
-
var _extends2;
|
|
511
|
-
|
|
512
|
-
return _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, item), {}, (_extends2 = {}, _extends2[_this4.dataField] = getLocationObject(item[_this4.dataField]), _extends2));
|
|
513
|
-
});
|
|
514
|
-
var resultsToRender = this.addNoise(filteredResults);
|
|
515
537
|
return {
|
|
516
538
|
results: results,
|
|
517
539
|
resultsToRender: resultsToRender,
|
|
@@ -562,7 +584,7 @@ var ReactiveMap = {
|
|
|
562
584
|
options.from = this.$data.from;
|
|
563
585
|
this.from = value;
|
|
564
586
|
this.currentPageState = page;
|
|
565
|
-
this.loadMoreAction(this.componentId, _rollupPluginBabelHelpers._extends(
|
|
587
|
+
this.loadMoreAction(this.componentId, _rollupPluginBabelHelpers._extends({}, options, {
|
|
566
588
|
from: value
|
|
567
589
|
}), false);
|
|
568
590
|
|
|
@@ -574,29 +596,6 @@ var ReactiveMap = {
|
|
|
574
596
|
setDefaultQueryForRSAPI: function setDefaultQueryForRSAPI() {
|
|
575
597
|
if (this.defaultQuery && typeof this.defaultQuery === 'function') {
|
|
576
598
|
var defaultQuery = this.defaultQuery();
|
|
577
|
-
|
|
578
|
-
if (this.mapBoxBounds) {
|
|
579
|
-
var _geo_bounding_box;
|
|
580
|
-
|
|
581
|
-
var geoQuery = {
|
|
582
|
-
geo_bounding_box: (_geo_bounding_box = {}, _geo_bounding_box[this.dataField] = this.mapBoxBounds, _geo_bounding_box)
|
|
583
|
-
};
|
|
584
|
-
|
|
585
|
-
var _defaultQuery = defaultQuery,
|
|
586
|
-
query = _defaultQuery.query,
|
|
587
|
-
options = _rollupPluginBabelHelpers._objectWithoutPropertiesLoose(_defaultQuery, ["query"]);
|
|
588
|
-
|
|
589
|
-
if (query) {
|
|
590
|
-
// adds defaultQuery's query to geo-query
|
|
591
|
-
// to generate a map query
|
|
592
|
-
defaultQuery = _rollupPluginBabelHelpers._extends({
|
|
593
|
-
query: {
|
|
594
|
-
must: [geoQuery, query]
|
|
595
|
-
}
|
|
596
|
-
}, options);
|
|
597
|
-
}
|
|
598
|
-
}
|
|
599
|
-
|
|
600
599
|
this.setDefaultQuery(this.componentId, defaultQuery);
|
|
601
600
|
}
|
|
602
601
|
},
|
|
@@ -620,7 +619,7 @@ var ReactiveMap = {
|
|
|
620
619
|
var west;
|
|
621
620
|
|
|
622
621
|
if (mapBounds) {
|
|
623
|
-
var
|
|
622
|
+
var _geo_bounding_box;
|
|
624
623
|
|
|
625
624
|
north = mapBounds.getNorthEast().lat();
|
|
626
625
|
south = mapBounds.getSouthWest().lat();
|
|
@@ -632,7 +631,7 @@ var ReactiveMap = {
|
|
|
632
631
|
};
|
|
633
632
|
this.mapBoxBounds = boundingBoxCoordinates;
|
|
634
633
|
var geoQuery = {
|
|
635
|
-
geo_bounding_box: (
|
|
634
|
+
geo_bounding_box: (_geo_bounding_box = {}, _geo_bounding_box[this.dataField] = boundingBoxCoordinates, _geo_bounding_box)
|
|
636
635
|
};
|
|
637
636
|
|
|
638
637
|
if (this.$defaultQuery) {
|
|
@@ -675,7 +674,7 @@ var ReactiveMap = {
|
|
|
675
674
|
var value = this.from + this.size;
|
|
676
675
|
var options = getQueryOptions(this.$props);
|
|
677
676
|
this.from = value;
|
|
678
|
-
this.loadMoreAction(this.componentId, _rollupPluginBabelHelpers._extends(
|
|
677
|
+
this.loadMoreAction(this.componentId, _rollupPluginBabelHelpers._extends({}, options, {
|
|
679
678
|
from: value
|
|
680
679
|
}), true);
|
|
681
680
|
}
|
|
@@ -703,13 +702,14 @@ var ReactiveMap = {
|
|
|
703
702
|
base = _this$getAllData3.base;
|
|
704
703
|
|
|
705
704
|
return results.map(function (result, index) {
|
|
706
|
-
return _rollupPluginBabelHelpers._extends(
|
|
705
|
+
return _rollupPluginBabelHelpers._extends({}, result, {
|
|
707
706
|
_click_id: base + index
|
|
708
707
|
});
|
|
709
708
|
});
|
|
710
709
|
},
|
|
711
710
|
toggleSearchAsMove: function toggleSearchAsMove() {
|
|
712
711
|
this.searchAsMove = !this.searchAsMove;
|
|
712
|
+
this.$emit('search-as-move', this.searchAsMove);
|
|
713
713
|
},
|
|
714
714
|
renderErrorComponent: function renderErrorComponent() {
|
|
715
715
|
var renderError = this.$scopedSlots.renderError || this.$props.renderError;
|
|
@@ -755,7 +755,7 @@ var ReactiveMap = {
|
|
|
755
755
|
"className": getClassName(this.innerClass, 'label') || null,
|
|
756
756
|
"for": this.$props.componentId + "-searchasmove"
|
|
757
757
|
}
|
|
758
|
-
}, [
|
|
758
|
+
}, [this.searchAsMoveLabel])]);
|
|
759
759
|
}
|
|
760
760
|
|
|
761
761
|
return null;
|
|
@@ -809,7 +809,7 @@ var ReactiveMap = {
|
|
|
809
809
|
|
|
810
810
|
if (this.$props.defaultQuery) {
|
|
811
811
|
this.$defaultQuery = this.$props.defaultQuery();
|
|
812
|
-
options = _rollupPluginBabelHelpers._extends(
|
|
812
|
+
options = _rollupPluginBabelHelpers._extends({}, options, getOptionsFromQuery(this.$defaultQuery)); // Override sort query with defaultQuery's sort if defined
|
|
813
813
|
|
|
814
814
|
if (this.$defaultQuery.sort) {
|
|
815
815
|
options.sort = this.$defaultQuery.sort;
|
|
@@ -823,7 +823,10 @@ var ReactiveMap = {
|
|
|
823
823
|
var forceExecute = false; // Update default query for RS API
|
|
824
824
|
|
|
825
825
|
this.setDefaultQueryForRSAPI();
|
|
826
|
-
|
|
826
|
+
var meta = {
|
|
827
|
+
mapBoxBounds: this.mapBoxBounds
|
|
828
|
+
};
|
|
829
|
+
this.setMapData(this.componentId, this.$defaultQuery.query, persistMapQuery, forceExecute, meta);
|
|
827
830
|
} else {
|
|
828
831
|
// only apply geo-distance when defaultQuery prop is not set
|
|
829
832
|
var query = this.getGeoDistanceQuery();
|
|
@@ -843,11 +846,11 @@ var ReactiveMap = {
|
|
|
843
846
|
|
|
844
847
|
var center = this.center || this.defaultCenter;
|
|
845
848
|
var coordinatesObject = this.getArrPosition(center);
|
|
846
|
-
var
|
|
849
|
+
var _meta = {
|
|
847
850
|
distance: this.defaultRadius,
|
|
848
851
|
coordinates: coordinatesObject.lat + ", " + coordinatesObject.lon
|
|
849
852
|
};
|
|
850
|
-
this.setMapData(this.componentId, query, _persistMapQuery, _forceExecute,
|
|
853
|
+
this.setMapData(this.componentId, query, _persistMapQuery, _forceExecute, _meta);
|
|
851
854
|
}
|
|
852
855
|
}
|
|
853
856
|
|
|
@@ -857,7 +860,7 @@ var ReactiveMap = {
|
|
|
857
860
|
var h = arguments[0];
|
|
858
861
|
var loader = this.$scopedSlots.loader || this.$props.loader;
|
|
859
862
|
return h("div", {
|
|
860
|
-
"style": _rollupPluginBabelHelpers._extends(
|
|
863
|
+
"style": _rollupPluginBabelHelpers._extends({}, style, this.$props.style),
|
|
861
864
|
"class": this.$props.className
|
|
862
865
|
}, [this.renderErrorComponent(), this.isLoading && loader, this.hasCustomRender ? this.getComponent() : null, this.renderMap(this.getMapParams()), this.pagination ? this.renderPagination() : null]);
|
|
863
866
|
}
|
|
@@ -901,9 +904,46 @@ ReactiveMap.install = function (Vue) {
|
|
|
901
904
|
|
|
902
905
|
ReactiveMap.componentType = constants.componentTypes.reactiveMap;
|
|
903
906
|
|
|
907
|
+
var InfoWindowWrapper = {
|
|
908
|
+
name: 'InfoWindowWrapper',
|
|
909
|
+
props: {
|
|
910
|
+
id: VueTypes.string,
|
|
911
|
+
renderPopover: VueTypes.func,
|
|
912
|
+
infoWindowProps: VueTypes.object,
|
|
913
|
+
events: VueTypes.object
|
|
914
|
+
},
|
|
915
|
+
data: function data() {
|
|
916
|
+
return {
|
|
917
|
+
infoWindowRef: null
|
|
918
|
+
};
|
|
919
|
+
},
|
|
920
|
+
mounted: function mounted() {
|
|
921
|
+
this.infoWindowRef = this.$refs[this.id + "-Info-Window"];
|
|
922
|
+
},
|
|
923
|
+
methods: {
|
|
924
|
+
handleClose: function handleClose() {
|
|
925
|
+
this.infoWindowRef.$infoWindowObject.close();
|
|
926
|
+
}
|
|
927
|
+
},
|
|
928
|
+
render: function render() {
|
|
929
|
+
var h = arguments[0];
|
|
930
|
+
var renderPopover = this.renderPopover,
|
|
931
|
+
events = this.events;
|
|
932
|
+
return h(InfoWindow, {
|
|
933
|
+
"ref": this.id + "-Info-Window",
|
|
934
|
+
"props": _rollupPluginBabelHelpers._extends({}, this.infoWindowProps),
|
|
935
|
+
"on": _rollupPluginBabelHelpers._extends({}, events)
|
|
936
|
+
}, [h("div", [renderPopover(this.handleClose)])]);
|
|
937
|
+
}
|
|
938
|
+
};
|
|
939
|
+
|
|
904
940
|
var MarkerWithLabel = {
|
|
905
941
|
name: 'MarkerWithLabel',
|
|
906
942
|
props: {
|
|
943
|
+
metaData: {
|
|
944
|
+
type: Object,
|
|
945
|
+
"default": undefined
|
|
946
|
+
},
|
|
907
947
|
marker: {
|
|
908
948
|
type: Object,
|
|
909
949
|
"default": undefined
|
|
@@ -1003,6 +1043,7 @@ var MarkerWithLabel = {
|
|
|
1003
1043
|
var _this3;
|
|
1004
1044
|
|
|
1005
1045
|
_this3 = _window$google$maps$O.call(this) || this;
|
|
1046
|
+
_this3.metaData = self.metaData;
|
|
1006
1047
|
|
|
1007
1048
|
_this3.setMap(map2);
|
|
1008
1049
|
|
|
@@ -1168,47 +1209,17 @@ var MarkerWithLabel = {
|
|
|
1168
1209
|
},
|
|
1169
1210
|
"on": {
|
|
1170
1211
|
"mouseover": this.handleMouseOver,
|
|
1171
|
-
"focus": this.handleFocus,
|
|
1172
1212
|
"mouseout": this.handleMouseOut,
|
|
1173
|
-
"blur": this.handleBlur,
|
|
1174
1213
|
"click": this.handleClick
|
|
1175
1214
|
}
|
|
1176
1215
|
}, [this.renderMarker()]);
|
|
1177
1216
|
}
|
|
1178
1217
|
};
|
|
1179
1218
|
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
return data;
|
|
1185
|
-
};
|
|
1186
|
-
|
|
1187
|
-
return data;
|
|
1188
|
-
}
|
|
1189
|
-
|
|
1190
|
-
function _templateObject2() {
|
|
1191
|
-
var data = _rollupPluginBabelHelpers._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"]);
|
|
1192
|
-
|
|
1193
|
-
_templateObject2 = function _templateObject2() {
|
|
1194
|
-
return data;
|
|
1195
|
-
};
|
|
1196
|
-
|
|
1197
|
-
return data;
|
|
1198
|
-
}
|
|
1199
|
-
|
|
1200
|
-
function _templateObject() {
|
|
1201
|
-
var data = _rollupPluginBabelHelpers._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"]);
|
|
1202
|
-
|
|
1203
|
-
_templateObject = function _templateObject() {
|
|
1204
|
-
return data;
|
|
1205
|
-
};
|
|
1206
|
-
|
|
1207
|
-
return data;
|
|
1208
|
-
}
|
|
1209
|
-
var MapPin = styled__default('div')(_templateObject());
|
|
1210
|
-
var MapPinArrow = styled__default('div')(_templateObject2());
|
|
1211
|
-
var mapPinWrapper = styled.css(_templateObject3());
|
|
1219
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
1220
|
+
var MapPin = styled__default('div')(_templateObject || (_templateObject = _rollupPluginBabelHelpers._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"])));
|
|
1221
|
+
var MapPinArrow = styled__default('div')(_templateObject2 || (_templateObject2 = _rollupPluginBabelHelpers._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"])));
|
|
1222
|
+
var mapPinWrapper = styled.css(_templateObject3 || (_templateObject3 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\t&:hover,\n\t&:focus {\n\t\tz-index: 200;\n\t}\n"])));
|
|
1212
1223
|
|
|
1213
1224
|
var recordResultClick$1 = configureStore.Actions.recordResultClick;
|
|
1214
1225
|
var GoogleMapMarker = {
|
|
@@ -1217,54 +1228,63 @@ var GoogleMapMarker = {
|
|
|
1217
1228
|
index: VueTypes.number,
|
|
1218
1229
|
marker: VueTypes.object.isRequired,
|
|
1219
1230
|
getPosition: VueTypes.func.isRequired,
|
|
1220
|
-
markerOnTop: VueTypes.string,
|
|
1221
1231
|
defaultPin: VueTypes.string,
|
|
1222
1232
|
renderItem: VueTypes.func,
|
|
1223
|
-
setMarkerOnTop: VueTypes.func.isRequired,
|
|
1224
1233
|
setOpenMarkers: VueTypes.func.isRequired,
|
|
1225
1234
|
handlePreserveCenter: VueTypes.func.isRequired,
|
|
1226
1235
|
autoClosePopover: VueTypes.bool,
|
|
1227
1236
|
openMarkers: VueTypes.object,
|
|
1228
|
-
renderPopover: VueTypes.func
|
|
1237
|
+
renderPopover: VueTypes.func,
|
|
1238
|
+
highlightMarkerOnHover: VueTypes.bool
|
|
1239
|
+
},
|
|
1240
|
+
data: function data() {
|
|
1241
|
+
return {
|
|
1242
|
+
zIndex: 0,
|
|
1243
|
+
markerIcon: null
|
|
1244
|
+
};
|
|
1229
1245
|
},
|
|
1230
1246
|
methods: {
|
|
1231
1247
|
increaseMarkerZIndex: function increaseMarkerZIndex() {
|
|
1232
|
-
var
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1248
|
+
var handlePreserveCenter = this.$props.handlePreserveCenter;
|
|
1249
|
+
|
|
1250
|
+
if (this.highlightMarkerOnHover) {
|
|
1251
|
+
this.zIndex += 1;
|
|
1252
|
+
}
|
|
1253
|
+
|
|
1237
1254
|
handlePreserveCenter(true);
|
|
1238
1255
|
},
|
|
1239
1256
|
removeMarkerZIndex: function removeMarkerZIndex() {
|
|
1240
|
-
var
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1257
|
+
var handlePreserveCenter = this.$props.handlePreserveCenter;
|
|
1258
|
+
|
|
1259
|
+
if (this.highlightMarkerOnHover) {
|
|
1260
|
+
this.zIndex -= 1;
|
|
1261
|
+
}
|
|
1262
|
+
|
|
1244
1263
|
handlePreserveCenter(true);
|
|
1245
1264
|
},
|
|
1246
1265
|
openMarker: function openMarker() {
|
|
1247
1266
|
var _ref, _extends2;
|
|
1248
1267
|
|
|
1249
|
-
var _this$$
|
|
1250
|
-
handleOpenMarkers = _this$$
|
|
1251
|
-
openMarkers = _this$$
|
|
1252
|
-
marker = _this$$
|
|
1253
|
-
autoClosePopover = _this$$
|
|
1254
|
-
handlePreserveCenter = _this$$
|
|
1268
|
+
var _this$$props = this.$props,
|
|
1269
|
+
handleOpenMarkers = _this$$props.setOpenMarkers,
|
|
1270
|
+
openMarkers = _this$$props.openMarkers,
|
|
1271
|
+
marker = _this$$props.marker,
|
|
1272
|
+
autoClosePopover = _this$$props.autoClosePopover,
|
|
1273
|
+
handlePreserveCenter = _this$$props.handlePreserveCenter;
|
|
1255
1274
|
var id = marker._id;
|
|
1256
|
-
var newOpenMarkers = autoClosePopover ? (_ref = {}, _ref[id] = true, _ref) : _rollupPluginBabelHelpers._extends(
|
|
1275
|
+
var newOpenMarkers = autoClosePopover ? (_ref = {}, _ref[id] = true, _ref) : _rollupPluginBabelHelpers._extends({}, openMarkers, (_extends2 = {}, _extends2[id] = true, _extends2));
|
|
1257
1276
|
handleOpenMarkers(newOpenMarkers);
|
|
1258
1277
|
handlePreserveCenter(true);
|
|
1259
1278
|
this.triggerAnalytics();
|
|
1279
|
+
this.$emit('open-marker-popover', marker);
|
|
1260
1280
|
},
|
|
1261
1281
|
closeMarker: function closeMarker() {
|
|
1262
|
-
var _this$$
|
|
1263
|
-
handleOpenMarkers = _this$$
|
|
1264
|
-
marker = _this$$
|
|
1265
|
-
autoClosePopover = _this$$
|
|
1266
|
-
handlePreserveCenter = _this$$
|
|
1267
|
-
openMarkers = _this$$
|
|
1282
|
+
var _this$$props2 = this.$props,
|
|
1283
|
+
handleOpenMarkers = _this$$props2.setOpenMarkers,
|
|
1284
|
+
marker = _this$$props2.marker,
|
|
1285
|
+
autoClosePopover = _this$$props2.autoClosePopover,
|
|
1286
|
+
handlePreserveCenter = _this$$props2.handlePreserveCenter,
|
|
1287
|
+
openMarkers = _this$$props2.openMarkers;
|
|
1268
1288
|
var id = marker._id;
|
|
1269
1289
|
|
|
1270
1290
|
var del = openMarkers[id],
|
|
@@ -1273,6 +1293,7 @@ var GoogleMapMarker = {
|
|
|
1273
1293
|
var newOpenMarkers = autoClosePopover ? {} : activeMarkers;
|
|
1274
1294
|
handleOpenMarkers(newOpenMarkers);
|
|
1275
1295
|
handlePreserveCenter(true);
|
|
1296
|
+
this.$emit('close-marker-popover', marker);
|
|
1276
1297
|
},
|
|
1277
1298
|
triggerAnalytics: function triggerAnalytics() {
|
|
1278
1299
|
this.recordResultClick(this.index, this.marker._id);
|
|
@@ -1286,10 +1307,10 @@ var GoogleMapMarker = {
|
|
|
1286
1307
|
|
|
1287
1308
|
var h = this.$createElement;
|
|
1288
1309
|
var additionalProps = {};
|
|
1289
|
-
var _this$$
|
|
1290
|
-
getPosition = _this$$
|
|
1291
|
-
|
|
1292
|
-
openMarkers = _this$$
|
|
1310
|
+
var _this$$props3 = this.$props,
|
|
1311
|
+
getPosition = _this$$props3.getPosition,
|
|
1312
|
+
_renderPopover = _this$$props3.renderPopover,
|
|
1313
|
+
openMarkers = _this$$props3.openMarkers;
|
|
1293
1314
|
|
|
1294
1315
|
if (includeExternalSettings) {
|
|
1295
1316
|
// to render pop-over correctly with MarkerWithLabel
|
|
@@ -1302,19 +1323,32 @@ var GoogleMapMarker = {
|
|
|
1302
1323
|
}
|
|
1303
1324
|
|
|
1304
1325
|
if (item._id in openMarkers) {
|
|
1305
|
-
return h(
|
|
1306
|
-
"attrs": {
|
|
1307
|
-
"zIndex": 500,
|
|
1308
|
-
"position": additionalProps.position,
|
|
1309
|
-
"options": additionalProps.defaultOptions
|
|
1310
|
-
},
|
|
1326
|
+
return h(InfoWindowWrapper, {
|
|
1311
1327
|
"key": item._id + "-InfoWindow",
|
|
1312
|
-
"
|
|
1313
|
-
"
|
|
1314
|
-
|
|
1328
|
+
"attrs": {
|
|
1329
|
+
"id": item._id,
|
|
1330
|
+
"renderPopover": function renderPopover(_handleClose) {
|
|
1331
|
+
return _renderPopover({
|
|
1332
|
+
item: item,
|
|
1333
|
+
handleClose: function handleClose() {
|
|
1334
|
+
_handleClose();
|
|
1335
|
+
|
|
1336
|
+
_this.closeMarker();
|
|
1337
|
+
}
|
|
1338
|
+
});
|
|
1339
|
+
},
|
|
1340
|
+
"infoWindowProps": {
|
|
1341
|
+
zIndex: 500,
|
|
1342
|
+
position: additionalProps.position,
|
|
1343
|
+
options: additionalProps.defaultOptions
|
|
1344
|
+
},
|
|
1345
|
+
"events": {
|
|
1346
|
+
closeclick: function closeclick() {
|
|
1347
|
+
return _this.closeMarker();
|
|
1348
|
+
}
|
|
1315
1349
|
}
|
|
1316
1350
|
}
|
|
1317
|
-
}
|
|
1351
|
+
});
|
|
1318
1352
|
}
|
|
1319
1353
|
|
|
1320
1354
|
return null;
|
|
@@ -1324,35 +1358,35 @@ var GoogleMapMarker = {
|
|
|
1324
1358
|
var _this2 = this;
|
|
1325
1359
|
|
|
1326
1360
|
var h = arguments[0];
|
|
1327
|
-
var _this$$
|
|
1328
|
-
getPosition = _this$$
|
|
1329
|
-
renderItem = _this$$
|
|
1330
|
-
defaultPin = _this$$
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
customMarkerProps = _this$$props6.markerProps,
|
|
1335
|
-
marker = _this$$props6.marker,
|
|
1336
|
-
markerOnTop = _this$$props6.markerOnTop;
|
|
1361
|
+
var _this$$props4 = this.$props,
|
|
1362
|
+
getPosition = _this$$props4.getPosition,
|
|
1363
|
+
renderItem = _this$$props4.renderItem,
|
|
1364
|
+
defaultPin = _this$$props4.defaultPin,
|
|
1365
|
+
renderPopover = _this$$props4.renderPopover,
|
|
1366
|
+
customMarkerProps = _this$$props4.markerProps,
|
|
1367
|
+
marker = _this$$props4.marker;
|
|
1337
1368
|
var markerProps = {};
|
|
1338
1369
|
|
|
1339
|
-
if (
|
|
1340
|
-
markerProps.zIndex = window.google.maps.Marker.MAX_ZINDEX +
|
|
1370
|
+
if (this.zIndex) {
|
|
1371
|
+
markerProps.zIndex = window.google.maps.Marker.MAX_ZINDEX + this.zIndex;
|
|
1341
1372
|
}
|
|
1342
1373
|
|
|
1343
1374
|
if (renderItem) {
|
|
1375
|
+
marker.setIcon = function (icon) {
|
|
1376
|
+
_this2.markerIcon = icon;
|
|
1377
|
+
};
|
|
1378
|
+
|
|
1344
1379
|
var data = renderItem(marker);
|
|
1345
1380
|
|
|
1346
1381
|
if ('label' in data) {
|
|
1347
1382
|
return h(MarkerWithLabel, {
|
|
1348
1383
|
"key": marker._id,
|
|
1349
1384
|
"attrs": {
|
|
1385
|
+
"metaData": marker,
|
|
1350
1386
|
"marker": getPosition(marker),
|
|
1351
1387
|
"labelAnchor": new window.google.maps.Point(0, 30),
|
|
1352
1388
|
"handleMouseOver": this.increaseMarkerZIndex,
|
|
1353
|
-
"handleFocus": this.increaseMarkerZIndex,
|
|
1354
1389
|
"handleMouseOut": this.removeMarkerZIndex,
|
|
1355
|
-
"handleBlur": this.removeMarkerZIndex,
|
|
1356
1390
|
"handleClick": this.openMarker,
|
|
1357
1391
|
"zIndex": markerProps.zIndex,
|
|
1358
1392
|
"renderMarker": function renderMarker() {
|
|
@@ -1373,12 +1407,11 @@ var GoogleMapMarker = {
|
|
|
1373
1407
|
return h(MarkerWithLabel, {
|
|
1374
1408
|
"key": marker._id,
|
|
1375
1409
|
"attrs": {
|
|
1410
|
+
"metaData": marker,
|
|
1376
1411
|
"marker": getPosition(marker),
|
|
1377
1412
|
"handleClick": this.openMarker,
|
|
1378
1413
|
"handleMouseOver": this.increaseMarkerZIndex,
|
|
1379
|
-
"handleFocus": this.increaseMarkerZIndex,
|
|
1380
1414
|
"handleMouseOut": this.removeMarkerZIndex,
|
|
1381
|
-
"handleBlur": this.removeMarkerZIndex,
|
|
1382
1415
|
"zIndex": markerProps.zIndex,
|
|
1383
1416
|
"renderMarker": function renderMarker() {
|
|
1384
1417
|
return h("div", {
|
|
@@ -1400,18 +1433,19 @@ var GoogleMapMarker = {
|
|
|
1400
1433
|
return h(Marker, {
|
|
1401
1434
|
"key": marker._id,
|
|
1402
1435
|
"attrs": {
|
|
1403
|
-
"icon": markerProps.icon,
|
|
1404
1436
|
"zIndex": markerProps.zIndex,
|
|
1405
|
-
"position": getPosition(marker)
|
|
1437
|
+
"position": getPosition(marker),
|
|
1438
|
+
"options": {
|
|
1439
|
+
metaData: marker
|
|
1440
|
+
},
|
|
1441
|
+
"icon": this.markerIcon || markerProps.icon
|
|
1406
1442
|
},
|
|
1407
1443
|
"on": {
|
|
1408
1444
|
"click": function click() {
|
|
1409
|
-
return _this2.openMarker(
|
|
1445
|
+
return _this2.openMarker();
|
|
1410
1446
|
},
|
|
1411
1447
|
"mouseover": this.increaseMarkerZIndex,
|
|
1412
|
-
"
|
|
1413
|
-
"mouseout": this.removeMarkerZIndex,
|
|
1414
|
-
"blur": this.removeMarkerZIndex
|
|
1448
|
+
"mouseout": this.removeMarkerZIndex
|
|
1415
1449
|
},
|
|
1416
1450
|
"props": _rollupPluginBabelHelpers._extends({}, customMarkerProps)
|
|
1417
1451
|
}, [renderPopover ? this.renderPopoverClick(marker) : null]);
|
|
@@ -1430,34 +1464,60 @@ var GoogleMapMarkers = {
|
|
|
1430
1464
|
resultsToRender: VueTypes.array,
|
|
1431
1465
|
getPosition: VueTypes.func,
|
|
1432
1466
|
renderItem: VueTypes.func,
|
|
1467
|
+
renderClusterPopover: VueTypes.func,
|
|
1433
1468
|
defaultPin: VueTypes.string,
|
|
1434
1469
|
autoClosePopover: VueTypes.bool,
|
|
1435
1470
|
handlePreserveCenter: VueTypes.func,
|
|
1436
1471
|
renderPopover: VueTypes.func,
|
|
1437
1472
|
markerProps: VueTypes.object,
|
|
1438
|
-
|
|
1473
|
+
clusterProps: VueTypes.object,
|
|
1474
|
+
showMarkerClusters: VueTypes.bool,
|
|
1475
|
+
highlightMarkerOnHover: VueTypes.bool
|
|
1439
1476
|
},
|
|
1440
1477
|
data: function data() {
|
|
1441
1478
|
return {
|
|
1442
|
-
|
|
1443
|
-
|
|
1479
|
+
openMarkers: {},
|
|
1480
|
+
clickedCluster: null,
|
|
1481
|
+
clusterMarkers: []
|
|
1444
1482
|
};
|
|
1445
1483
|
},
|
|
1446
1484
|
methods: {
|
|
1447
|
-
setMarkerOnTop: function setMarkerOnTop(markerOnTop) {
|
|
1448
|
-
this.markerOnTop = markerOnTop;
|
|
1449
|
-
},
|
|
1450
1485
|
setOpenMarkers: function setOpenMarkers(openMarkers) {
|
|
1451
1486
|
this.openMarkers = openMarkers;
|
|
1487
|
+
},
|
|
1488
|
+
getClusterMarkers: function getClusterMarkers() {
|
|
1489
|
+
if (this.clickedCluster && Array.isArray(this.clickedCluster.getMarkers())) {
|
|
1490
|
+
return this.clickedCluster.getMarkers().map(function (marker) {
|
|
1491
|
+
return marker.metaData;
|
|
1492
|
+
});
|
|
1493
|
+
}
|
|
1494
|
+
|
|
1495
|
+
return [];
|
|
1496
|
+
},
|
|
1497
|
+
getAdditionalProps: function getAdditionalProps() {
|
|
1498
|
+
return {
|
|
1499
|
+
position: {
|
|
1500
|
+
lat: this.clickedCluster.getCenter().lat(),
|
|
1501
|
+
lng: this.clickedCluster.getCenter().lng()
|
|
1502
|
+
},
|
|
1503
|
+
defaultOptions: {
|
|
1504
|
+
pixelOffset: new window.google.maps.Size(0, -30)
|
|
1505
|
+
}
|
|
1506
|
+
};
|
|
1507
|
+
},
|
|
1508
|
+
closeMarker: function closeMarker() {
|
|
1509
|
+
this.clickedCluster = null;
|
|
1510
|
+
this.clusterMarkers = [];
|
|
1511
|
+
this.$emit('close-cluster-popover');
|
|
1452
1512
|
}
|
|
1453
1513
|
},
|
|
1454
1514
|
render: function render() {
|
|
1515
|
+
var _this = this;
|
|
1516
|
+
|
|
1455
1517
|
var h = arguments[0];
|
|
1456
1518
|
var resultsToRender = this.$props.resultsToRender;
|
|
1457
|
-
var
|
|
1458
|
-
openMarkers = this.openMarkers;
|
|
1519
|
+
var openMarkers = this.openMarkers;
|
|
1459
1520
|
var markerProps = {
|
|
1460
|
-
markerOnTop: markerOnTop,
|
|
1461
1521
|
openMarkers: openMarkers,
|
|
1462
1522
|
setMarkerOnTop: this.setMarkerOnTop,
|
|
1463
1523
|
setOpenMarkers: this.setOpenMarkers,
|
|
@@ -1468,19 +1528,55 @@ var GoogleMapMarkers = {
|
|
|
1468
1528
|
handlePreserveCenter: this.handlePreserveCenter,
|
|
1469
1529
|
renderPopover: this.renderPopover,
|
|
1470
1530
|
markerProps: this.markerProps,
|
|
1471
|
-
showMarkerClusters: this.showMarkerClusters
|
|
1531
|
+
showMarkerClusters: this.showMarkerClusters,
|
|
1532
|
+
highlightMarkerOnHover: this.highlightMarkerOnHover
|
|
1472
1533
|
};
|
|
1473
1534
|
|
|
1474
1535
|
if (this.showMarkerClusters) {
|
|
1475
|
-
return h(
|
|
1536
|
+
return h("div", [h(GmapCluster, {
|
|
1537
|
+
"props": _rollupPluginBabelHelpers._extends({}, this.clusterProps),
|
|
1538
|
+
"on": {
|
|
1539
|
+
"click": function click(cluster) {
|
|
1540
|
+
_this.clickedCluster = cluster;
|
|
1541
|
+
_this.clusterMarkers = _this.getClusterMarkers();
|
|
1542
|
+
|
|
1543
|
+
_this.$emit('open-cluster-popover', _this.clusterMarkers);
|
|
1544
|
+
}
|
|
1545
|
+
},
|
|
1546
|
+
"ref": "clusterRef"
|
|
1547
|
+
}, [resultsToRender.map(function (marker, index) {
|
|
1476
1548
|
return h(GoogleMapMarker$1, {
|
|
1477
1549
|
"attrs": {
|
|
1478
1550
|
"index": index,
|
|
1479
1551
|
"marker": marker
|
|
1480
1552
|
},
|
|
1481
|
-
"props": _rollupPluginBabelHelpers._extends({}, markerProps)
|
|
1553
|
+
"props": _rollupPluginBabelHelpers._extends({}, markerProps),
|
|
1554
|
+
"on": _rollupPluginBabelHelpers._extends({}, _this.$listeners)
|
|
1482
1555
|
});
|
|
1483
|
-
})])
|
|
1556
|
+
})]), this.clickedCluster && this.renderClusterPopover ? h(InfoWindowWrapper, {
|
|
1557
|
+
"attrs": {
|
|
1558
|
+
"id": "cluster",
|
|
1559
|
+
"infoWindowProps": {
|
|
1560
|
+
zIndex: 500,
|
|
1561
|
+
position: this.getAdditionalProps().position,
|
|
1562
|
+
options: this.getAdditionalProps().defaultOptions
|
|
1563
|
+
},
|
|
1564
|
+
"renderPopover": function renderPopover(_handleClose) {
|
|
1565
|
+
return _this.renderClusterPopover({
|
|
1566
|
+
markers: _this.clusterMarkers,
|
|
1567
|
+
cluster: _this.clickedCluster,
|
|
1568
|
+
handleClose: function handleClose() {
|
|
1569
|
+
_handleClose();
|
|
1570
|
+
|
|
1571
|
+
_this.closeMarker();
|
|
1572
|
+
}
|
|
1573
|
+
});
|
|
1574
|
+
},
|
|
1575
|
+
"events": {
|
|
1576
|
+
closeclick: this.closeMarker
|
|
1577
|
+
}
|
|
1578
|
+
}
|
|
1579
|
+
}) : null]);
|
|
1484
1580
|
}
|
|
1485
1581
|
|
|
1486
1582
|
return h("div", [resultsToRender.map(function (marker, index) {
|
|
@@ -1489,7 +1585,8 @@ var GoogleMapMarkers = {
|
|
|
1489
1585
|
"index": index,
|
|
1490
1586
|
"marker": marker
|
|
1491
1587
|
},
|
|
1492
|
-
"props": _rollupPluginBabelHelpers._extends({}, markerProps)
|
|
1588
|
+
"props": _rollupPluginBabelHelpers._extends({}, markerProps),
|
|
1589
|
+
"on": _rollupPluginBabelHelpers._extends({}, _this.$listeners)
|
|
1493
1590
|
});
|
|
1494
1591
|
})]);
|
|
1495
1592
|
}
|
|
@@ -1501,19 +1598,22 @@ var ReactiveGoogleMap = {
|
|
|
1501
1598
|
className: vueTypes.types.string,
|
|
1502
1599
|
componentId: vueTypes.types.stringRequired,
|
|
1503
1600
|
dataField: vueTypes.types.stringRequired,
|
|
1601
|
+
defaultQuery: VueTypes.func,
|
|
1504
1602
|
loader: vueTypes.types.title,
|
|
1505
1603
|
defaultZoom: VueTypes.number.def(13),
|
|
1506
1604
|
react: vueTypes.types.react,
|
|
1507
1605
|
size: vueTypes.types.number,
|
|
1508
1606
|
sortBy: vueTypes.types.sortBy,
|
|
1509
|
-
URLParams:
|
|
1607
|
+
URLParams: VueTypes.bool,
|
|
1510
1608
|
mapProps: VueTypes.object,
|
|
1511
1609
|
showMarkers: VueTypes.bool.def(true),
|
|
1512
1610
|
showMarkerClusters: VueTypes.bool.def(false),
|
|
1513
1611
|
searchAsMove: VueTypes.bool.def(false),
|
|
1514
|
-
|
|
1612
|
+
searchAsMoveLabel: VueTypes.string,
|
|
1613
|
+
markerProps: VueTypes.object,
|
|
1614
|
+
clusterProps: VueTypes.object,
|
|
1515
1615
|
renderItem: VueTypes.func,
|
|
1516
|
-
showSearchAsMove:
|
|
1616
|
+
showSearchAsMove: VueTypes.bool.def(true),
|
|
1517
1617
|
autoClosePopover: VueTypes.bool,
|
|
1518
1618
|
pagination: VueTypes.bool,
|
|
1519
1619
|
defaultPin: VueTypes.string,
|
|
@@ -1522,7 +1622,9 @@ var ReactiveGoogleMap = {
|
|
|
1522
1622
|
center: vueTypes.types.location,
|
|
1523
1623
|
defaultRadius: vueTypes.types.number,
|
|
1524
1624
|
unit: vueTypes.types.string,
|
|
1525
|
-
pages: VueTypes.number.def(5)
|
|
1625
|
+
pages: VueTypes.number.def(5),
|
|
1626
|
+
calculateMarkers: VueTypes.func,
|
|
1627
|
+
highlightMarkerOnHover: VueTypes.bool.def(true)
|
|
1526
1628
|
},
|
|
1527
1629
|
methods: {
|
|
1528
1630
|
renderMap: function renderMap(_ref) {
|
|
@@ -1537,9 +1639,7 @@ var ReactiveGoogleMap = {
|
|
|
1537
1639
|
renderSearchAsMove = _ref.renderSearchAsMove,
|
|
1538
1640
|
handlePreserveCenter = _ref.handlePreserveCenter,
|
|
1539
1641
|
getPosition = _ref.getPosition,
|
|
1540
|
-
markerProps = _ref.markerProps,
|
|
1541
1642
|
autoClosePopover = _ref.autoClosePopover,
|
|
1542
|
-
renderPopover = _ref.renderPopover,
|
|
1543
1643
|
defaultPin = _ref.defaultPin;
|
|
1544
1644
|
var h = this.$createElement;
|
|
1545
1645
|
var style = {
|
|
@@ -1572,8 +1672,10 @@ var ReactiveGoogleMap = {
|
|
|
1572
1672
|
"attrs": {
|
|
1573
1673
|
"resultsToRender": resultsToRender,
|
|
1574
1674
|
"getPosition": getPosition,
|
|
1575
|
-
"markerProps": markerProps,
|
|
1675
|
+
"markerProps": this.markerProps,
|
|
1676
|
+
"clusterProps": this.clusterProps,
|
|
1576
1677
|
"handlePreserveCenter": handlePreserveCenter,
|
|
1678
|
+
"highlightMarkerOnHover": this.highlightMarkerOnHover,
|
|
1577
1679
|
"renderItem": this.$scopedSlots.renderItem ? function () {
|
|
1578
1680
|
return {
|
|
1579
1681
|
custom: _this.$scopedSlots.renderItem
|
|
@@ -1581,9 +1683,11 @@ var ReactiveGoogleMap = {
|
|
|
1581
1683
|
} : this.renderItem,
|
|
1582
1684
|
"defaultPin": defaultPin,
|
|
1583
1685
|
"autoClosePopover": autoClosePopover,
|
|
1584
|
-
"renderPopover": renderPopover,
|
|
1686
|
+
"renderPopover": this.$scopedSlots.renderPopover,
|
|
1687
|
+
"renderClusterPopover": this.$scopedSlots.renderClusterPopover,
|
|
1585
1688
|
"showMarkerClusters": this.showMarkerClusters
|
|
1586
|
-
}
|
|
1689
|
+
},
|
|
1690
|
+
"on": _rollupPluginBabelHelpers._extends({}, this.$listeners)
|
|
1587
1691
|
}) : null]), renderSearchAsMove()]);
|
|
1588
1692
|
},
|
|
1589
1693
|
getMapRef: function getMapRef() {
|
|
@@ -1600,8 +1704,6 @@ var ReactiveGoogleMap = {
|
|
|
1600
1704
|
}
|
|
1601
1705
|
},
|
|
1602
1706
|
render: function render() {
|
|
1603
|
-
var _this3 = this;
|
|
1604
|
-
|
|
1605
1707
|
var h = arguments[0];
|
|
1606
1708
|
return h(RMConnected, _mergeJSXProps([{
|
|
1607
1709
|
"attrs": {
|
|
@@ -1618,31 +1720,20 @@ var ReactiveGoogleMap = {
|
|
|
1618
1720
|
"uRLParams": this.URLParams,
|
|
1619
1721
|
"defaultSearchAsMove": this.searchAsMove,
|
|
1620
1722
|
"showSearchAsMove": this.showSearchAsMove,
|
|
1723
|
+
"searchAsMoveLabel": this.searchAsMoveLabel,
|
|
1621
1724
|
"showMarkers": this.showMarkers,
|
|
1622
1725
|
"markerProps": this.markerProps,
|
|
1623
1726
|
"autoClosePopover": this.autoClosePopover,
|
|
1624
1727
|
"defaultPin": this.defaultPin,
|
|
1625
|
-
"
|
|
1626
|
-
return _this3.$scopedSlots.renderPopover(item);
|
|
1627
|
-
} : null,
|
|
1728
|
+
"defaultQuery": this.defaultQuery,
|
|
1628
1729
|
"autoCenter": this.autoCenter,
|
|
1629
1730
|
"defaultCenter": this.defaultCenter,
|
|
1630
1731
|
"defaultRadius": this.defaultRadius,
|
|
1631
1732
|
"unit": this.unit,
|
|
1632
1733
|
"pages": this.pages,
|
|
1633
1734
|
"center": this.center,
|
|
1634
|
-
"loader": this.loader
|
|
1635
|
-
|
|
1636
|
-
"on": {
|
|
1637
|
-
"zoomChanged": function zoomChanged(zoom) {
|
|
1638
|
-
_this3.$emit('zoom-changed', zoom);
|
|
1639
|
-
},
|
|
1640
|
-
"idle": function idle() {
|
|
1641
|
-
_this3.$emit('idle');
|
|
1642
|
-
},
|
|
1643
|
-
"dragEnd": function dragEnd() {
|
|
1644
|
-
_this3.$emit('drag-end');
|
|
1645
|
-
}
|
|
1735
|
+
"loader": this.loader,
|
|
1736
|
+
"calculateMarkers": this.calculateMarkers
|
|
1646
1737
|
}
|
|
1647
1738
|
}, {
|
|
1648
1739
|
scopedSlots: this.$scopedSlots,
|