@appbaseio/reactivesearch-vue 1.16.0-alpha.6 → 1.16.0-alpha.62
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 +16030 -13113
- 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-446f819e.js +68 -0
- package/dist/cjs/{DownShift-966a58cb.js → CancelSvg-9f258f4f.js} +60 -16
- package/dist/cjs/Card-642547a8.js +30 -0
- package/dist/cjs/{ComponentWrapper-603848ed.js → ComponentWrapper-ad3dad02.js} +40 -21
- package/dist/cjs/{Container-6cdd3864.js → Container-daf30918.js} +3 -11
- package/dist/cjs/DataSearch-86914b10.js +2322 -0
- package/dist/cjs/DataSearch.js +18 -2151
- package/dist/cjs/{DropDown-f6224ac8.js → DropDown-5513ea77.js} +80 -95
- package/dist/cjs/DynamicRangeSlider.js +107 -43
- package/dist/cjs/Flex-aa517a13.js +52 -0
- package/dist/cjs/FormControlList-c195a592.js +47 -0
- package/dist/cjs/Input-e6603a7e.js +79 -0
- package/dist/cjs/ListItem-8c9e0d68.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-af399262.js → Pagination-fe5452fc.js} +14 -8
- 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 +262 -191
- 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 +66 -34
- package/dist/cjs/SingleDropdownList.js +88 -60
- package/dist/cjs/SingleList.js +53 -35
- package/dist/cjs/SingleRange.js +19 -14
- package/dist/cjs/StateProvider.js +39 -10
- package/dist/cjs/{Title-65d39104.js → Title-1de7d0f4.js} +3 -11
- package/dist/cjs/ToggleButton.js +36 -16
- package/dist/cjs/{_rollupPluginBabelHelpers-4abdbfff.js → _rollupPluginBabelHelpers-c705cbe6.js} +2 -4
- package/dist/cjs/{index-baca18c4.js → index-6a167fe0.js} +99 -13
- package/dist/cjs/index.js +31 -25
- package/dist/cjs/initReactivesearch.js +178 -104
- package/dist/cjs/install-004c6aa4.js +1408 -0
- package/dist/cjs/install.js +42 -44
- package/dist/cjs/ssr-3027b848.js +39 -0
- package/dist/cjs/{utils-ea846a20.js → utils-d6a52588.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-d8bc15ea.js +59 -0
- package/dist/es/{DownShift-92347b5e.js → CancelSvg-4cfae5fd.js} +56 -17
- package/dist/es/Card-450683f1.js +23 -0
- package/dist/es/{ComponentWrapper-c4c91949.js → ComponentWrapper-424e86fd.js} +40 -21
- package/dist/es/Container-ba826e96.js +10 -0
- package/dist/es/DataSearch-e71a1014.js +2307 -0
- package/dist/es/DataSearch.js +17 -2150
- package/dist/es/{DropDown-3d4291f1.js → DropDown-7d9a15c1.js} +79 -94
- package/dist/es/DynamicRangeSlider.js +107 -43
- package/dist/es/Flex-1f0795c3.js +47 -0
- package/dist/es/FormControlList-c22d64f6.js +40 -0
- package/dist/es/Input-7a2a9fac.js +71 -0
- package/dist/es/ListItem-cad14c5e.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-c2a00175.js → Pagination-3f350098.js} +14 -8
- 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 +262 -191
- 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 +66 -34
- package/dist/es/SingleDropdownList.js +88 -60
- package/dist/es/SingleList.js +53 -35
- package/dist/es/SingleRange.js +19 -14
- package/dist/es/StateProvider.js +39 -10
- package/dist/es/Title-3342664a.js +10 -0
- package/dist/es/ToggleButton.js +36 -16
- package/dist/es/{_rollupPluginBabelHelpers-ecf6c03c.js → _rollupPluginBabelHelpers-76660dab.js} +2 -4
- package/dist/es/{index-185b6266.js → index-7788a843.js} +95 -14
- package/dist/es/index.js +27 -22
- package/dist/es/initReactivesearch.js +179 -105
- package/dist/es/install-b7b604cc.js +1401 -0
- package/dist/es/install.js +40 -46
- package/dist/es/ssr-b2c0b401.js +33 -0
- package/dist/es/{utils-57cc8789.js → utils-9e68acee.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-d48d4365.js +0 -146
- package/dist/cjs/Card-9748fbb2.js +0 -58
- package/dist/cjs/Flex-befd65fc.js +0 -160
- package/dist/cjs/FormControlList-f3857d4b.js +0 -105
- package/dist/cjs/Input-95cb19f8.js +0 -178
- package/dist/cjs/ListItem-84d185cf.js +0 -84
- package/dist/cjs/ssr-3ca8a14f.js +0 -47
- package/dist/es/Button-27cc8574.js +0 -137
- package/dist/es/Card-1f93780d.js +0 -51
- package/dist/es/Container-88c805ef.js +0 -18
- package/dist/es/Flex-16d1103a.js +0 -155
- package/dist/es/FormControlList-96d44e7b.js +0 -98
- package/dist/es/Input-1159c4b5.js +0 -170
- package/dist/es/ListItem-d22510c9.js +0 -77
- package/dist/es/Title-f0217338.js +0 -18
- package/dist/es/ssr-a710392b.js +0 -41
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
import { Actions, helper } from '@appbaseio/reactivecore';
|
|
2
|
-
import { a as _extends,
|
|
2
|
+
import { a as _extends, d as _inheritsLoose, _ as _taggedTemplateLiteralLoose, b as _objectWithoutPropertiesLoose, c as _toPropertyKey } from './_rollupPluginBabelHelpers-76660dab.js';
|
|
3
3
|
import VueTypes from 'vue-types';
|
|
4
4
|
import { componentTypes } from '@appbaseio/reactivecore/lib/utils/constants';
|
|
5
5
|
import 'emotion';
|
|
6
6
|
import styled, { css } from '@appbaseio/vue-emotion';
|
|
7
7
|
import 'polished';
|
|
8
|
-
import './Button-
|
|
9
|
-
import { t as types } from './vueTypes-
|
|
10
|
-
import { P as Pagination } from './Pagination-
|
|
8
|
+
import './Button-d8bc15ea.js';
|
|
9
|
+
import { t as types } from './vueTypes-9326e0be.js';
|
|
10
|
+
import { P as Pagination } from './Pagination-3f350098.js';
|
|
11
11
|
import '@appbaseio/reactivecore/lib/utils/transform';
|
|
12
12
|
import 'redux';
|
|
13
|
-
import { h as hasCustomRenderer, i as isQueryIdentical, g as getComponent, a as isFunction, c as connect } from './index-
|
|
14
|
-
import { C as ComponentWrapper } from './ComponentWrapper-
|
|
13
|
+
import { h as hasCustomRenderer, i as isQueryIdentical, g as getComponent, a as isFunction, c as connect } from './index-7788a843.js';
|
|
14
|
+
import { C as ComponentWrapper } from './ComponentWrapper-424e86fd.js';
|
|
15
15
|
import _mergeJSXProps from '@vue/babel-helper-vue-jsx-merge-props';
|
|
16
|
-
import { C as Checkbox } from './FormControlList-
|
|
16
|
+
import { C as Checkbox } from './FormControlList-c22d64f6.js';
|
|
17
17
|
import * as GmapMapFull from 'gmap-vue';
|
|
18
18
|
import Map from 'gmap-vue/dist/components-implementation/map';
|
|
19
19
|
import geohash from 'ngeohash';
|
|
20
|
-
import
|
|
21
|
-
import Marker from 'gmap-vue/dist/components/marker';
|
|
20
|
+
import Cluster from 'gmap-vue/dist/components/cluster';
|
|
22
21
|
import InfoWindow from 'gmap-vue/dist/components-implementation/info-window';
|
|
22
|
+
import Marker from 'gmap-vue/dist/components/marker';
|
|
23
23
|
import MapElementMixin from 'gmap-vue/dist/mixins/map-element';
|
|
24
24
|
|
|
25
25
|
var setStreaming = Actions.setStreaming,
|
|
@@ -68,7 +68,7 @@ function withDistinctLat(loc, count) {
|
|
|
68
68
|
|
|
69
69
|
var suffix = 1 / Math.pow(10, noiseFactor) * count;
|
|
70
70
|
|
|
71
|
-
var location = _extends(
|
|
71
|
+
var location = _extends({}, loc, {
|
|
72
72
|
lat: parseFloat((loc.lat + suffix).toFixed(length))
|
|
73
73
|
});
|
|
74
74
|
|
|
@@ -120,14 +120,13 @@ var ReactiveMap = {
|
|
|
120
120
|
react: types.react,
|
|
121
121
|
size: types.number,
|
|
122
122
|
sortBy: types.sortBy,
|
|
123
|
-
URLParams:
|
|
124
|
-
autoCenter:
|
|
123
|
+
URLParams: VueTypes.bool,
|
|
124
|
+
autoCenter: VueTypes.bool,
|
|
125
125
|
getMapRef: VueTypes.func.isRequired,
|
|
126
126
|
center: types.location,
|
|
127
127
|
defaultCenter: types.location,
|
|
128
128
|
defaultPin: types.string,
|
|
129
129
|
defaultZoom: VueTypes.number.def(13),
|
|
130
|
-
markerProps: types.props,
|
|
131
130
|
defaultQuery: types.func,
|
|
132
131
|
innerClass: types.style,
|
|
133
132
|
loader: types.title,
|
|
@@ -136,17 +135,19 @@ var ReactiveMap = {
|
|
|
136
135
|
renderError: types.title,
|
|
137
136
|
pages: VueTypes.number.def(5),
|
|
138
137
|
currentPage: VueTypes.number.def(0),
|
|
139
|
-
pagination:
|
|
140
|
-
showMarkers:
|
|
141
|
-
defaultSearchAsMove:
|
|
142
|
-
showSearchAsMove:
|
|
138
|
+
pagination: VueTypes.bool,
|
|
139
|
+
showMarkers: VueTypes.bool,
|
|
140
|
+
defaultSearchAsMove: VueTypes.bool,
|
|
141
|
+
showSearchAsMove: VueTypes.bool,
|
|
143
142
|
defaultRadius: types.number,
|
|
144
143
|
unit: types.string,
|
|
145
|
-
autoClosePopover:
|
|
144
|
+
autoClosePopover: VueTypes.bool,
|
|
146
145
|
renderMap: VueTypes.func.isRequired,
|
|
147
146
|
renderPopover: VueTypes.func,
|
|
148
|
-
calculateMarkers: VueTypes.func
|
|
147
|
+
calculateMarkers: VueTypes.func,
|
|
148
|
+
searchAsMoveLabel: VueTypes.string.def('Search as I move the map')
|
|
149
149
|
},
|
|
150
|
+
preserveCenter: false,
|
|
150
151
|
data: function data() {
|
|
151
152
|
var props = this.$props;
|
|
152
153
|
var currentPageState = 0;
|
|
@@ -160,7 +161,6 @@ var ReactiveMap = {
|
|
|
160
161
|
zoom: props.defaultZoom,
|
|
161
162
|
searchAsMove: props.defaultSearchAsMove,
|
|
162
163
|
currentPageState: currentPageState,
|
|
163
|
-
preserveCenter: false,
|
|
164
164
|
mapBoxBounds: null,
|
|
165
165
|
markersData: null
|
|
166
166
|
};
|
|
@@ -174,7 +174,7 @@ var ReactiveMap = {
|
|
|
174
174
|
var _this$getAllData = this.getAllData(),
|
|
175
175
|
resultsToRender = _this$getAllData.resultsToRender;
|
|
176
176
|
|
|
177
|
-
return _extends(
|
|
177
|
+
return _extends({}, getResultStats(this), {
|
|
178
178
|
currentPage: this.currentPageState,
|
|
179
179
|
displayedResults: resultsToRender.length
|
|
180
180
|
});
|
|
@@ -209,16 +209,19 @@ var ReactiveMap = {
|
|
|
209
209
|
var queryOptions = getOptionsFromQuery(this.$defaultQuery);
|
|
210
210
|
|
|
211
211
|
if (queryOptions) {
|
|
212
|
-
options = _extends(
|
|
212
|
+
options = _extends({}, options, getOptionsFromQuery(this.$defaultQuery));
|
|
213
213
|
} // Update calculated default query in store
|
|
214
214
|
|
|
215
215
|
|
|
216
|
-
this.setQueryOptions(this.$props.componentId, options,
|
|
216
|
+
this.setQueryOptions(this.$props.componentId, options, false);
|
|
217
217
|
var persistMapQuery = true;
|
|
218
218
|
var forceExecute = true; // Update default query to include the geo bounding box query
|
|
219
219
|
|
|
220
220
|
this.setDefaultQueryForRSAPI();
|
|
221
|
-
|
|
221
|
+
var meta = {
|
|
222
|
+
mapBoxBounds: this.mapBoxBounds
|
|
223
|
+
};
|
|
224
|
+
this.setMapData(this.componentId, query, persistMapQuery, forceExecute, meta);
|
|
222
225
|
this.currentPageState = 0;
|
|
223
226
|
this.from = 0;
|
|
224
227
|
}
|
|
@@ -277,7 +280,7 @@ var ReactiveMap = {
|
|
|
277
280
|
}).map(function (item) {
|
|
278
281
|
var _extends2;
|
|
279
282
|
|
|
280
|
-
return _extends(
|
|
283
|
+
return _extends({}, item, (_extends2 = {}, _extends2[_this.dataField] = getLocationObject(item[_this.dataField]), _extends2));
|
|
281
284
|
});
|
|
282
285
|
this.filteredResults = this.addNoise(filteredResults);
|
|
283
286
|
|
|
@@ -402,10 +405,10 @@ var ReactiveMap = {
|
|
|
402
405
|
|
|
403
406
|
var mapRef = this.getMapRef();
|
|
404
407
|
|
|
405
|
-
if (mapRef && typeof mapRef.getCenter === 'function' && this.preserveCenter) {
|
|
408
|
+
if (mapRef && typeof mapRef.getCenter === 'function' && this.$options.preserveCenter) {
|
|
406
409
|
var currentCenter = mapRef.getCenter();
|
|
407
410
|
setTimeout(function () {
|
|
408
|
-
_this4.preserveCenter = false;
|
|
411
|
+
_this4.$options.preserveCenter = false;
|
|
409
412
|
}, 100);
|
|
410
413
|
return this.parseLocation({
|
|
411
414
|
lat: currentCenter.lat(),
|
|
@@ -429,7 +432,7 @@ var ReactiveMap = {
|
|
|
429
432
|
|
|
430
433
|
if (this.searchAsMove) {
|
|
431
434
|
this.zoom = zoom;
|
|
432
|
-
this.preserveCenter = true;
|
|
435
|
+
this.$options.preserveCenter = true;
|
|
433
436
|
this.setGeoQuery(true);
|
|
434
437
|
} else {
|
|
435
438
|
this.zoom = zoom;
|
|
@@ -442,14 +445,14 @@ var ReactiveMap = {
|
|
|
442
445
|
},
|
|
443
446
|
handleOnDragEnd: function handleOnDragEnd() {
|
|
444
447
|
if (this.searchAsMove) {
|
|
445
|
-
this.preserveCenter = true;
|
|
448
|
+
this.$options.preserveCenter = true;
|
|
446
449
|
this.setGeoQuery(true);
|
|
447
450
|
}
|
|
448
451
|
|
|
449
452
|
this.$emit('drag-end');
|
|
450
453
|
},
|
|
451
454
|
handlePreserveCenter: function handlePreserveCenter(preserveCenter) {
|
|
452
|
-
this.preserveCenter = preserveCenter;
|
|
455
|
+
this.$options.preserveCenter = preserveCenter;
|
|
453
456
|
},
|
|
454
457
|
handleOnIdle: function handleOnIdle() {
|
|
455
458
|
// only make the geo_bounding query if we have hits data
|
|
@@ -489,7 +492,6 @@ var ReactiveMap = {
|
|
|
489
492
|
defaultPin = this.defaultPin,
|
|
490
493
|
renderPopover = this.renderPopover,
|
|
491
494
|
autoClosePopover = this.autoClosePopover,
|
|
492
|
-
markerProps = this.markerProps,
|
|
493
495
|
renderItem = this.renderItem;
|
|
494
496
|
return {
|
|
495
497
|
resultsToRender: data,
|
|
@@ -502,9 +504,8 @@ var ReactiveMap = {
|
|
|
502
504
|
renderPopover: renderPopover,
|
|
503
505
|
autoClosePopover: autoClosePopover,
|
|
504
506
|
renderSearchAsMove: this.renderSearchAsMove,
|
|
505
|
-
markerProps: markerProps,
|
|
506
507
|
handlePreserveCenter: this.handlePreserveCenter,
|
|
507
|
-
preserveCenter: this.preserveCenter,
|
|
508
|
+
preserveCenter: this.$options.preserveCenter,
|
|
508
509
|
handleOnDragEnd: this.handleOnDragEnd,
|
|
509
510
|
handleOnIdle: this.handleOnIdle,
|
|
510
511
|
handleZoomChange: this.handleZoomChange
|
|
@@ -575,7 +576,7 @@ var ReactiveMap = {
|
|
|
575
576
|
options.from = this.$data.from;
|
|
576
577
|
this.from = value;
|
|
577
578
|
this.currentPageState = page;
|
|
578
|
-
this.loadMoreAction(this.componentId, _extends(
|
|
579
|
+
this.loadMoreAction(this.componentId, _extends({}, options, {
|
|
579
580
|
from: value
|
|
580
581
|
}), false);
|
|
581
582
|
|
|
@@ -587,29 +588,6 @@ var ReactiveMap = {
|
|
|
587
588
|
setDefaultQueryForRSAPI: function setDefaultQueryForRSAPI() {
|
|
588
589
|
if (this.defaultQuery && typeof this.defaultQuery === 'function') {
|
|
589
590
|
var defaultQuery = this.defaultQuery();
|
|
590
|
-
|
|
591
|
-
if (this.mapBoxBounds) {
|
|
592
|
-
var _geo_bounding_box;
|
|
593
|
-
|
|
594
|
-
var geoQuery = {
|
|
595
|
-
geo_bounding_box: (_geo_bounding_box = {}, _geo_bounding_box[this.dataField] = this.mapBoxBounds, _geo_bounding_box)
|
|
596
|
-
};
|
|
597
|
-
|
|
598
|
-
var _defaultQuery = defaultQuery,
|
|
599
|
-
query = _defaultQuery.query,
|
|
600
|
-
options = _objectWithoutPropertiesLoose(_defaultQuery, ["query"]);
|
|
601
|
-
|
|
602
|
-
if (query) {
|
|
603
|
-
// adds defaultQuery's query to geo-query
|
|
604
|
-
// to generate a map query
|
|
605
|
-
defaultQuery = _extends({
|
|
606
|
-
query: {
|
|
607
|
-
must: [geoQuery, query]
|
|
608
|
-
}
|
|
609
|
-
}, options);
|
|
610
|
-
}
|
|
611
|
-
}
|
|
612
|
-
|
|
613
591
|
this.setDefaultQuery(this.componentId, defaultQuery);
|
|
614
592
|
}
|
|
615
593
|
},
|
|
@@ -633,7 +611,7 @@ var ReactiveMap = {
|
|
|
633
611
|
var west;
|
|
634
612
|
|
|
635
613
|
if (mapBounds) {
|
|
636
|
-
var
|
|
614
|
+
var _geo_bounding_box;
|
|
637
615
|
|
|
638
616
|
north = mapBounds.getNorthEast().lat();
|
|
639
617
|
south = mapBounds.getSouthWest().lat();
|
|
@@ -645,7 +623,7 @@ var ReactiveMap = {
|
|
|
645
623
|
};
|
|
646
624
|
this.mapBoxBounds = boundingBoxCoordinates;
|
|
647
625
|
var geoQuery = {
|
|
648
|
-
geo_bounding_box: (
|
|
626
|
+
geo_bounding_box: (_geo_bounding_box = {}, _geo_bounding_box[this.dataField] = boundingBoxCoordinates, _geo_bounding_box)
|
|
649
627
|
};
|
|
650
628
|
|
|
651
629
|
if (this.$defaultQuery) {
|
|
@@ -688,7 +666,7 @@ var ReactiveMap = {
|
|
|
688
666
|
var value = this.from + this.size;
|
|
689
667
|
var options = getQueryOptions(this.$props);
|
|
690
668
|
this.from = value;
|
|
691
|
-
this.loadMoreAction(this.componentId, _extends(
|
|
669
|
+
this.loadMoreAction(this.componentId, _extends({}, options, {
|
|
692
670
|
from: value
|
|
693
671
|
}), true);
|
|
694
672
|
}
|
|
@@ -716,13 +694,14 @@ var ReactiveMap = {
|
|
|
716
694
|
base = _this$getAllData3.base;
|
|
717
695
|
|
|
718
696
|
return results.map(function (result, index) {
|
|
719
|
-
return _extends(
|
|
697
|
+
return _extends({}, result, {
|
|
720
698
|
_click_id: base + index
|
|
721
699
|
});
|
|
722
700
|
});
|
|
723
701
|
},
|
|
724
702
|
toggleSearchAsMove: function toggleSearchAsMove() {
|
|
725
703
|
this.searchAsMove = !this.searchAsMove;
|
|
704
|
+
this.$emit('search-as-move', this.searchAsMove);
|
|
726
705
|
},
|
|
727
706
|
renderErrorComponent: function renderErrorComponent() {
|
|
728
707
|
var renderError = this.$scopedSlots.renderError || this.$props.renderError;
|
|
@@ -768,7 +747,7 @@ var ReactiveMap = {
|
|
|
768
747
|
"className": getClassName(this.innerClass, 'label') || null,
|
|
769
748
|
"for": this.$props.componentId + "-searchasmove"
|
|
770
749
|
}
|
|
771
|
-
}, [
|
|
750
|
+
}, [this.searchAsMoveLabel])]);
|
|
772
751
|
}
|
|
773
752
|
|
|
774
753
|
return null;
|
|
@@ -822,7 +801,7 @@ var ReactiveMap = {
|
|
|
822
801
|
|
|
823
802
|
if (this.$props.defaultQuery) {
|
|
824
803
|
this.$defaultQuery = this.$props.defaultQuery();
|
|
825
|
-
options = _extends(
|
|
804
|
+
options = _extends({}, options, getOptionsFromQuery(this.$defaultQuery)); // Override sort query with defaultQuery's sort if defined
|
|
826
805
|
|
|
827
806
|
if (this.$defaultQuery.sort) {
|
|
828
807
|
options.sort = this.$defaultQuery.sort;
|
|
@@ -836,7 +815,10 @@ var ReactiveMap = {
|
|
|
836
815
|
var forceExecute = false; // Update default query for RS API
|
|
837
816
|
|
|
838
817
|
this.setDefaultQueryForRSAPI();
|
|
839
|
-
|
|
818
|
+
var meta = {
|
|
819
|
+
mapBoxBounds: this.mapBoxBounds
|
|
820
|
+
};
|
|
821
|
+
this.setMapData(this.componentId, this.$defaultQuery.query, persistMapQuery, forceExecute, meta);
|
|
840
822
|
} else {
|
|
841
823
|
// only apply geo-distance when defaultQuery prop is not set
|
|
842
824
|
var query = this.getGeoDistanceQuery();
|
|
@@ -856,11 +838,11 @@ var ReactiveMap = {
|
|
|
856
838
|
|
|
857
839
|
var center = this.center || this.defaultCenter;
|
|
858
840
|
var coordinatesObject = this.getArrPosition(center);
|
|
859
|
-
var
|
|
841
|
+
var _meta = {
|
|
860
842
|
distance: this.defaultRadius,
|
|
861
843
|
coordinates: coordinatesObject.lat + ", " + coordinatesObject.lon
|
|
862
844
|
};
|
|
863
|
-
this.setMapData(this.componentId, query, _persistMapQuery, _forceExecute,
|
|
845
|
+
this.setMapData(this.componentId, query, _persistMapQuery, _forceExecute, _meta);
|
|
864
846
|
}
|
|
865
847
|
}
|
|
866
848
|
|
|
@@ -870,7 +852,7 @@ var ReactiveMap = {
|
|
|
870
852
|
var h = arguments[0];
|
|
871
853
|
var loader = this.$scopedSlots.loader || this.$props.loader;
|
|
872
854
|
return h("div", {
|
|
873
|
-
"style": _extends(
|
|
855
|
+
"style": _extends({}, style, this.$props.style),
|
|
874
856
|
"class": this.$props.className
|
|
875
857
|
}, [this.renderErrorComponent(), this.isLoading && loader, this.hasCustomRender ? this.getComponent() : null, this.renderMap(this.getMapParams()), this.pagination ? this.renderPagination() : null]);
|
|
876
858
|
}
|
|
@@ -914,9 +896,46 @@ ReactiveMap.install = function (Vue) {
|
|
|
914
896
|
|
|
915
897
|
ReactiveMap.componentType = componentTypes.reactiveMap;
|
|
916
898
|
|
|
899
|
+
var InfoWindowWrapper = {
|
|
900
|
+
name: 'InfoWindowWrapper',
|
|
901
|
+
props: {
|
|
902
|
+
id: VueTypes.string,
|
|
903
|
+
renderPopover: VueTypes.func,
|
|
904
|
+
infoWindowProps: VueTypes.object,
|
|
905
|
+
events: VueTypes.object
|
|
906
|
+
},
|
|
907
|
+
data: function data() {
|
|
908
|
+
return {
|
|
909
|
+
infoWindowRef: null
|
|
910
|
+
};
|
|
911
|
+
},
|
|
912
|
+
mounted: function mounted() {
|
|
913
|
+
this.infoWindowRef = this.$refs[this.id + "-Info-Window"];
|
|
914
|
+
},
|
|
915
|
+
methods: {
|
|
916
|
+
handleClose: function handleClose() {
|
|
917
|
+
this.infoWindowRef.$infoWindowObject.close();
|
|
918
|
+
}
|
|
919
|
+
},
|
|
920
|
+
render: function render() {
|
|
921
|
+
var h = arguments[0];
|
|
922
|
+
var renderPopover = this.renderPopover,
|
|
923
|
+
events = this.events;
|
|
924
|
+
return h(InfoWindow, {
|
|
925
|
+
"ref": this.id + "-Info-Window",
|
|
926
|
+
"props": _extends({}, this.infoWindowProps),
|
|
927
|
+
"on": _extends({}, events)
|
|
928
|
+
}, [h("div", [renderPopover(this.handleClose)])]);
|
|
929
|
+
}
|
|
930
|
+
};
|
|
931
|
+
|
|
917
932
|
var MarkerWithLabel = {
|
|
918
933
|
name: 'MarkerWithLabel',
|
|
919
934
|
props: {
|
|
935
|
+
metaData: {
|
|
936
|
+
type: Object,
|
|
937
|
+
"default": undefined
|
|
938
|
+
},
|
|
920
939
|
marker: {
|
|
921
940
|
type: Object,
|
|
922
941
|
"default": undefined
|
|
@@ -1016,6 +1035,7 @@ var MarkerWithLabel = {
|
|
|
1016
1035
|
var _this3;
|
|
1017
1036
|
|
|
1018
1037
|
_this3 = _window$google$maps$O.call(this) || this;
|
|
1038
|
+
_this3.metaData = self.metaData;
|
|
1019
1039
|
|
|
1020
1040
|
_this3.setMap(map2);
|
|
1021
1041
|
|
|
@@ -1181,47 +1201,17 @@ var MarkerWithLabel = {
|
|
|
1181
1201
|
},
|
|
1182
1202
|
"on": {
|
|
1183
1203
|
"mouseover": this.handleMouseOver,
|
|
1184
|
-
"focus": this.handleFocus,
|
|
1185
1204
|
"mouseout": this.handleMouseOut,
|
|
1186
|
-
"blur": this.handleBlur,
|
|
1187
1205
|
"click": this.handleClick
|
|
1188
1206
|
}
|
|
1189
1207
|
}, [this.renderMarker()]);
|
|
1190
1208
|
}
|
|
1191
1209
|
};
|
|
1192
1210
|
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
return data;
|
|
1198
|
-
};
|
|
1199
|
-
|
|
1200
|
-
return data;
|
|
1201
|
-
}
|
|
1202
|
-
|
|
1203
|
-
function _templateObject2() {
|
|
1204
|
-
var data = _taggedTemplateLiteralLoose(["\n\tborder-color: rgba(0, 0, 0, 0.2);\n\tborder-style: solid;\n\tborder-width: 0 1px 1px 0;\n\tmargin-left: -6px;\n\tbackground-color: #fff;\n\tmargin-top: -6px;\n\twidth: 12px;\n\theight: 12px;\n\t-webkit-transform: rotate(45deg);\n\t-ms-transform: rotate(45deg);\n\ttransform: rotate(45deg);\n"]);
|
|
1205
|
-
|
|
1206
|
-
_templateObject2 = function _templateObject2() {
|
|
1207
|
-
return data;
|
|
1208
|
-
};
|
|
1209
|
-
|
|
1210
|
-
return data;
|
|
1211
|
-
}
|
|
1212
|
-
|
|
1213
|
-
function _templateObject() {
|
|
1214
|
-
var data = _taggedTemplateLiteralLoose(["\n\theight: 24px;\n\twidth: auto;\n\tbackground-color: #fff;\n\tborder-radius: 2px;\n\tcolor: #222;\n\tbox-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.15);\n\tpadding: 3px 6px;\n\tfont-size: 15px;\n"]);
|
|
1215
|
-
|
|
1216
|
-
_templateObject = function _templateObject() {
|
|
1217
|
-
return data;
|
|
1218
|
-
};
|
|
1219
|
-
|
|
1220
|
-
return data;
|
|
1221
|
-
}
|
|
1222
|
-
var MapPin = styled('div')(_templateObject());
|
|
1223
|
-
var MapPinArrow = styled('div')(_templateObject2());
|
|
1224
|
-
var mapPinWrapper = css(_templateObject3());
|
|
1211
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
1212
|
+
var MapPin = styled('div')(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n\theight: 24px;\n\twidth: auto;\n\tbackground-color: #fff;\n\tborder-radius: 2px;\n\tcolor: #222;\n\tbox-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.15);\n\tpadding: 3px 6px;\n\tfont-size: 15px;\n"])));
|
|
1213
|
+
var MapPinArrow = styled('div')(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n\tborder-color: rgba(0, 0, 0, 0.2);\n\tborder-style: solid;\n\tborder-width: 0 1px 1px 0;\n\tmargin-left: -6px;\n\tbackground-color: #fff;\n\tmargin-top: -6px;\n\twidth: 12px;\n\theight: 12px;\n\t-webkit-transform: rotate(45deg);\n\t-ms-transform: rotate(45deg);\n\ttransform: rotate(45deg);\n"])));
|
|
1214
|
+
var mapPinWrapper = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n\t&:hover,\n\t&:focus {\n\t\tz-index: 200;\n\t}\n"])));
|
|
1225
1215
|
|
|
1226
1216
|
var recordResultClick$1 = Actions.recordResultClick;
|
|
1227
1217
|
var GoogleMapMarker = {
|
|
@@ -1230,54 +1220,63 @@ var GoogleMapMarker = {
|
|
|
1230
1220
|
index: VueTypes.number,
|
|
1231
1221
|
marker: VueTypes.object.isRequired,
|
|
1232
1222
|
getPosition: VueTypes.func.isRequired,
|
|
1233
|
-
markerOnTop: VueTypes.string,
|
|
1234
1223
|
defaultPin: VueTypes.string,
|
|
1235
1224
|
renderItem: VueTypes.func,
|
|
1236
|
-
setMarkerOnTop: VueTypes.func.isRequired,
|
|
1237
1225
|
setOpenMarkers: VueTypes.func.isRequired,
|
|
1238
1226
|
handlePreserveCenter: VueTypes.func.isRequired,
|
|
1239
1227
|
autoClosePopover: VueTypes.bool,
|
|
1240
1228
|
openMarkers: VueTypes.object,
|
|
1241
|
-
renderPopover: VueTypes.func
|
|
1229
|
+
renderPopover: VueTypes.func,
|
|
1230
|
+
highlightMarkerOnHover: VueTypes.bool
|
|
1231
|
+
},
|
|
1232
|
+
data: function data() {
|
|
1233
|
+
return {
|
|
1234
|
+
zIndex: 0,
|
|
1235
|
+
markerIcon: null
|
|
1236
|
+
};
|
|
1242
1237
|
},
|
|
1243
1238
|
methods: {
|
|
1244
1239
|
increaseMarkerZIndex: function increaseMarkerZIndex() {
|
|
1245
|
-
var
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1240
|
+
var handlePreserveCenter = this.$props.handlePreserveCenter;
|
|
1241
|
+
|
|
1242
|
+
if (this.highlightMarkerOnHover) {
|
|
1243
|
+
this.zIndex += 1;
|
|
1244
|
+
}
|
|
1245
|
+
|
|
1250
1246
|
handlePreserveCenter(true);
|
|
1251
1247
|
},
|
|
1252
1248
|
removeMarkerZIndex: function removeMarkerZIndex() {
|
|
1253
|
-
var
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1249
|
+
var handlePreserveCenter = this.$props.handlePreserveCenter;
|
|
1250
|
+
|
|
1251
|
+
if (this.highlightMarkerOnHover) {
|
|
1252
|
+
this.zIndex -= 1;
|
|
1253
|
+
}
|
|
1254
|
+
|
|
1257
1255
|
handlePreserveCenter(true);
|
|
1258
1256
|
},
|
|
1259
1257
|
openMarker: function openMarker() {
|
|
1260
1258
|
var _ref, _extends2;
|
|
1261
1259
|
|
|
1262
|
-
var _this$$
|
|
1263
|
-
handleOpenMarkers = _this$$
|
|
1264
|
-
openMarkers = _this$$
|
|
1265
|
-
marker = _this$$
|
|
1266
|
-
autoClosePopover = _this$$
|
|
1267
|
-
handlePreserveCenter = _this$$
|
|
1260
|
+
var _this$$props = this.$props,
|
|
1261
|
+
handleOpenMarkers = _this$$props.setOpenMarkers,
|
|
1262
|
+
openMarkers = _this$$props.openMarkers,
|
|
1263
|
+
marker = _this$$props.marker,
|
|
1264
|
+
autoClosePopover = _this$$props.autoClosePopover,
|
|
1265
|
+
handlePreserveCenter = _this$$props.handlePreserveCenter;
|
|
1268
1266
|
var id = marker._id;
|
|
1269
|
-
var newOpenMarkers = autoClosePopover ? (_ref = {}, _ref[id] = true, _ref) : _extends(
|
|
1267
|
+
var newOpenMarkers = autoClosePopover ? (_ref = {}, _ref[id] = true, _ref) : _extends({}, openMarkers, (_extends2 = {}, _extends2[id] = true, _extends2));
|
|
1270
1268
|
handleOpenMarkers(newOpenMarkers);
|
|
1271
1269
|
handlePreserveCenter(true);
|
|
1272
1270
|
this.triggerAnalytics();
|
|
1271
|
+
this.$emit('open-marker-popover', marker);
|
|
1273
1272
|
},
|
|
1274
1273
|
closeMarker: function closeMarker() {
|
|
1275
|
-
var _this$$
|
|
1276
|
-
handleOpenMarkers = _this$$
|
|
1277
|
-
marker = _this$$
|
|
1278
|
-
autoClosePopover = _this$$
|
|
1279
|
-
handlePreserveCenter = _this$$
|
|
1280
|
-
openMarkers = _this$$
|
|
1274
|
+
var _this$$props2 = this.$props,
|
|
1275
|
+
handleOpenMarkers = _this$$props2.setOpenMarkers,
|
|
1276
|
+
marker = _this$$props2.marker,
|
|
1277
|
+
autoClosePopover = _this$$props2.autoClosePopover,
|
|
1278
|
+
handlePreserveCenter = _this$$props2.handlePreserveCenter,
|
|
1279
|
+
openMarkers = _this$$props2.openMarkers;
|
|
1281
1280
|
var id = marker._id;
|
|
1282
1281
|
|
|
1283
1282
|
var del = openMarkers[id],
|
|
@@ -1286,6 +1285,7 @@ var GoogleMapMarker = {
|
|
|
1286
1285
|
var newOpenMarkers = autoClosePopover ? {} : activeMarkers;
|
|
1287
1286
|
handleOpenMarkers(newOpenMarkers);
|
|
1288
1287
|
handlePreserveCenter(true);
|
|
1288
|
+
this.$emit('close-marker-popover', marker);
|
|
1289
1289
|
},
|
|
1290
1290
|
triggerAnalytics: function triggerAnalytics() {
|
|
1291
1291
|
this.recordResultClick(this.index, this.marker._id);
|
|
@@ -1299,10 +1299,10 @@ var GoogleMapMarker = {
|
|
|
1299
1299
|
|
|
1300
1300
|
var h = this.$createElement;
|
|
1301
1301
|
var additionalProps = {};
|
|
1302
|
-
var _this$$
|
|
1303
|
-
getPosition = _this$$
|
|
1304
|
-
|
|
1305
|
-
openMarkers = _this$$
|
|
1302
|
+
var _this$$props3 = this.$props,
|
|
1303
|
+
getPosition = _this$$props3.getPosition,
|
|
1304
|
+
_renderPopover = _this$$props3.renderPopover,
|
|
1305
|
+
openMarkers = _this$$props3.openMarkers;
|
|
1306
1306
|
|
|
1307
1307
|
if (includeExternalSettings) {
|
|
1308
1308
|
// to render pop-over correctly with MarkerWithLabel
|
|
@@ -1315,19 +1315,32 @@ var GoogleMapMarker = {
|
|
|
1315
1315
|
}
|
|
1316
1316
|
|
|
1317
1317
|
if (item._id in openMarkers) {
|
|
1318
|
-
return h(
|
|
1319
|
-
"attrs": {
|
|
1320
|
-
"zIndex": 500,
|
|
1321
|
-
"position": additionalProps.position,
|
|
1322
|
-
"options": additionalProps.defaultOptions
|
|
1323
|
-
},
|
|
1318
|
+
return h(InfoWindowWrapper, {
|
|
1324
1319
|
"key": item._id + "-InfoWindow",
|
|
1325
|
-
"
|
|
1326
|
-
"
|
|
1327
|
-
|
|
1320
|
+
"attrs": {
|
|
1321
|
+
"id": item._id,
|
|
1322
|
+
"renderPopover": function renderPopover(_handleClose) {
|
|
1323
|
+
return _renderPopover({
|
|
1324
|
+
item: item,
|
|
1325
|
+
handleClose: function handleClose() {
|
|
1326
|
+
_handleClose();
|
|
1327
|
+
|
|
1328
|
+
_this.closeMarker();
|
|
1329
|
+
}
|
|
1330
|
+
});
|
|
1331
|
+
},
|
|
1332
|
+
"infoWindowProps": {
|
|
1333
|
+
zIndex: 500,
|
|
1334
|
+
position: additionalProps.position,
|
|
1335
|
+
options: additionalProps.defaultOptions
|
|
1336
|
+
},
|
|
1337
|
+
"events": {
|
|
1338
|
+
closeclick: function closeclick() {
|
|
1339
|
+
return _this.closeMarker();
|
|
1340
|
+
}
|
|
1328
1341
|
}
|
|
1329
1342
|
}
|
|
1330
|
-
}
|
|
1343
|
+
});
|
|
1331
1344
|
}
|
|
1332
1345
|
|
|
1333
1346
|
return null;
|
|
@@ -1337,35 +1350,35 @@ var GoogleMapMarker = {
|
|
|
1337
1350
|
var _this2 = this;
|
|
1338
1351
|
|
|
1339
1352
|
var h = arguments[0];
|
|
1340
|
-
var _this$$
|
|
1341
|
-
getPosition = _this$$
|
|
1342
|
-
renderItem = _this$$
|
|
1343
|
-
defaultPin = _this$$
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
customMarkerProps = _this$$props6.markerProps,
|
|
1348
|
-
marker = _this$$props6.marker,
|
|
1349
|
-
markerOnTop = _this$$props6.markerOnTop;
|
|
1353
|
+
var _this$$props4 = this.$props,
|
|
1354
|
+
getPosition = _this$$props4.getPosition,
|
|
1355
|
+
renderItem = _this$$props4.renderItem,
|
|
1356
|
+
defaultPin = _this$$props4.defaultPin,
|
|
1357
|
+
renderPopover = _this$$props4.renderPopover,
|
|
1358
|
+
customMarkerProps = _this$$props4.markerProps,
|
|
1359
|
+
marker = _this$$props4.marker;
|
|
1350
1360
|
var markerProps = {};
|
|
1351
1361
|
|
|
1352
|
-
if (
|
|
1353
|
-
markerProps.zIndex = window.google.maps.Marker.MAX_ZINDEX +
|
|
1362
|
+
if (this.zIndex) {
|
|
1363
|
+
markerProps.zIndex = window.google.maps.Marker.MAX_ZINDEX + this.zIndex;
|
|
1354
1364
|
}
|
|
1355
1365
|
|
|
1356
1366
|
if (renderItem) {
|
|
1367
|
+
marker.setIcon = function (icon) {
|
|
1368
|
+
_this2.markerIcon = icon;
|
|
1369
|
+
};
|
|
1370
|
+
|
|
1357
1371
|
var data = renderItem(marker);
|
|
1358
1372
|
|
|
1359
1373
|
if ('label' in data) {
|
|
1360
1374
|
return h(MarkerWithLabel, {
|
|
1361
1375
|
"key": marker._id,
|
|
1362
1376
|
"attrs": {
|
|
1377
|
+
"metaData": marker,
|
|
1363
1378
|
"marker": getPosition(marker),
|
|
1364
1379
|
"labelAnchor": new window.google.maps.Point(0, 30),
|
|
1365
1380
|
"handleMouseOver": this.increaseMarkerZIndex,
|
|
1366
|
-
"handleFocus": this.increaseMarkerZIndex,
|
|
1367
1381
|
"handleMouseOut": this.removeMarkerZIndex,
|
|
1368
|
-
"handleBlur": this.removeMarkerZIndex,
|
|
1369
1382
|
"handleClick": this.openMarker,
|
|
1370
1383
|
"zIndex": markerProps.zIndex,
|
|
1371
1384
|
"renderMarker": function renderMarker() {
|
|
@@ -1386,12 +1399,11 @@ var GoogleMapMarker = {
|
|
|
1386
1399
|
return h(MarkerWithLabel, {
|
|
1387
1400
|
"key": marker._id,
|
|
1388
1401
|
"attrs": {
|
|
1402
|
+
"metaData": marker,
|
|
1389
1403
|
"marker": getPosition(marker),
|
|
1390
1404
|
"handleClick": this.openMarker,
|
|
1391
1405
|
"handleMouseOver": this.increaseMarkerZIndex,
|
|
1392
|
-
"handleFocus": this.increaseMarkerZIndex,
|
|
1393
1406
|
"handleMouseOut": this.removeMarkerZIndex,
|
|
1394
|
-
"handleBlur": this.removeMarkerZIndex,
|
|
1395
1407
|
"zIndex": markerProps.zIndex,
|
|
1396
1408
|
"renderMarker": function renderMarker() {
|
|
1397
1409
|
return h("div", {
|
|
@@ -1413,18 +1425,19 @@ var GoogleMapMarker = {
|
|
|
1413
1425
|
return h(Marker, {
|
|
1414
1426
|
"key": marker._id,
|
|
1415
1427
|
"attrs": {
|
|
1416
|
-
"icon": markerProps.icon,
|
|
1417
1428
|
"zIndex": markerProps.zIndex,
|
|
1418
|
-
"position": getPosition(marker)
|
|
1429
|
+
"position": getPosition(marker),
|
|
1430
|
+
"options": {
|
|
1431
|
+
metaData: marker
|
|
1432
|
+
},
|
|
1433
|
+
"icon": this.markerIcon || markerProps.icon
|
|
1419
1434
|
},
|
|
1420
1435
|
"on": {
|
|
1421
1436
|
"click": function click() {
|
|
1422
|
-
return _this2.openMarker(
|
|
1437
|
+
return _this2.openMarker();
|
|
1423
1438
|
},
|
|
1424
1439
|
"mouseover": this.increaseMarkerZIndex,
|
|
1425
|
-
"
|
|
1426
|
-
"mouseout": this.removeMarkerZIndex,
|
|
1427
|
-
"blur": this.removeMarkerZIndex
|
|
1440
|
+
"mouseout": this.removeMarkerZIndex
|
|
1428
1441
|
},
|
|
1429
1442
|
"props": _extends({}, customMarkerProps)
|
|
1430
1443
|
}, [renderPopover ? this.renderPopoverClick(marker) : null]);
|
|
@@ -1443,34 +1456,51 @@ var GoogleMapMarkers = {
|
|
|
1443
1456
|
resultsToRender: VueTypes.array,
|
|
1444
1457
|
getPosition: VueTypes.func,
|
|
1445
1458
|
renderItem: VueTypes.func,
|
|
1459
|
+
renderClusterPopover: VueTypes.func,
|
|
1446
1460
|
defaultPin: VueTypes.string,
|
|
1447
1461
|
autoClosePopover: VueTypes.bool,
|
|
1448
1462
|
handlePreserveCenter: VueTypes.func,
|
|
1449
1463
|
renderPopover: VueTypes.func,
|
|
1450
1464
|
markerProps: VueTypes.object,
|
|
1451
|
-
|
|
1465
|
+
clusterProps: VueTypes.object,
|
|
1466
|
+
showMarkerClusters: VueTypes.bool,
|
|
1467
|
+
highlightMarkerOnHover: VueTypes.bool
|
|
1452
1468
|
},
|
|
1453
1469
|
data: function data() {
|
|
1454
1470
|
return {
|
|
1455
|
-
|
|
1456
|
-
|
|
1471
|
+
openMarkers: {},
|
|
1472
|
+
clickedCluster: null,
|
|
1473
|
+
clusterMarkers: []
|
|
1457
1474
|
};
|
|
1458
1475
|
},
|
|
1459
1476
|
methods: {
|
|
1460
|
-
setMarkerOnTop: function setMarkerOnTop(markerOnTop) {
|
|
1461
|
-
this.markerOnTop = markerOnTop;
|
|
1462
|
-
},
|
|
1463
1477
|
setOpenMarkers: function setOpenMarkers(openMarkers) {
|
|
1464
1478
|
this.openMarkers = openMarkers;
|
|
1479
|
+
},
|
|
1480
|
+
getAdditionalProps: function getAdditionalProps() {
|
|
1481
|
+
return {
|
|
1482
|
+
position: {
|
|
1483
|
+
lat: this.clickedCluster.getCenter().lat(),
|
|
1484
|
+
lng: this.clickedCluster.getCenter().lng()
|
|
1485
|
+
},
|
|
1486
|
+
defaultOptions: {
|
|
1487
|
+
pixelOffset: new window.google.maps.Size(0, -30)
|
|
1488
|
+
}
|
|
1489
|
+
};
|
|
1490
|
+
},
|
|
1491
|
+
closeMarker: function closeMarker() {
|
|
1492
|
+
this.clickedCluster = null;
|
|
1493
|
+
this.clusterMarkers = [];
|
|
1494
|
+
this.$emit('close-cluster-popover');
|
|
1465
1495
|
}
|
|
1466
1496
|
},
|
|
1467
1497
|
render: function render() {
|
|
1498
|
+
var _this = this;
|
|
1499
|
+
|
|
1468
1500
|
var h = arguments[0];
|
|
1469
1501
|
var resultsToRender = this.$props.resultsToRender;
|
|
1470
|
-
var
|
|
1471
|
-
openMarkers = this.openMarkers;
|
|
1502
|
+
var openMarkers = this.openMarkers;
|
|
1472
1503
|
var markerProps = {
|
|
1473
|
-
markerOnTop: markerOnTop,
|
|
1474
1504
|
openMarkers: openMarkers,
|
|
1475
1505
|
setMarkerOnTop: this.setMarkerOnTop,
|
|
1476
1506
|
setOpenMarkers: this.setOpenMarkers,
|
|
@@ -1481,19 +1511,58 @@ var GoogleMapMarkers = {
|
|
|
1481
1511
|
handlePreserveCenter: this.handlePreserveCenter,
|
|
1482
1512
|
renderPopover: this.renderPopover,
|
|
1483
1513
|
markerProps: this.markerProps,
|
|
1484
|
-
showMarkerClusters: this.showMarkerClusters
|
|
1514
|
+
showMarkerClusters: this.showMarkerClusters,
|
|
1515
|
+
highlightMarkerOnHover: this.highlightMarkerOnHover
|
|
1485
1516
|
};
|
|
1486
1517
|
|
|
1487
1518
|
if (this.showMarkerClusters) {
|
|
1488
|
-
return h(
|
|
1519
|
+
return h("div", [h(Cluster, {
|
|
1520
|
+
"props": _extends({}, this.clusterProps),
|
|
1521
|
+
"on": {
|
|
1522
|
+
"click": function click(cluster) {
|
|
1523
|
+
var markers = cluster.markers.map(function (i) {
|
|
1524
|
+
return i.metaData;
|
|
1525
|
+
});
|
|
1526
|
+
_this.clickedCluster = cluster;
|
|
1527
|
+
_this.clusterMarkers = markers;
|
|
1528
|
+
|
|
1529
|
+
_this.$emit('open-cluster-popover', _this.clusterMarkers);
|
|
1530
|
+
}
|
|
1531
|
+
},
|
|
1532
|
+
"ref": "clusterRef"
|
|
1533
|
+
}, [resultsToRender.map(function (marker, index) {
|
|
1489
1534
|
return h(GoogleMapMarker$1, {
|
|
1490
1535
|
"attrs": {
|
|
1491
1536
|
"index": index,
|
|
1492
1537
|
"marker": marker
|
|
1493
1538
|
},
|
|
1494
|
-
"props": _extends({}, markerProps)
|
|
1539
|
+
"props": _extends({}, markerProps),
|
|
1540
|
+
"on": _extends({}, _this.$listeners)
|
|
1495
1541
|
});
|
|
1496
|
-
})])
|
|
1542
|
+
})]), this.clickedCluster && this.renderClusterPopover ? h(InfoWindowWrapper, {
|
|
1543
|
+
"attrs": {
|
|
1544
|
+
"id": "cluster",
|
|
1545
|
+
"infoWindowProps": {
|
|
1546
|
+
zIndex: 500,
|
|
1547
|
+
position: this.getAdditionalProps().position,
|
|
1548
|
+
options: this.getAdditionalProps().defaultOptions
|
|
1549
|
+
},
|
|
1550
|
+
"renderPopover": function renderPopover(_handleClose) {
|
|
1551
|
+
return _this.renderClusterPopover({
|
|
1552
|
+
markers: _this.clusterMarkers,
|
|
1553
|
+
cluster: _this.clickedCluster,
|
|
1554
|
+
handleClose: function handleClose() {
|
|
1555
|
+
_handleClose();
|
|
1556
|
+
|
|
1557
|
+
_this.closeMarker();
|
|
1558
|
+
}
|
|
1559
|
+
});
|
|
1560
|
+
},
|
|
1561
|
+
"events": {
|
|
1562
|
+
closeclick: this.closeMarker
|
|
1563
|
+
}
|
|
1564
|
+
}
|
|
1565
|
+
}) : null]);
|
|
1497
1566
|
}
|
|
1498
1567
|
|
|
1499
1568
|
return h("div", [resultsToRender.map(function (marker, index) {
|
|
@@ -1502,7 +1571,8 @@ var GoogleMapMarkers = {
|
|
|
1502
1571
|
"index": index,
|
|
1503
1572
|
"marker": marker
|
|
1504
1573
|
},
|
|
1505
|
-
"props": _extends({}, markerProps)
|
|
1574
|
+
"props": _extends({}, markerProps),
|
|
1575
|
+
"on": _extends({}, _this.$listeners)
|
|
1506
1576
|
});
|
|
1507
1577
|
})]);
|
|
1508
1578
|
}
|
|
@@ -1514,20 +1584,22 @@ var ReactiveGoogleMap = {
|
|
|
1514
1584
|
className: types.string,
|
|
1515
1585
|
componentId: types.stringRequired,
|
|
1516
1586
|
dataField: types.stringRequired,
|
|
1517
|
-
defaultQuery:
|
|
1587
|
+
defaultQuery: VueTypes.func,
|
|
1518
1588
|
loader: types.title,
|
|
1519
1589
|
defaultZoom: VueTypes.number.def(13),
|
|
1520
1590
|
react: types.react,
|
|
1521
1591
|
size: types.number,
|
|
1522
1592
|
sortBy: types.sortBy,
|
|
1523
|
-
URLParams:
|
|
1593
|
+
URLParams: VueTypes.bool,
|
|
1524
1594
|
mapProps: VueTypes.object,
|
|
1525
1595
|
showMarkers: VueTypes.bool.def(true),
|
|
1526
1596
|
showMarkerClusters: VueTypes.bool.def(false),
|
|
1527
1597
|
searchAsMove: VueTypes.bool.def(false),
|
|
1528
|
-
|
|
1598
|
+
searchAsMoveLabel: VueTypes.string,
|
|
1599
|
+
markerProps: VueTypes.object,
|
|
1600
|
+
clusterProps: VueTypes.object,
|
|
1529
1601
|
renderItem: VueTypes.func,
|
|
1530
|
-
showSearchAsMove:
|
|
1602
|
+
showSearchAsMove: VueTypes.bool.def(true),
|
|
1531
1603
|
autoClosePopover: VueTypes.bool,
|
|
1532
1604
|
pagination: VueTypes.bool,
|
|
1533
1605
|
defaultPin: VueTypes.string,
|
|
@@ -1537,7 +1609,8 @@ var ReactiveGoogleMap = {
|
|
|
1537
1609
|
defaultRadius: types.number,
|
|
1538
1610
|
unit: types.string,
|
|
1539
1611
|
pages: VueTypes.number.def(5),
|
|
1540
|
-
calculateMarkers: VueTypes.func
|
|
1612
|
+
calculateMarkers: VueTypes.func,
|
|
1613
|
+
highlightMarkerOnHover: VueTypes.bool.def(true)
|
|
1541
1614
|
},
|
|
1542
1615
|
methods: {
|
|
1543
1616
|
renderMap: function renderMap(_ref) {
|
|
@@ -1552,9 +1625,7 @@ var ReactiveGoogleMap = {
|
|
|
1552
1625
|
renderSearchAsMove = _ref.renderSearchAsMove,
|
|
1553
1626
|
handlePreserveCenter = _ref.handlePreserveCenter,
|
|
1554
1627
|
getPosition = _ref.getPosition,
|
|
1555
|
-
markerProps = _ref.markerProps,
|
|
1556
1628
|
autoClosePopover = _ref.autoClosePopover,
|
|
1557
|
-
renderPopover = _ref.renderPopover,
|
|
1558
1629
|
defaultPin = _ref.defaultPin;
|
|
1559
1630
|
var h = this.$createElement;
|
|
1560
1631
|
var style = {
|
|
@@ -1587,8 +1658,10 @@ var ReactiveGoogleMap = {
|
|
|
1587
1658
|
"attrs": {
|
|
1588
1659
|
"resultsToRender": resultsToRender,
|
|
1589
1660
|
"getPosition": getPosition,
|
|
1590
|
-
"markerProps": markerProps,
|
|
1661
|
+
"markerProps": this.markerProps,
|
|
1662
|
+
"clusterProps": this.clusterProps,
|
|
1591
1663
|
"handlePreserveCenter": handlePreserveCenter,
|
|
1664
|
+
"highlightMarkerOnHover": this.highlightMarkerOnHover,
|
|
1592
1665
|
"renderItem": this.$scopedSlots.renderItem ? function () {
|
|
1593
1666
|
return {
|
|
1594
1667
|
custom: _this.$scopedSlots.renderItem
|
|
@@ -1596,9 +1669,11 @@ var ReactiveGoogleMap = {
|
|
|
1596
1669
|
} : this.renderItem,
|
|
1597
1670
|
"defaultPin": defaultPin,
|
|
1598
1671
|
"autoClosePopover": autoClosePopover,
|
|
1599
|
-
"renderPopover": renderPopover,
|
|
1672
|
+
"renderPopover": this.$scopedSlots.renderPopover,
|
|
1673
|
+
"renderClusterPopover": this.$scopedSlots.renderClusterPopover,
|
|
1600
1674
|
"showMarkerClusters": this.showMarkerClusters
|
|
1601
|
-
}
|
|
1675
|
+
},
|
|
1676
|
+
"on": _extends({}, this.$listeners)
|
|
1602
1677
|
}) : null]), renderSearchAsMove()]);
|
|
1603
1678
|
},
|
|
1604
1679
|
getMapRef: function getMapRef() {
|
|
@@ -1615,8 +1690,6 @@ var ReactiveGoogleMap = {
|
|
|
1615
1690
|
}
|
|
1616
1691
|
},
|
|
1617
1692
|
render: function render() {
|
|
1618
|
-
var _this3 = this;
|
|
1619
|
-
|
|
1620
1693
|
var h = arguments[0];
|
|
1621
1694
|
return h(RMConnected, _mergeJSXProps([{
|
|
1622
1695
|
"attrs": {
|
|
@@ -1633,14 +1706,12 @@ var ReactiveGoogleMap = {
|
|
|
1633
1706
|
"uRLParams": this.URLParams,
|
|
1634
1707
|
"defaultSearchAsMove": this.searchAsMove,
|
|
1635
1708
|
"showSearchAsMove": this.showSearchAsMove,
|
|
1709
|
+
"searchAsMoveLabel": this.searchAsMoveLabel,
|
|
1636
1710
|
"showMarkers": this.showMarkers,
|
|
1637
1711
|
"markerProps": this.markerProps,
|
|
1638
1712
|
"autoClosePopover": this.autoClosePopover,
|
|
1639
1713
|
"defaultPin": this.defaultPin,
|
|
1640
1714
|
"defaultQuery": this.defaultQuery,
|
|
1641
|
-
"renderPopover": this.$scopedSlots.renderPopover ? function (item) {
|
|
1642
|
-
return _this3.$scopedSlots.renderPopover(item);
|
|
1643
|
-
} : null,
|
|
1644
1715
|
"autoCenter": this.autoCenter,
|
|
1645
1716
|
"defaultCenter": this.defaultCenter,
|
|
1646
1717
|
"defaultRadius": this.defaultRadius,
|