@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
|
@@ -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-d2f1aeda.js');
|
|
17
|
+
var vueTypes = require('./vueTypes-6de9d2a9.js');
|
|
18
|
+
var Pagination = require('./Pagination-1b2320a7.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-2a8358cd.js');
|
|
22
|
+
var ComponentWrapper = require('./ComponentWrapper-ab813390.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,62 @@ 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
|
+
};
|
|
1229
1244
|
},
|
|
1230
1245
|
methods: {
|
|
1231
1246
|
increaseMarkerZIndex: function increaseMarkerZIndex() {
|
|
1232
|
-
var
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1247
|
+
var handlePreserveCenter = this.$props.handlePreserveCenter;
|
|
1248
|
+
|
|
1249
|
+
if (this.highlightMarkerOnHover) {
|
|
1250
|
+
this.zIndex += 1;
|
|
1251
|
+
}
|
|
1252
|
+
|
|
1237
1253
|
handlePreserveCenter(true);
|
|
1238
1254
|
},
|
|
1239
1255
|
removeMarkerZIndex: function removeMarkerZIndex() {
|
|
1240
|
-
var
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1256
|
+
var handlePreserveCenter = this.$props.handlePreserveCenter;
|
|
1257
|
+
|
|
1258
|
+
if (this.highlightMarkerOnHover) {
|
|
1259
|
+
this.zIndex -= 1;
|
|
1260
|
+
}
|
|
1261
|
+
|
|
1244
1262
|
handlePreserveCenter(true);
|
|
1245
1263
|
},
|
|
1246
1264
|
openMarker: function openMarker() {
|
|
1247
1265
|
var _ref, _extends2;
|
|
1248
1266
|
|
|
1249
|
-
var _this$$
|
|
1250
|
-
handleOpenMarkers = _this$$
|
|
1251
|
-
openMarkers = _this$$
|
|
1252
|
-
marker = _this$$
|
|
1253
|
-
autoClosePopover = _this$$
|
|
1254
|
-
handlePreserveCenter = _this$$
|
|
1267
|
+
var _this$$props = this.$props,
|
|
1268
|
+
handleOpenMarkers = _this$$props.setOpenMarkers,
|
|
1269
|
+
openMarkers = _this$$props.openMarkers,
|
|
1270
|
+
marker = _this$$props.marker,
|
|
1271
|
+
autoClosePopover = _this$$props.autoClosePopover,
|
|
1272
|
+
handlePreserveCenter = _this$$props.handlePreserveCenter;
|
|
1255
1273
|
var id = marker._id;
|
|
1256
|
-
var newOpenMarkers = autoClosePopover ? (_ref = {}, _ref[id] = true, _ref) : _rollupPluginBabelHelpers._extends(
|
|
1274
|
+
var newOpenMarkers = autoClosePopover ? (_ref = {}, _ref[id] = true, _ref) : _rollupPluginBabelHelpers._extends({}, openMarkers, (_extends2 = {}, _extends2[id] = true, _extends2));
|
|
1257
1275
|
handleOpenMarkers(newOpenMarkers);
|
|
1258
1276
|
handlePreserveCenter(true);
|
|
1259
1277
|
this.triggerAnalytics();
|
|
1278
|
+
this.$emit('open-marker-popover', marker);
|
|
1260
1279
|
},
|
|
1261
1280
|
closeMarker: function closeMarker() {
|
|
1262
|
-
var _this$$
|
|
1263
|
-
handleOpenMarkers = _this$$
|
|
1264
|
-
marker = _this$$
|
|
1265
|
-
autoClosePopover = _this$$
|
|
1266
|
-
handlePreserveCenter = _this$$
|
|
1267
|
-
openMarkers = _this$$
|
|
1281
|
+
var _this$$props2 = this.$props,
|
|
1282
|
+
handleOpenMarkers = _this$$props2.setOpenMarkers,
|
|
1283
|
+
marker = _this$$props2.marker,
|
|
1284
|
+
autoClosePopover = _this$$props2.autoClosePopover,
|
|
1285
|
+
handlePreserveCenter = _this$$props2.handlePreserveCenter,
|
|
1286
|
+
openMarkers = _this$$props2.openMarkers;
|
|
1268
1287
|
var id = marker._id;
|
|
1269
1288
|
|
|
1270
1289
|
var del = openMarkers[id],
|
|
@@ -1273,6 +1292,7 @@ var GoogleMapMarker = {
|
|
|
1273
1292
|
var newOpenMarkers = autoClosePopover ? {} : activeMarkers;
|
|
1274
1293
|
handleOpenMarkers(newOpenMarkers);
|
|
1275
1294
|
handlePreserveCenter(true);
|
|
1295
|
+
this.$emit('close-marker-popover', marker);
|
|
1276
1296
|
},
|
|
1277
1297
|
triggerAnalytics: function triggerAnalytics() {
|
|
1278
1298
|
this.recordResultClick(this.index, this.marker._id);
|
|
@@ -1286,10 +1306,10 @@ var GoogleMapMarker = {
|
|
|
1286
1306
|
|
|
1287
1307
|
var h = this.$createElement;
|
|
1288
1308
|
var additionalProps = {};
|
|
1289
|
-
var _this$$
|
|
1290
|
-
getPosition = _this$$
|
|
1291
|
-
|
|
1292
|
-
openMarkers = _this$$
|
|
1309
|
+
var _this$$props3 = this.$props,
|
|
1310
|
+
getPosition = _this$$props3.getPosition,
|
|
1311
|
+
_renderPopover = _this$$props3.renderPopover,
|
|
1312
|
+
openMarkers = _this$$props3.openMarkers;
|
|
1293
1313
|
|
|
1294
1314
|
if (includeExternalSettings) {
|
|
1295
1315
|
// to render pop-over correctly with MarkerWithLabel
|
|
@@ -1302,19 +1322,32 @@ var GoogleMapMarker = {
|
|
|
1302
1322
|
}
|
|
1303
1323
|
|
|
1304
1324
|
if (item._id in openMarkers) {
|
|
1305
|
-
return h(
|
|
1306
|
-
"attrs": {
|
|
1307
|
-
"zIndex": 500,
|
|
1308
|
-
"position": additionalProps.position,
|
|
1309
|
-
"options": additionalProps.defaultOptions
|
|
1310
|
-
},
|
|
1325
|
+
return h(InfoWindowWrapper, {
|
|
1311
1326
|
"key": item._id + "-InfoWindow",
|
|
1312
|
-
"
|
|
1313
|
-
"
|
|
1314
|
-
|
|
1327
|
+
"attrs": {
|
|
1328
|
+
"id": item._id,
|
|
1329
|
+
"renderPopover": function renderPopover(_handleClose) {
|
|
1330
|
+
return _renderPopover({
|
|
1331
|
+
item: item,
|
|
1332
|
+
handleClose: function handleClose() {
|
|
1333
|
+
_handleClose();
|
|
1334
|
+
|
|
1335
|
+
_this.closeMarker();
|
|
1336
|
+
}
|
|
1337
|
+
});
|
|
1338
|
+
},
|
|
1339
|
+
"infoWindowProps": {
|
|
1340
|
+
zIndex: 500,
|
|
1341
|
+
position: additionalProps.position,
|
|
1342
|
+
options: additionalProps.defaultOptions
|
|
1343
|
+
},
|
|
1344
|
+
"events": {
|
|
1345
|
+
closeclick: function closeclick() {
|
|
1346
|
+
return _this.closeMarker();
|
|
1347
|
+
}
|
|
1315
1348
|
}
|
|
1316
1349
|
}
|
|
1317
|
-
}
|
|
1350
|
+
});
|
|
1318
1351
|
}
|
|
1319
1352
|
|
|
1320
1353
|
return null;
|
|
@@ -1324,20 +1357,17 @@ var GoogleMapMarker = {
|
|
|
1324
1357
|
var _this2 = this;
|
|
1325
1358
|
|
|
1326
1359
|
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;
|
|
1360
|
+
var _this$$props4 = this.$props,
|
|
1361
|
+
getPosition = _this$$props4.getPosition,
|
|
1362
|
+
renderItem = _this$$props4.renderItem,
|
|
1363
|
+
defaultPin = _this$$props4.defaultPin,
|
|
1364
|
+
renderPopover = _this$$props4.renderPopover,
|
|
1365
|
+
customMarkerProps = _this$$props4.markerProps,
|
|
1366
|
+
marker = _this$$props4.marker;
|
|
1337
1367
|
var markerProps = {};
|
|
1338
1368
|
|
|
1339
|
-
if (
|
|
1340
|
-
markerProps.zIndex = window.google.maps.Marker.MAX_ZINDEX +
|
|
1369
|
+
if (this.zIndex) {
|
|
1370
|
+
markerProps.zIndex = window.google.maps.Marker.MAX_ZINDEX + this.zIndex;
|
|
1341
1371
|
}
|
|
1342
1372
|
|
|
1343
1373
|
if (renderItem) {
|
|
@@ -1347,12 +1377,11 @@ var GoogleMapMarker = {
|
|
|
1347
1377
|
return h(MarkerWithLabel, {
|
|
1348
1378
|
"key": marker._id,
|
|
1349
1379
|
"attrs": {
|
|
1380
|
+
"metaData": marker,
|
|
1350
1381
|
"marker": getPosition(marker),
|
|
1351
1382
|
"labelAnchor": new window.google.maps.Point(0, 30),
|
|
1352
1383
|
"handleMouseOver": this.increaseMarkerZIndex,
|
|
1353
|
-
"handleFocus": this.increaseMarkerZIndex,
|
|
1354
1384
|
"handleMouseOut": this.removeMarkerZIndex,
|
|
1355
|
-
"handleBlur": this.removeMarkerZIndex,
|
|
1356
1385
|
"handleClick": this.openMarker,
|
|
1357
1386
|
"zIndex": markerProps.zIndex,
|
|
1358
1387
|
"renderMarker": function renderMarker() {
|
|
@@ -1373,12 +1402,11 @@ var GoogleMapMarker = {
|
|
|
1373
1402
|
return h(MarkerWithLabel, {
|
|
1374
1403
|
"key": marker._id,
|
|
1375
1404
|
"attrs": {
|
|
1405
|
+
"metaData": marker,
|
|
1376
1406
|
"marker": getPosition(marker),
|
|
1377
1407
|
"handleClick": this.openMarker,
|
|
1378
1408
|
"handleMouseOver": this.increaseMarkerZIndex,
|
|
1379
|
-
"handleFocus": this.increaseMarkerZIndex,
|
|
1380
1409
|
"handleMouseOut": this.removeMarkerZIndex,
|
|
1381
|
-
"handleBlur": this.removeMarkerZIndex,
|
|
1382
1410
|
"zIndex": markerProps.zIndex,
|
|
1383
1411
|
"renderMarker": function renderMarker() {
|
|
1384
1412
|
return h("div", {
|
|
@@ -1402,16 +1430,17 @@ var GoogleMapMarker = {
|
|
|
1402
1430
|
"attrs": {
|
|
1403
1431
|
"icon": markerProps.icon,
|
|
1404
1432
|
"zIndex": markerProps.zIndex,
|
|
1405
|
-
"position": getPosition(marker)
|
|
1433
|
+
"position": getPosition(marker),
|
|
1434
|
+
"options": {
|
|
1435
|
+
metaData: marker
|
|
1436
|
+
}
|
|
1406
1437
|
},
|
|
1407
1438
|
"on": {
|
|
1408
1439
|
"click": function click() {
|
|
1409
|
-
return _this2.openMarker(
|
|
1440
|
+
return _this2.openMarker();
|
|
1410
1441
|
},
|
|
1411
1442
|
"mouseover": this.increaseMarkerZIndex,
|
|
1412
|
-
"
|
|
1413
|
-
"mouseout": this.removeMarkerZIndex,
|
|
1414
|
-
"blur": this.removeMarkerZIndex
|
|
1443
|
+
"mouseout": this.removeMarkerZIndex
|
|
1415
1444
|
},
|
|
1416
1445
|
"props": _rollupPluginBabelHelpers._extends({}, customMarkerProps)
|
|
1417
1446
|
}, [renderPopover ? this.renderPopoverClick(marker) : null]);
|
|
@@ -1430,34 +1459,60 @@ var GoogleMapMarkers = {
|
|
|
1430
1459
|
resultsToRender: VueTypes.array,
|
|
1431
1460
|
getPosition: VueTypes.func,
|
|
1432
1461
|
renderItem: VueTypes.func,
|
|
1462
|
+
renderClusterPopover: VueTypes.func,
|
|
1433
1463
|
defaultPin: VueTypes.string,
|
|
1434
1464
|
autoClosePopover: VueTypes.bool,
|
|
1435
1465
|
handlePreserveCenter: VueTypes.func,
|
|
1436
1466
|
renderPopover: VueTypes.func,
|
|
1437
1467
|
markerProps: VueTypes.object,
|
|
1438
|
-
|
|
1468
|
+
clusterProps: VueTypes.object,
|
|
1469
|
+
showMarkerClusters: VueTypes.bool,
|
|
1470
|
+
highlightMarkerOnHover: VueTypes.bool
|
|
1439
1471
|
},
|
|
1440
1472
|
data: function data() {
|
|
1441
1473
|
return {
|
|
1442
|
-
|
|
1443
|
-
|
|
1474
|
+
openMarkers: {},
|
|
1475
|
+
clickedCluster: null,
|
|
1476
|
+
clusterMarkers: []
|
|
1444
1477
|
};
|
|
1445
1478
|
},
|
|
1446
1479
|
methods: {
|
|
1447
|
-
setMarkerOnTop: function setMarkerOnTop(markerOnTop) {
|
|
1448
|
-
this.markerOnTop = markerOnTop;
|
|
1449
|
-
},
|
|
1450
1480
|
setOpenMarkers: function setOpenMarkers(openMarkers) {
|
|
1451
1481
|
this.openMarkers = openMarkers;
|
|
1482
|
+
},
|
|
1483
|
+
getClusterMarkers: function getClusterMarkers() {
|
|
1484
|
+
if (this.clickedCluster && Array.isArray(this.clickedCluster.getMarkers())) {
|
|
1485
|
+
return this.clickedCluster.getMarkers().map(function (marker) {
|
|
1486
|
+
return marker.metaData;
|
|
1487
|
+
});
|
|
1488
|
+
}
|
|
1489
|
+
|
|
1490
|
+
return [];
|
|
1491
|
+
},
|
|
1492
|
+
getAdditionalProps: function getAdditionalProps() {
|
|
1493
|
+
return {
|
|
1494
|
+
position: {
|
|
1495
|
+
lat: this.clickedCluster.getCenter().lat(),
|
|
1496
|
+
lng: this.clickedCluster.getCenter().lng()
|
|
1497
|
+
},
|
|
1498
|
+
defaultOptions: {
|
|
1499
|
+
pixelOffset: new window.google.maps.Size(0, -30)
|
|
1500
|
+
}
|
|
1501
|
+
};
|
|
1502
|
+
},
|
|
1503
|
+
closeMarker: function closeMarker() {
|
|
1504
|
+
this.clickedCluster = null;
|
|
1505
|
+
this.clusterMarkers = [];
|
|
1506
|
+
this.$emit('close-cluster-popover');
|
|
1452
1507
|
}
|
|
1453
1508
|
},
|
|
1454
1509
|
render: function render() {
|
|
1510
|
+
var _this = this;
|
|
1511
|
+
|
|
1455
1512
|
var h = arguments[0];
|
|
1456
1513
|
var resultsToRender = this.$props.resultsToRender;
|
|
1457
|
-
var
|
|
1458
|
-
openMarkers = this.openMarkers;
|
|
1514
|
+
var openMarkers = this.openMarkers;
|
|
1459
1515
|
var markerProps = {
|
|
1460
|
-
markerOnTop: markerOnTop,
|
|
1461
1516
|
openMarkers: openMarkers,
|
|
1462
1517
|
setMarkerOnTop: this.setMarkerOnTop,
|
|
1463
1518
|
setOpenMarkers: this.setOpenMarkers,
|
|
@@ -1468,19 +1523,55 @@ var GoogleMapMarkers = {
|
|
|
1468
1523
|
handlePreserveCenter: this.handlePreserveCenter,
|
|
1469
1524
|
renderPopover: this.renderPopover,
|
|
1470
1525
|
markerProps: this.markerProps,
|
|
1471
|
-
showMarkerClusters: this.showMarkerClusters
|
|
1526
|
+
showMarkerClusters: this.showMarkerClusters,
|
|
1527
|
+
highlightMarkerOnHover: this.highlightMarkerOnHover
|
|
1472
1528
|
};
|
|
1473
1529
|
|
|
1474
1530
|
if (this.showMarkerClusters) {
|
|
1475
|
-
return h(
|
|
1531
|
+
return h("div", [h(GmapCluster, {
|
|
1532
|
+
"props": _rollupPluginBabelHelpers._extends({}, this.clusterProps),
|
|
1533
|
+
"on": {
|
|
1534
|
+
"click": function click(cluster) {
|
|
1535
|
+
_this.clickedCluster = cluster;
|
|
1536
|
+
_this.clusterMarkers = _this.getClusterMarkers();
|
|
1537
|
+
|
|
1538
|
+
_this.$emit('open-cluster-popover', _this.clusterMarkers);
|
|
1539
|
+
}
|
|
1540
|
+
},
|
|
1541
|
+
"ref": "clusterRef"
|
|
1542
|
+
}, [resultsToRender.map(function (marker, index) {
|
|
1476
1543
|
return h(GoogleMapMarker$1, {
|
|
1477
1544
|
"attrs": {
|
|
1478
1545
|
"index": index,
|
|
1479
1546
|
"marker": marker
|
|
1480
1547
|
},
|
|
1481
|
-
"props": _rollupPluginBabelHelpers._extends({}, markerProps)
|
|
1548
|
+
"props": _rollupPluginBabelHelpers._extends({}, markerProps),
|
|
1549
|
+
"on": _rollupPluginBabelHelpers._extends({}, _this.$listeners)
|
|
1482
1550
|
});
|
|
1483
|
-
})])
|
|
1551
|
+
})]), this.clickedCluster && this.renderClusterPopover ? h(InfoWindowWrapper, {
|
|
1552
|
+
"attrs": {
|
|
1553
|
+
"id": "cluster",
|
|
1554
|
+
"infoWindowProps": {
|
|
1555
|
+
zIndex: 500,
|
|
1556
|
+
position: this.getAdditionalProps().position,
|
|
1557
|
+
options: this.getAdditionalProps().defaultOptions
|
|
1558
|
+
},
|
|
1559
|
+
"renderPopover": function renderPopover(_handleClose) {
|
|
1560
|
+
return _this.renderClusterPopover({
|
|
1561
|
+
markers: _this.clusterMarkers,
|
|
1562
|
+
cluster: _this.clickedCluster,
|
|
1563
|
+
handleClose: function handleClose() {
|
|
1564
|
+
_handleClose();
|
|
1565
|
+
|
|
1566
|
+
_this.closeMarker();
|
|
1567
|
+
}
|
|
1568
|
+
});
|
|
1569
|
+
},
|
|
1570
|
+
"events": {
|
|
1571
|
+
closeclick: this.closeMarker
|
|
1572
|
+
}
|
|
1573
|
+
}
|
|
1574
|
+
}) : null]);
|
|
1484
1575
|
}
|
|
1485
1576
|
|
|
1486
1577
|
return h("div", [resultsToRender.map(function (marker, index) {
|
|
@@ -1489,7 +1580,8 @@ var GoogleMapMarkers = {
|
|
|
1489
1580
|
"index": index,
|
|
1490
1581
|
"marker": marker
|
|
1491
1582
|
},
|
|
1492
|
-
"props": _rollupPluginBabelHelpers._extends({}, markerProps)
|
|
1583
|
+
"props": _rollupPluginBabelHelpers._extends({}, markerProps),
|
|
1584
|
+
"on": _rollupPluginBabelHelpers._extends({}, _this.$listeners)
|
|
1493
1585
|
});
|
|
1494
1586
|
})]);
|
|
1495
1587
|
}
|
|
@@ -1501,19 +1593,22 @@ var ReactiveGoogleMap = {
|
|
|
1501
1593
|
className: vueTypes.types.string,
|
|
1502
1594
|
componentId: vueTypes.types.stringRequired,
|
|
1503
1595
|
dataField: vueTypes.types.stringRequired,
|
|
1596
|
+
defaultQuery: VueTypes.func,
|
|
1504
1597
|
loader: vueTypes.types.title,
|
|
1505
1598
|
defaultZoom: VueTypes.number.def(13),
|
|
1506
1599
|
react: vueTypes.types.react,
|
|
1507
1600
|
size: vueTypes.types.number,
|
|
1508
1601
|
sortBy: vueTypes.types.sortBy,
|
|
1509
|
-
URLParams:
|
|
1602
|
+
URLParams: VueTypes.bool,
|
|
1510
1603
|
mapProps: VueTypes.object,
|
|
1511
1604
|
showMarkers: VueTypes.bool.def(true),
|
|
1512
1605
|
showMarkerClusters: VueTypes.bool.def(false),
|
|
1513
1606
|
searchAsMove: VueTypes.bool.def(false),
|
|
1514
|
-
|
|
1607
|
+
searchAsMoveLabel: VueTypes.string,
|
|
1608
|
+
markerProps: VueTypes.object,
|
|
1609
|
+
clusterProps: VueTypes.object,
|
|
1515
1610
|
renderItem: VueTypes.func,
|
|
1516
|
-
showSearchAsMove:
|
|
1611
|
+
showSearchAsMove: VueTypes.bool.def(true),
|
|
1517
1612
|
autoClosePopover: VueTypes.bool,
|
|
1518
1613
|
pagination: VueTypes.bool,
|
|
1519
1614
|
defaultPin: VueTypes.string,
|
|
@@ -1522,7 +1617,9 @@ var ReactiveGoogleMap = {
|
|
|
1522
1617
|
center: vueTypes.types.location,
|
|
1523
1618
|
defaultRadius: vueTypes.types.number,
|
|
1524
1619
|
unit: vueTypes.types.string,
|
|
1525
|
-
pages: VueTypes.number.def(5)
|
|
1620
|
+
pages: VueTypes.number.def(5),
|
|
1621
|
+
calculateMarkers: VueTypes.func,
|
|
1622
|
+
highlightMarkerOnHover: VueTypes.bool.def(true)
|
|
1526
1623
|
},
|
|
1527
1624
|
methods: {
|
|
1528
1625
|
renderMap: function renderMap(_ref) {
|
|
@@ -1537,9 +1634,7 @@ var ReactiveGoogleMap = {
|
|
|
1537
1634
|
renderSearchAsMove = _ref.renderSearchAsMove,
|
|
1538
1635
|
handlePreserveCenter = _ref.handlePreserveCenter,
|
|
1539
1636
|
getPosition = _ref.getPosition,
|
|
1540
|
-
markerProps = _ref.markerProps,
|
|
1541
1637
|
autoClosePopover = _ref.autoClosePopover,
|
|
1542
|
-
renderPopover = _ref.renderPopover,
|
|
1543
1638
|
defaultPin = _ref.defaultPin;
|
|
1544
1639
|
var h = this.$createElement;
|
|
1545
1640
|
var style = {
|
|
@@ -1572,8 +1667,10 @@ var ReactiveGoogleMap = {
|
|
|
1572
1667
|
"attrs": {
|
|
1573
1668
|
"resultsToRender": resultsToRender,
|
|
1574
1669
|
"getPosition": getPosition,
|
|
1575
|
-
"markerProps": markerProps,
|
|
1670
|
+
"markerProps": this.markerProps,
|
|
1671
|
+
"clusterProps": this.clusterProps,
|
|
1576
1672
|
"handlePreserveCenter": handlePreserveCenter,
|
|
1673
|
+
"highlightMarkerOnHover": this.highlightMarkerOnHover,
|
|
1577
1674
|
"renderItem": this.$scopedSlots.renderItem ? function () {
|
|
1578
1675
|
return {
|
|
1579
1676
|
custom: _this.$scopedSlots.renderItem
|
|
@@ -1581,9 +1678,11 @@ var ReactiveGoogleMap = {
|
|
|
1581
1678
|
} : this.renderItem,
|
|
1582
1679
|
"defaultPin": defaultPin,
|
|
1583
1680
|
"autoClosePopover": autoClosePopover,
|
|
1584
|
-
"renderPopover": renderPopover,
|
|
1681
|
+
"renderPopover": this.$scopedSlots.renderPopover,
|
|
1682
|
+
"renderClusterPopover": this.$scopedSlots.renderClusterPopover,
|
|
1585
1683
|
"showMarkerClusters": this.showMarkerClusters
|
|
1586
|
-
}
|
|
1684
|
+
},
|
|
1685
|
+
"on": _rollupPluginBabelHelpers._extends({}, this.$listeners)
|
|
1587
1686
|
}) : null]), renderSearchAsMove()]);
|
|
1588
1687
|
},
|
|
1589
1688
|
getMapRef: function getMapRef() {
|
|
@@ -1600,8 +1699,6 @@ var ReactiveGoogleMap = {
|
|
|
1600
1699
|
}
|
|
1601
1700
|
},
|
|
1602
1701
|
render: function render() {
|
|
1603
|
-
var _this3 = this;
|
|
1604
|
-
|
|
1605
1702
|
var h = arguments[0];
|
|
1606
1703
|
return h(RMConnected, _mergeJSXProps([{
|
|
1607
1704
|
"attrs": {
|
|
@@ -1618,31 +1715,20 @@ var ReactiveGoogleMap = {
|
|
|
1618
1715
|
"uRLParams": this.URLParams,
|
|
1619
1716
|
"defaultSearchAsMove": this.searchAsMove,
|
|
1620
1717
|
"showSearchAsMove": this.showSearchAsMove,
|
|
1718
|
+
"searchAsMoveLabel": this.searchAsMoveLabel,
|
|
1621
1719
|
"showMarkers": this.showMarkers,
|
|
1622
1720
|
"markerProps": this.markerProps,
|
|
1623
1721
|
"autoClosePopover": this.autoClosePopover,
|
|
1624
1722
|
"defaultPin": this.defaultPin,
|
|
1625
|
-
"
|
|
1626
|
-
return _this3.$scopedSlots.renderPopover(item);
|
|
1627
|
-
} : null,
|
|
1723
|
+
"defaultQuery": this.defaultQuery,
|
|
1628
1724
|
"autoCenter": this.autoCenter,
|
|
1629
1725
|
"defaultCenter": this.defaultCenter,
|
|
1630
1726
|
"defaultRadius": this.defaultRadius,
|
|
1631
1727
|
"unit": this.unit,
|
|
1632
1728
|
"pages": this.pages,
|
|
1633
1729
|
"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
|
-
}
|
|
1730
|
+
"loader": this.loader,
|
|
1731
|
+
"calculateMarkers": this.calculateMarkers
|
|
1646
1732
|
}
|
|
1647
1733
|
}, {
|
|
1648
1734
|
scopedSlots: this.$scopedSlots,
|