@appbaseio/reactivesearch-vue 1.16.0-alpha.6 → 1.16.0-alpha.60

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.
Files changed (105) hide show
  1. package/dist/@appbaseio/reactivesearch-vue.umd.js +23173 -18496
  2. package/dist/@appbaseio/reactivesearch-vue.umd.js.map +1 -1
  3. package/dist/@appbaseio/reactivesearch-vue.umd.min.js +21 -5
  4. package/dist/@appbaseio/reactivesearch-vue.umd.min.js.map +1 -1
  5. package/dist/cjs/Button-446f819e.js +68 -0
  6. package/dist/cjs/{DownShift-966a58cb.js → CancelSvg-9f258f4f.js} +60 -16
  7. package/dist/cjs/Card-642547a8.js +30 -0
  8. package/dist/cjs/{ComponentWrapper-603848ed.js → ComponentWrapper-e131f28a.js} +40 -21
  9. package/dist/cjs/{Container-6cdd3864.js → Container-daf30918.js} +3 -11
  10. package/dist/cjs/DataSearch-85ca95d1.js +2322 -0
  11. package/dist/cjs/DataSearch.js +18 -2151
  12. package/dist/cjs/{DropDown-f6224ac8.js → DropDown-14a6460c.js} +80 -95
  13. package/dist/cjs/DynamicRangeSlider.js +107 -43
  14. package/dist/cjs/Flex-aa517a13.js +52 -0
  15. package/dist/cjs/FormControlList-c195a592.js +47 -0
  16. package/dist/cjs/Input-e6603a7e.js +79 -0
  17. package/dist/cjs/ListItem-8c9e0d68.js +46 -0
  18. package/dist/cjs/MultiDropdownList.js +102 -68
  19. package/dist/cjs/MultiList.js +80 -50
  20. package/dist/cjs/MultiRange.js +21 -16
  21. package/dist/cjs/{Pagination-af399262.js → Pagination-c01d1547.js} +4 -3
  22. package/dist/cjs/RangeInput.js +29 -45
  23. package/dist/cjs/RangeSlider.js +32 -30
  24. package/dist/cjs/ReactiveBase.js +87 -56
  25. package/dist/cjs/ReactiveComponent.js +75 -62
  26. package/dist/cjs/ReactiveGoogleMap.js +273 -196
  27. package/dist/cjs/ReactiveList.js +189 -241
  28. package/dist/cjs/ResultCard.js +8 -6
  29. package/dist/cjs/ResultList.js +8 -6
  30. package/dist/cjs/SelectedFilters.js +66 -34
  31. package/dist/cjs/SingleDropdownList.js +88 -60
  32. package/dist/cjs/SingleList.js +53 -35
  33. package/dist/cjs/SingleRange.js +19 -14
  34. package/dist/cjs/StateProvider.js +39 -10
  35. package/dist/cjs/{Title-65d39104.js → Title-1de7d0f4.js} +3 -11
  36. package/dist/cjs/ToggleButton.js +36 -16
  37. package/dist/cjs/{_rollupPluginBabelHelpers-4abdbfff.js → _rollupPluginBabelHelpers-c705cbe6.js} +2 -4
  38. package/dist/cjs/{index-baca18c4.js → index-9fb734df.js} +95 -13
  39. package/dist/cjs/index.js +30 -29
  40. package/dist/cjs/initReactivesearch.js +178 -104
  41. package/dist/cjs/install-7e220cb1.js +1408 -0
  42. package/dist/cjs/install.js +42 -44
  43. package/dist/cjs/ssr-3027b848.js +39 -0
  44. package/dist/cjs/{utils-ea846a20.js → utils-d6a52588.js} +2 -2
  45. package/dist/cjs/version.js +1 -1
  46. package/dist/cjs/{vueTypes-c21f265b.js → vueTypes-6de9d2a9.js} +9 -4
  47. package/dist/es/Button-d8bc15ea.js +59 -0
  48. package/dist/es/{DownShift-92347b5e.js → CancelSvg-4cfae5fd.js} +56 -17
  49. package/dist/es/Card-450683f1.js +23 -0
  50. package/dist/es/{ComponentWrapper-c4c91949.js → ComponentWrapper-3654ce36.js} +40 -21
  51. package/dist/es/Container-ba826e96.js +10 -0
  52. package/dist/es/DataSearch-9bd510ea.js +2307 -0
  53. package/dist/es/DataSearch.js +17 -2150
  54. package/dist/es/{DropDown-3d4291f1.js → DropDown-219d9321.js} +79 -94
  55. package/dist/es/DynamicRangeSlider.js +107 -43
  56. package/dist/es/Flex-1f0795c3.js +47 -0
  57. package/dist/es/FormControlList-c22d64f6.js +40 -0
  58. package/dist/es/Input-7a2a9fac.js +71 -0
  59. package/dist/es/ListItem-cad14c5e.js +39 -0
  60. package/dist/es/MultiDropdownList.js +102 -68
  61. package/dist/es/MultiList.js +80 -50
  62. package/dist/es/MultiRange.js +21 -16
  63. package/dist/es/{Pagination-c2a00175.js → Pagination-491c44ee.js} +4 -3
  64. package/dist/es/RangeInput.js +29 -45
  65. package/dist/es/RangeSlider.js +32 -30
  66. package/dist/es/ReactiveBase.js +87 -56
  67. package/dist/es/ReactiveComponent.js +75 -62
  68. package/dist/es/ReactiveGoogleMap.js +272 -196
  69. package/dist/es/ReactiveList.js +189 -241
  70. package/dist/es/ResultCard.js +8 -6
  71. package/dist/es/ResultList.js +8 -6
  72. package/dist/es/SelectedFilters.js +66 -34
  73. package/dist/es/SingleDropdownList.js +88 -60
  74. package/dist/es/SingleList.js +53 -35
  75. package/dist/es/SingleRange.js +19 -14
  76. package/dist/es/StateProvider.js +39 -10
  77. package/dist/es/Title-3342664a.js +10 -0
  78. package/dist/es/ToggleButton.js +36 -16
  79. package/dist/es/{_rollupPluginBabelHelpers-ecf6c03c.js → _rollupPluginBabelHelpers-76660dab.js} +2 -4
  80. package/dist/es/{index-185b6266.js → index-32f9d554.js} +91 -14
  81. package/dist/es/index.js +26 -26
  82. package/dist/es/initReactivesearch.js +179 -105
  83. package/dist/es/install-32e60122.js +1401 -0
  84. package/dist/es/install.js +40 -46
  85. package/dist/es/ssr-b2c0b401.js +33 -0
  86. package/dist/es/{utils-57cc8789.js → utils-9e68acee.js} +2 -2
  87. package/dist/es/version.js +1 -1
  88. package/dist/es/{vueTypes-98d938a9.js → vueTypes-9326e0be.js} +9 -4
  89. package/package.json +7 -5
  90. package/dist/cjs/Button-d48d4365.js +0 -146
  91. package/dist/cjs/Card-9748fbb2.js +0 -58
  92. package/dist/cjs/Flex-befd65fc.js +0 -160
  93. package/dist/cjs/FormControlList-f3857d4b.js +0 -105
  94. package/dist/cjs/Input-95cb19f8.js +0 -178
  95. package/dist/cjs/ListItem-84d185cf.js +0 -84
  96. package/dist/cjs/ssr-3ca8a14f.js +0 -47
  97. package/dist/es/Button-27cc8574.js +0 -137
  98. package/dist/es/Card-1f93780d.js +0 -51
  99. package/dist/es/Container-88c805ef.js +0 -18
  100. package/dist/es/Flex-16d1103a.js +0 -155
  101. package/dist/es/FormControlList-96d44e7b.js +0 -98
  102. package/dist/es/Input-1159c4b5.js +0 -170
  103. package/dist/es/ListItem-d22510c9.js +0 -77
  104. package/dist/es/Title-f0217338.js +0 -18
  105. package/dist/es/ssr-a710392b.js +0 -41
@@ -1,26 +1,21 @@
1
1
  import { Actions, helper } from '@appbaseio/reactivecore';
2
- import { a as _extends, b as _objectWithoutPropertiesLoose, d as _inheritsLoose, _ as _taggedTemplateLiteralLoose, c as _toPropertyKey } from './_rollupPluginBabelHelpers-ecf6c03c.js';
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-27cc8574.js';
9
- import { t as types } from './vueTypes-98d938a9.js';
10
- import { P as Pagination } from './Pagination-c2a00175.js';
8
+ import './Button-d8bc15ea.js';
9
+ import { t as types } from './vueTypes-9326e0be.js';
10
+ import { P as Pagination } from './Pagination-491c44ee.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-185b6266.js';
14
- import { C as ComponentWrapper } from './ComponentWrapper-c4c91949.js';
13
+ import { h as hasCustomRenderer, i as isQueryIdentical, g as getComponent, a as isFunction, c as connect } from './index-32f9d554.js';
14
+ import { C as ComponentWrapper } from './ComponentWrapper-3654ce36.js';
15
15
  import _mergeJSXProps from '@vue/babel-helper-vue-jsx-merge-props';
16
- import { C as Checkbox } from './FormControlList-96d44e7b.js';
17
- import * as GmapMapFull from 'gmap-vue';
18
- import Map from 'gmap-vue/dist/components-implementation/map';
16
+ import { C as Checkbox } from './FormControlList-c22d64f6.js';
17
+ import GmapVue, { components } from 'gmap-vue';
19
18
  import geohash from 'ngeohash';
20
- import GmapCluster from 'gmap-vue/dist/components/cluster';
21
- import Marker from 'gmap-vue/dist/components/marker';
22
- import InfoWindow from 'gmap-vue/dist/components-implementation/info-window';
23
- import MapElementMixin from 'gmap-vue/dist/mixins/map-element';
24
19
 
25
20
  var setStreaming = Actions.setStreaming,
26
21
  setQueryOptions = Actions.setQueryOptions,
@@ -68,7 +63,7 @@ function withDistinctLat(loc, count) {
68
63
 
69
64
  var suffix = 1 / Math.pow(10, noiseFactor) * count;
70
65
 
71
- var location = _extends(_extends({}, loc), {}, {
66
+ var location = _extends({}, loc, {
72
67
  lat: parseFloat((loc.lat + suffix).toFixed(length))
73
68
  });
74
69
 
@@ -120,14 +115,13 @@ var ReactiveMap = {
120
115
  react: types.react,
121
116
  size: types.number,
122
117
  sortBy: types.sortBy,
123
- URLParams: types.bool,
124
- autoCenter: types.bool,
118
+ URLParams: VueTypes.bool,
119
+ autoCenter: VueTypes.bool,
125
120
  getMapRef: VueTypes.func.isRequired,
126
121
  center: types.location,
127
122
  defaultCenter: types.location,
128
123
  defaultPin: types.string,
129
124
  defaultZoom: VueTypes.number.def(13),
130
- markerProps: types.props,
131
125
  defaultQuery: types.func,
132
126
  innerClass: types.style,
133
127
  loader: types.title,
@@ -136,17 +130,19 @@ var ReactiveMap = {
136
130
  renderError: types.title,
137
131
  pages: VueTypes.number.def(5),
138
132
  currentPage: VueTypes.number.def(0),
139
- pagination: types.bool,
140
- showMarkers: types.bool,
141
- defaultSearchAsMove: types.bool,
142
- showSearchAsMove: types.bool,
133
+ pagination: VueTypes.bool,
134
+ showMarkers: VueTypes.bool,
135
+ defaultSearchAsMove: VueTypes.bool,
136
+ showSearchAsMove: VueTypes.bool,
143
137
  defaultRadius: types.number,
144
138
  unit: types.string,
145
- autoClosePopover: types.bool,
139
+ autoClosePopover: VueTypes.bool,
146
140
  renderMap: VueTypes.func.isRequired,
147
141
  renderPopover: VueTypes.func,
148
- calculateMarkers: VueTypes.func
142
+ calculateMarkers: VueTypes.func,
143
+ searchAsMoveLabel: VueTypes.string.def('Search as I move the map')
149
144
  },
145
+ preserveCenter: false,
150
146
  data: function data() {
151
147
  var props = this.$props;
152
148
  var currentPageState = 0;
@@ -160,7 +156,6 @@ var ReactiveMap = {
160
156
  zoom: props.defaultZoom,
161
157
  searchAsMove: props.defaultSearchAsMove,
162
158
  currentPageState: currentPageState,
163
- preserveCenter: false,
164
159
  mapBoxBounds: null,
165
160
  markersData: null
166
161
  };
@@ -174,7 +169,7 @@ var ReactiveMap = {
174
169
  var _this$getAllData = this.getAllData(),
175
170
  resultsToRender = _this$getAllData.resultsToRender;
176
171
 
177
- return _extends(_extends({}, getResultStats(this)), {}, {
172
+ return _extends({}, getResultStats(this), {
178
173
  currentPage: this.currentPageState,
179
174
  displayedResults: resultsToRender.length
180
175
  });
@@ -209,16 +204,19 @@ var ReactiveMap = {
209
204
  var queryOptions = getOptionsFromQuery(this.$defaultQuery);
210
205
 
211
206
  if (queryOptions) {
212
- options = _extends(_extends({}, options), getOptionsFromQuery(this.$defaultQuery));
207
+ options = _extends({}, options, getOptionsFromQuery(this.$defaultQuery));
213
208
  } // Update calculated default query in store
214
209
 
215
210
 
216
- this.setQueryOptions(this.$props.componentId, options, !query);
211
+ this.setQueryOptions(this.$props.componentId, options, false);
217
212
  var persistMapQuery = true;
218
213
  var forceExecute = true; // Update default query to include the geo bounding box query
219
214
 
220
215
  this.setDefaultQueryForRSAPI();
221
- this.props.setMapData(this.componentId, query, persistMapQuery, forceExecute);
216
+ var meta = {
217
+ mapBoxBounds: this.mapBoxBounds
218
+ };
219
+ this.setMapData(this.componentId, query, persistMapQuery, forceExecute, meta);
222
220
  this.currentPageState = 0;
223
221
  this.from = 0;
224
222
  }
@@ -277,7 +275,7 @@ var ReactiveMap = {
277
275
  }).map(function (item) {
278
276
  var _extends2;
279
277
 
280
- return _extends(_extends({}, item), {}, (_extends2 = {}, _extends2[_this.dataField] = getLocationObject(item[_this.dataField]), _extends2));
278
+ return _extends({}, item, (_extends2 = {}, _extends2[_this.dataField] = getLocationObject(item[_this.dataField]), _extends2));
281
279
  });
282
280
  this.filteredResults = this.addNoise(filteredResults);
283
281
 
@@ -402,10 +400,10 @@ var ReactiveMap = {
402
400
 
403
401
  var mapRef = this.getMapRef();
404
402
 
405
- if (mapRef && typeof mapRef.getCenter === 'function' && this.preserveCenter) {
403
+ if (mapRef && typeof mapRef.getCenter === 'function' && this.$options.preserveCenter) {
406
404
  var currentCenter = mapRef.getCenter();
407
405
  setTimeout(function () {
408
- _this4.preserveCenter = false;
406
+ _this4.$options.preserveCenter = false;
409
407
  }, 100);
410
408
  return this.parseLocation({
411
409
  lat: currentCenter.lat(),
@@ -429,7 +427,7 @@ var ReactiveMap = {
429
427
 
430
428
  if (this.searchAsMove) {
431
429
  this.zoom = zoom;
432
- this.preserveCenter = true;
430
+ this.$options.preserveCenter = true;
433
431
  this.setGeoQuery(true);
434
432
  } else {
435
433
  this.zoom = zoom;
@@ -442,14 +440,14 @@ var ReactiveMap = {
442
440
  },
443
441
  handleOnDragEnd: function handleOnDragEnd() {
444
442
  if (this.searchAsMove) {
445
- this.preserveCenter = true;
443
+ this.$options.preserveCenter = true;
446
444
  this.setGeoQuery(true);
447
445
  }
448
446
 
449
447
  this.$emit('drag-end');
450
448
  },
451
449
  handlePreserveCenter: function handlePreserveCenter(preserveCenter) {
452
- this.preserveCenter = preserveCenter;
450
+ this.$options.preserveCenter = preserveCenter;
453
451
  },
454
452
  handleOnIdle: function handleOnIdle() {
455
453
  // only make the geo_bounding query if we have hits data
@@ -489,7 +487,6 @@ var ReactiveMap = {
489
487
  defaultPin = this.defaultPin,
490
488
  renderPopover = this.renderPopover,
491
489
  autoClosePopover = this.autoClosePopover,
492
- markerProps = this.markerProps,
493
490
  renderItem = this.renderItem;
494
491
  return {
495
492
  resultsToRender: data,
@@ -502,9 +499,8 @@ var ReactiveMap = {
502
499
  renderPopover: renderPopover,
503
500
  autoClosePopover: autoClosePopover,
504
501
  renderSearchAsMove: this.renderSearchAsMove,
505
- markerProps: markerProps,
506
502
  handlePreserveCenter: this.handlePreserveCenter,
507
- preserveCenter: this.preserveCenter,
503
+ preserveCenter: this.$options.preserveCenter,
508
504
  handleOnDragEnd: this.handleOnDragEnd,
509
505
  handleOnIdle: this.handleOnIdle,
510
506
  handleZoomChange: this.handleZoomChange
@@ -575,7 +571,7 @@ var ReactiveMap = {
575
571
  options.from = this.$data.from;
576
572
  this.from = value;
577
573
  this.currentPageState = page;
578
- this.loadMoreAction(this.componentId, _extends(_extends({}, options), {}, {
574
+ this.loadMoreAction(this.componentId, _extends({}, options, {
579
575
  from: value
580
576
  }), false);
581
577
 
@@ -587,29 +583,6 @@ var ReactiveMap = {
587
583
  setDefaultQueryForRSAPI: function setDefaultQueryForRSAPI() {
588
584
  if (this.defaultQuery && typeof this.defaultQuery === 'function') {
589
585
  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
586
  this.setDefaultQuery(this.componentId, defaultQuery);
614
587
  }
615
588
  },
@@ -633,7 +606,7 @@ var ReactiveMap = {
633
606
  var west;
634
607
 
635
608
  if (mapBounds) {
636
- var _geo_bounding_box2;
609
+ var _geo_bounding_box;
637
610
 
638
611
  north = mapBounds.getNorthEast().lat();
639
612
  south = mapBounds.getSouthWest().lat();
@@ -645,7 +618,7 @@ var ReactiveMap = {
645
618
  };
646
619
  this.mapBoxBounds = boundingBoxCoordinates;
647
620
  var geoQuery = {
648
- geo_bounding_box: (_geo_bounding_box2 = {}, _geo_bounding_box2[this.dataField] = boundingBoxCoordinates, _geo_bounding_box2)
621
+ geo_bounding_box: (_geo_bounding_box = {}, _geo_bounding_box[this.dataField] = boundingBoxCoordinates, _geo_bounding_box)
649
622
  };
650
623
 
651
624
  if (this.$defaultQuery) {
@@ -688,7 +661,7 @@ var ReactiveMap = {
688
661
  var value = this.from + this.size;
689
662
  var options = getQueryOptions(this.$props);
690
663
  this.from = value;
691
- this.loadMoreAction(this.componentId, _extends(_extends({}, options), {}, {
664
+ this.loadMoreAction(this.componentId, _extends({}, options, {
692
665
  from: value
693
666
  }), true);
694
667
  }
@@ -716,13 +689,14 @@ var ReactiveMap = {
716
689
  base = _this$getAllData3.base;
717
690
 
718
691
  return results.map(function (result, index) {
719
- return _extends(_extends({}, result), {}, {
692
+ return _extends({}, result, {
720
693
  _click_id: base + index
721
694
  });
722
695
  });
723
696
  },
724
697
  toggleSearchAsMove: function toggleSearchAsMove() {
725
698
  this.searchAsMove = !this.searchAsMove;
699
+ this.$emit('search-as-move', this.searchAsMove);
726
700
  },
727
701
  renderErrorComponent: function renderErrorComponent() {
728
702
  var renderError = this.$scopedSlots.renderError || this.$props.renderError;
@@ -768,7 +742,7 @@ var ReactiveMap = {
768
742
  "className": getClassName(this.innerClass, 'label') || null,
769
743
  "for": this.$props.componentId + "-searchasmove"
770
744
  }
771
- }, ["Search as I move the map"])]);
745
+ }, [this.searchAsMoveLabel])]);
772
746
  }
773
747
 
774
748
  return null;
@@ -822,7 +796,7 @@ var ReactiveMap = {
822
796
 
823
797
  if (this.$props.defaultQuery) {
824
798
  this.$defaultQuery = this.$props.defaultQuery();
825
- options = _extends(_extends({}, options), getOptionsFromQuery(this.$defaultQuery)); // Override sort query with defaultQuery's sort if defined
799
+ options = _extends({}, options, getOptionsFromQuery(this.$defaultQuery)); // Override sort query with defaultQuery's sort if defined
826
800
 
827
801
  if (this.$defaultQuery.sort) {
828
802
  options.sort = this.$defaultQuery.sort;
@@ -836,7 +810,10 @@ var ReactiveMap = {
836
810
  var forceExecute = false; // Update default query for RS API
837
811
 
838
812
  this.setDefaultQueryForRSAPI();
839
- this.setMapData(this.componentId, this.$defaultQuery.query, persistMapQuery, forceExecute);
813
+ var meta = {
814
+ mapBoxBounds: this.mapBoxBounds
815
+ };
816
+ this.setMapData(this.componentId, this.$defaultQuery.query, persistMapQuery, forceExecute, meta);
840
817
  } else {
841
818
  // only apply geo-distance when defaultQuery prop is not set
842
819
  var query = this.getGeoDistanceQuery();
@@ -856,11 +833,11 @@ var ReactiveMap = {
856
833
 
857
834
  var center = this.center || this.defaultCenter;
858
835
  var coordinatesObject = this.getArrPosition(center);
859
- var meta = {
836
+ var _meta = {
860
837
  distance: this.defaultRadius,
861
838
  coordinates: coordinatesObject.lat + ", " + coordinatesObject.lon
862
839
  };
863
- this.setMapData(this.componentId, query, _persistMapQuery, _forceExecute, meta);
840
+ this.setMapData(this.componentId, query, _persistMapQuery, _forceExecute, _meta);
864
841
  }
865
842
  }
866
843
 
@@ -870,7 +847,7 @@ var ReactiveMap = {
870
847
  var h = arguments[0];
871
848
  var loader = this.$scopedSlots.loader || this.$props.loader;
872
849
  return h("div", {
873
- "style": _extends(_extends({}, style), this.$props.style),
850
+ "style": _extends({}, style, this.$props.style),
874
851
  "class": this.$props.className
875
852
  }, [this.renderErrorComponent(), this.isLoading && loader, this.hasCustomRender ? this.getComponent() : null, this.renderMap(this.getMapParams()), this.pagination ? this.renderPagination() : null]);
876
853
  }
@@ -914,9 +891,49 @@ ReactiveMap.install = function (Vue) {
914
891
 
915
892
  ReactiveMap.componentType = componentTypes.reactiveMap;
916
893
 
894
+ var InfoWindow = components.InfoWindow;
895
+ var InfoWindowWrapper = {
896
+ name: 'InfoWindowWrapper',
897
+ props: {
898
+ id: VueTypes.string,
899
+ renderPopover: VueTypes.func,
900
+ infoWindowProps: VueTypes.object,
901
+ events: VueTypes.object
902
+ },
903
+ data: function data() {
904
+ return {
905
+ infoWindowRef: null
906
+ };
907
+ },
908
+ mounted: function mounted() {
909
+ this.infoWindowRef = this.$refs[this.id + "-Info-Window"];
910
+ },
911
+ methods: {
912
+ handleClose: function handleClose() {
913
+ this.infoWindowRef.$infoWindowObject.close();
914
+ }
915
+ },
916
+ render: function render() {
917
+ var h = arguments[0];
918
+ var renderPopover = this.renderPopover,
919
+ events = this.events;
920
+ return h(InfoWindow, {
921
+ "ref": this.id + "-Info-Window",
922
+ "props": _extends({}, this.infoWindowProps),
923
+ "on": _extends({}, events)
924
+ }, [h("div", [renderPopover(this.handleClose)])]);
925
+ }
926
+ };
927
+
928
+ var MapElementMixin = components.MapElementMixin; // Note: This file has been taken from https://github.com/eregnier/vue2-gmap-custom-marker/blob/master/gmap-custom-marker.vue
929
+
917
930
  var MarkerWithLabel = {
918
931
  name: 'MarkerWithLabel',
919
932
  props: {
933
+ metaData: {
934
+ type: Object,
935
+ "default": undefined
936
+ },
920
937
  marker: {
921
938
  type: Object,
922
939
  "default": undefined
@@ -1016,6 +1033,7 @@ var MarkerWithLabel = {
1016
1033
  var _this3;
1017
1034
 
1018
1035
  _this3 = _window$google$maps$O.call(this) || this;
1036
+ _this3.metaData = self.metaData;
1019
1037
 
1020
1038
  _this3.setMap(map2);
1021
1039
 
@@ -1027,6 +1045,10 @@ var MarkerWithLabel = {
1027
1045
  return _this3.repaint();
1028
1046
  };
1029
1047
 
1048
+ _this3.getVisible = function () {
1049
+ return true;
1050
+ };
1051
+
1030
1052
  return _this3;
1031
1053
  }
1032
1054
 
@@ -1181,48 +1203,19 @@ var MarkerWithLabel = {
1181
1203
  },
1182
1204
  "on": {
1183
1205
  "mouseover": this.handleMouseOver,
1184
- "focus": this.handleFocus,
1185
1206
  "mouseout": this.handleMouseOut,
1186
- "blur": this.handleBlur,
1187
1207
  "click": this.handleClick
1188
1208
  }
1189
1209
  }, [this.renderMarker()]);
1190
1210
  }
1191
1211
  };
1192
1212
 
1193
- function _templateObject3() {
1194
- var data = _taggedTemplateLiteralLoose(["\n\t&:hover,\n\t&:focus {\n\t\tz-index: 200;\n\t}\n"]);
1195
-
1196
- _templateObject3 = function _templateObject3() {
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());
1213
+ var _templateObject, _templateObject2, _templateObject3;
1214
+ 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"])));
1215
+ 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"])));
1216
+ var mapPinWrapper = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n\t&:hover,\n\t&:focus {\n\t\tz-index: 200;\n\t}\n"])));
1225
1217
 
1218
+ var Marker = components.Marker;
1226
1219
  var recordResultClick$1 = Actions.recordResultClick;
1227
1220
  var GoogleMapMarker = {
1228
1221
  name: 'GoogleMapMarker',
@@ -1230,54 +1223,63 @@ var GoogleMapMarker = {
1230
1223
  index: VueTypes.number,
1231
1224
  marker: VueTypes.object.isRequired,
1232
1225
  getPosition: VueTypes.func.isRequired,
1233
- markerOnTop: VueTypes.string,
1234
1226
  defaultPin: VueTypes.string,
1235
1227
  renderItem: VueTypes.func,
1236
- setMarkerOnTop: VueTypes.func.isRequired,
1237
1228
  setOpenMarkers: VueTypes.func.isRequired,
1238
1229
  handlePreserveCenter: VueTypes.func.isRequired,
1239
1230
  autoClosePopover: VueTypes.bool,
1240
1231
  openMarkers: VueTypes.object,
1241
- renderPopover: VueTypes.func
1232
+ renderPopover: VueTypes.func,
1233
+ highlightMarkerOnHover: VueTypes.bool
1234
+ },
1235
+ data: function data() {
1236
+ return {
1237
+ zIndex: 0,
1238
+ markerIcon: null
1239
+ };
1242
1240
  },
1243
1241
  methods: {
1244
1242
  increaseMarkerZIndex: function increaseMarkerZIndex() {
1245
- var _this$$props = this.$props,
1246
- handleTopMarker = _this$$props.setMarkerOnTop,
1247
- handlePreserveCenter = _this$$props.handlePreserveCenter,
1248
- marker = _this$$props.marker;
1249
- handleTopMarker(marker._id);
1243
+ var handlePreserveCenter = this.$props.handlePreserveCenter;
1244
+
1245
+ if (this.highlightMarkerOnHover) {
1246
+ this.zIndex += 1;
1247
+ }
1248
+
1250
1249
  handlePreserveCenter(true);
1251
1250
  },
1252
1251
  removeMarkerZIndex: function removeMarkerZIndex() {
1253
- var _this$$props2 = this.$props,
1254
- handleTopMarker = _this$$props2.setMarkerOnTop,
1255
- handlePreserveCenter = _this$$props2.handlePreserveCenter;
1256
- handleTopMarker(null);
1252
+ var handlePreserveCenter = this.$props.handlePreserveCenter;
1253
+
1254
+ if (this.highlightMarkerOnHover) {
1255
+ this.zIndex -= 1;
1256
+ }
1257
+
1257
1258
  handlePreserveCenter(true);
1258
1259
  },
1259
1260
  openMarker: function openMarker() {
1260
1261
  var _ref, _extends2;
1261
1262
 
1262
- var _this$$props3 = this.$props,
1263
- handleOpenMarkers = _this$$props3.setOpenMarkers,
1264
- openMarkers = _this$$props3.openMarkers,
1265
- marker = _this$$props3.marker,
1266
- autoClosePopover = _this$$props3.autoClosePopover,
1267
- handlePreserveCenter = _this$$props3.handlePreserveCenter;
1263
+ var _this$$props = this.$props,
1264
+ handleOpenMarkers = _this$$props.setOpenMarkers,
1265
+ openMarkers = _this$$props.openMarkers,
1266
+ marker = _this$$props.marker,
1267
+ autoClosePopover = _this$$props.autoClosePopover,
1268
+ handlePreserveCenter = _this$$props.handlePreserveCenter;
1268
1269
  var id = marker._id;
1269
- var newOpenMarkers = autoClosePopover ? (_ref = {}, _ref[id] = true, _ref) : _extends(_extends({}, openMarkers), {}, (_extends2 = {}, _extends2[id] = true, _extends2));
1270
+ var newOpenMarkers = autoClosePopover ? (_ref = {}, _ref[id] = true, _ref) : _extends({}, openMarkers, (_extends2 = {}, _extends2[id] = true, _extends2));
1270
1271
  handleOpenMarkers(newOpenMarkers);
1271
1272
  handlePreserveCenter(true);
1272
1273
  this.triggerAnalytics();
1274
+ this.$emit('open-marker-popover', marker);
1273
1275
  },
1274
1276
  closeMarker: function closeMarker() {
1275
- var _this$$props4 = this.$props,
1276
- handleOpenMarkers = _this$$props4.setOpenMarkers,
1277
- marker = _this$$props4.marker,
1278
- autoClosePopover = _this$$props4.autoClosePopover,
1279
- handlePreserveCenter = _this$$props4.handlePreserveCenter,
1280
- openMarkers = _this$$props4.openMarkers;
1277
+ var _this$$props2 = this.$props,
1278
+ handleOpenMarkers = _this$$props2.setOpenMarkers,
1279
+ marker = _this$$props2.marker,
1280
+ autoClosePopover = _this$$props2.autoClosePopover,
1281
+ handlePreserveCenter = _this$$props2.handlePreserveCenter,
1282
+ openMarkers = _this$$props2.openMarkers;
1281
1283
  var id = marker._id;
1282
1284
 
1283
1285
  var del = openMarkers[id],
@@ -1286,6 +1288,7 @@ var GoogleMapMarker = {
1286
1288
  var newOpenMarkers = autoClosePopover ? {} : activeMarkers;
1287
1289
  handleOpenMarkers(newOpenMarkers);
1288
1290
  handlePreserveCenter(true);
1291
+ this.$emit('close-marker-popover', marker);
1289
1292
  },
1290
1293
  triggerAnalytics: function triggerAnalytics() {
1291
1294
  this.recordResultClick(this.index, this.marker._id);
@@ -1299,10 +1302,10 @@ var GoogleMapMarker = {
1299
1302
 
1300
1303
  var h = this.$createElement;
1301
1304
  var additionalProps = {};
1302
- var _this$$props5 = this.$props,
1303
- getPosition = _this$$props5.getPosition,
1304
- renderPopover = _this$$props5.renderPopover,
1305
- openMarkers = _this$$props5.openMarkers;
1305
+ var _this$$props3 = this.$props,
1306
+ getPosition = _this$$props3.getPosition,
1307
+ _renderPopover = _this$$props3.renderPopover,
1308
+ openMarkers = _this$$props3.openMarkers;
1306
1309
 
1307
1310
  if (includeExternalSettings) {
1308
1311
  // to render pop-over correctly with MarkerWithLabel
@@ -1315,19 +1318,32 @@ var GoogleMapMarker = {
1315
1318
  }
1316
1319
 
1317
1320
  if (item._id in openMarkers) {
1318
- return h(InfoWindow, {
1319
- "attrs": {
1320
- "zIndex": 500,
1321
- "position": additionalProps.position,
1322
- "options": additionalProps.defaultOptions
1323
- },
1321
+ return h(InfoWindowWrapper, {
1324
1322
  "key": item._id + "-InfoWindow",
1325
- "on": {
1326
- "closeclick": function closeclick() {
1327
- return _this.closeMarker();
1323
+ "attrs": {
1324
+ "id": item._id,
1325
+ "renderPopover": function renderPopover(_handleClose) {
1326
+ return _renderPopover({
1327
+ item: item,
1328
+ handleClose: function handleClose() {
1329
+ _handleClose();
1330
+
1331
+ _this.closeMarker();
1332
+ }
1333
+ });
1334
+ },
1335
+ "infoWindowProps": {
1336
+ zIndex: 500,
1337
+ position: additionalProps.position,
1338
+ options: additionalProps.defaultOptions
1339
+ },
1340
+ "events": {
1341
+ closeclick: function closeclick() {
1342
+ return _this.closeMarker();
1343
+ }
1328
1344
  }
1329
1345
  }
1330
- }, [h("div", [renderPopover(item)])]);
1346
+ });
1331
1347
  }
1332
1348
 
1333
1349
  return null;
@@ -1337,35 +1353,35 @@ var GoogleMapMarker = {
1337
1353
  var _this2 = this;
1338
1354
 
1339
1355
  var h = arguments[0];
1340
- var _this$$props6 = this.$props,
1341
- getPosition = _this$$props6.getPosition,
1342
- renderItem = _this$$props6.renderItem,
1343
- defaultPin = _this$$props6.defaultPin,
1344
- autoClosePopover = _this$$props6.autoClosePopover,
1345
- handlePreserveCenter = _this$$props6.handlePreserveCenter,
1346
- renderPopover = _this$$props6.renderPopover,
1347
- customMarkerProps = _this$$props6.markerProps,
1348
- marker = _this$$props6.marker,
1349
- markerOnTop = _this$$props6.markerOnTop;
1356
+ var _this$$props4 = this.$props,
1357
+ getPosition = _this$$props4.getPosition,
1358
+ renderItem = _this$$props4.renderItem,
1359
+ defaultPin = _this$$props4.defaultPin,
1360
+ renderPopover = _this$$props4.renderPopover,
1361
+ customMarkerProps = _this$$props4.markerProps,
1362
+ marker = _this$$props4.marker;
1350
1363
  var markerProps = {};
1351
1364
 
1352
- if (markerOnTop === marker._id) {
1353
- markerProps.zIndex = window.google.maps.Marker.MAX_ZINDEX + 1;
1365
+ if (this.zIndex) {
1366
+ markerProps.zIndex = window.google.maps.Marker.MAX_ZINDEX + this.zIndex;
1354
1367
  }
1355
1368
 
1356
1369
  if (renderItem) {
1370
+ marker.setIcon = function (icon) {
1371
+ _this2.markerIcon = icon;
1372
+ };
1373
+
1357
1374
  var data = renderItem(marker);
1358
1375
 
1359
1376
  if ('label' in data) {
1360
1377
  return h(MarkerWithLabel, {
1361
1378
  "key": marker._id,
1362
1379
  "attrs": {
1380
+ "metaData": marker,
1363
1381
  "marker": getPosition(marker),
1364
1382
  "labelAnchor": new window.google.maps.Point(0, 30),
1365
1383
  "handleMouseOver": this.increaseMarkerZIndex,
1366
- "handleFocus": this.increaseMarkerZIndex,
1367
1384
  "handleMouseOut": this.removeMarkerZIndex,
1368
- "handleBlur": this.removeMarkerZIndex,
1369
1385
  "handleClick": this.openMarker,
1370
1386
  "zIndex": markerProps.zIndex,
1371
1387
  "renderMarker": function renderMarker() {
@@ -1386,12 +1402,11 @@ var GoogleMapMarker = {
1386
1402
  return h(MarkerWithLabel, {
1387
1403
  "key": marker._id,
1388
1404
  "attrs": {
1405
+ "metaData": marker,
1389
1406
  "marker": getPosition(marker),
1390
1407
  "handleClick": this.openMarker,
1391
1408
  "handleMouseOver": this.increaseMarkerZIndex,
1392
- "handleFocus": this.increaseMarkerZIndex,
1393
1409
  "handleMouseOut": this.removeMarkerZIndex,
1394
- "handleBlur": this.removeMarkerZIndex,
1395
1410
  "zIndex": markerProps.zIndex,
1396
1411
  "renderMarker": function renderMarker() {
1397
1412
  return h("div", {
@@ -1413,18 +1428,19 @@ var GoogleMapMarker = {
1413
1428
  return h(Marker, {
1414
1429
  "key": marker._id,
1415
1430
  "attrs": {
1416
- "icon": markerProps.icon,
1417
1431
  "zIndex": markerProps.zIndex,
1418
- "position": getPosition(marker)
1432
+ "position": getPosition(marker),
1433
+ "options": {
1434
+ metaData: marker
1435
+ },
1436
+ "icon": this.markerIcon || markerProps.icon
1419
1437
  },
1420
1438
  "on": {
1421
1439
  "click": function click() {
1422
- return _this2.openMarker(marker._id, autoClosePopover || false, handlePreserveCenter);
1440
+ return _this2.openMarker();
1423
1441
  },
1424
1442
  "mouseover": this.increaseMarkerZIndex,
1425
- "focus": this.increaseMarkerZIndex,
1426
- "mouseout": this.removeMarkerZIndex,
1427
- "blur": this.removeMarkerZIndex
1443
+ "mouseout": this.removeMarkerZIndex
1428
1444
  },
1429
1445
  "props": _extends({}, customMarkerProps)
1430
1446
  }, [renderPopover ? this.renderPopoverClick(marker) : null]);
@@ -1437,40 +1453,58 @@ var GoogleMapMarker$1 = connect(function () {
1437
1453
  return null;
1438
1454
  }, mapDispatchToProps$1)(GoogleMapMarker);
1439
1455
 
1456
+ var Cluster = components.Cluster;
1440
1457
  var GoogleMapMarkers = {
1441
1458
  name: 'GoogleMapMarkers',
1442
1459
  props: {
1443
1460
  resultsToRender: VueTypes.array,
1444
1461
  getPosition: VueTypes.func,
1445
1462
  renderItem: VueTypes.func,
1463
+ renderClusterPopover: VueTypes.func,
1446
1464
  defaultPin: VueTypes.string,
1447
1465
  autoClosePopover: VueTypes.bool,
1448
1466
  handlePreserveCenter: VueTypes.func,
1449
1467
  renderPopover: VueTypes.func,
1450
1468
  markerProps: VueTypes.object,
1451
- showMarkerClusters: VueTypes.bool
1469
+ clusterProps: VueTypes.object,
1470
+ showMarkerClusters: VueTypes.bool,
1471
+ highlightMarkerOnHover: VueTypes.bool
1452
1472
  },
1453
1473
  data: function data() {
1454
1474
  return {
1455
- markerOnTop: null,
1456
- openMarkers: {}
1475
+ openMarkers: {},
1476
+ clickedCluster: null,
1477
+ clusterMarkers: []
1457
1478
  };
1458
1479
  },
1459
1480
  methods: {
1460
- setMarkerOnTop: function setMarkerOnTop(markerOnTop) {
1461
- this.markerOnTop = markerOnTop;
1462
- },
1463
1481
  setOpenMarkers: function setOpenMarkers(openMarkers) {
1464
1482
  this.openMarkers = openMarkers;
1483
+ },
1484
+ getAdditionalProps: function getAdditionalProps() {
1485
+ return {
1486
+ position: {
1487
+ lat: this.clickedCluster.getCenter().lat(),
1488
+ lng: this.clickedCluster.getCenter().lng()
1489
+ },
1490
+ defaultOptions: {
1491
+ pixelOffset: new window.google.maps.Size(0, -30)
1492
+ }
1493
+ };
1494
+ },
1495
+ closeMarker: function closeMarker() {
1496
+ this.clickedCluster = null;
1497
+ this.clusterMarkers = [];
1498
+ this.$emit('close-cluster-popover');
1465
1499
  }
1466
1500
  },
1467
1501
  render: function render() {
1502
+ var _this = this;
1503
+
1468
1504
  var h = arguments[0];
1469
1505
  var resultsToRender = this.$props.resultsToRender;
1470
- var markerOnTop = this.markerOnTop,
1471
- openMarkers = this.openMarkers;
1506
+ var openMarkers = this.openMarkers;
1472
1507
  var markerProps = {
1473
- markerOnTop: markerOnTop,
1474
1508
  openMarkers: openMarkers,
1475
1509
  setMarkerOnTop: this.setMarkerOnTop,
1476
1510
  setOpenMarkers: this.setOpenMarkers,
@@ -1481,19 +1515,58 @@ var GoogleMapMarkers = {
1481
1515
  handlePreserveCenter: this.handlePreserveCenter,
1482
1516
  renderPopover: this.renderPopover,
1483
1517
  markerProps: this.markerProps,
1484
- showMarkerClusters: this.showMarkerClusters
1518
+ showMarkerClusters: this.showMarkerClusters,
1519
+ highlightMarkerOnHover: this.highlightMarkerOnHover
1485
1520
  };
1486
1521
 
1487
1522
  if (this.showMarkerClusters) {
1488
- return h(GmapCluster, [resultsToRender.map(function (marker, index) {
1523
+ return h("div", [h(Cluster, {
1524
+ "props": _extends({}, this.clusterProps),
1525
+ "on": {
1526
+ "click": function click(cluster) {
1527
+ var markers = cluster.markers.map(function (i) {
1528
+ return i.metaData;
1529
+ });
1530
+ _this.clickedCluster = cluster;
1531
+ _this.clusterMarkers = markers;
1532
+
1533
+ _this.$emit('open-cluster-popover', _this.clusterMarkers);
1534
+ }
1535
+ },
1536
+ "ref": "clusterRef"
1537
+ }, [resultsToRender.map(function (marker, index) {
1489
1538
  return h(GoogleMapMarker$1, {
1490
1539
  "attrs": {
1491
1540
  "index": index,
1492
1541
  "marker": marker
1493
1542
  },
1494
- "props": _extends({}, markerProps)
1543
+ "props": _extends({}, markerProps),
1544
+ "on": _extends({}, _this.$listeners)
1495
1545
  });
1496
- })]);
1546
+ })]), this.clickedCluster && this.renderClusterPopover ? h(InfoWindowWrapper, {
1547
+ "attrs": {
1548
+ "id": "cluster",
1549
+ "infoWindowProps": {
1550
+ zIndex: 500,
1551
+ position: this.getAdditionalProps().position,
1552
+ options: this.getAdditionalProps().defaultOptions
1553
+ },
1554
+ "renderPopover": function renderPopover(_handleClose) {
1555
+ return _this.renderClusterPopover({
1556
+ markers: _this.clusterMarkers,
1557
+ cluster: _this.clickedCluster,
1558
+ handleClose: function handleClose() {
1559
+ _handleClose();
1560
+
1561
+ _this.closeMarker();
1562
+ }
1563
+ });
1564
+ },
1565
+ "events": {
1566
+ closeclick: this.closeMarker
1567
+ }
1568
+ }
1569
+ }) : null]);
1497
1570
  }
1498
1571
 
1499
1572
  return h("div", [resultsToRender.map(function (marker, index) {
@@ -1502,32 +1575,36 @@ var GoogleMapMarkers = {
1502
1575
  "index": index,
1503
1576
  "marker": marker
1504
1577
  },
1505
- "props": _extends({}, markerProps)
1578
+ "props": _extends({}, markerProps),
1579
+ "on": _extends({}, _this.$listeners)
1506
1580
  });
1507
1581
  })]);
1508
1582
  }
1509
1583
  };
1510
1584
 
1585
+ var Map = components.MapLayer;
1511
1586
  var ReactiveGoogleMap = {
1512
1587
  name: 'ReactiveGoogleMap',
1513
1588
  props: {
1514
1589
  className: types.string,
1515
1590
  componentId: types.stringRequired,
1516
1591
  dataField: types.stringRequired,
1517
- defaultQuery: types.func,
1592
+ defaultQuery: VueTypes.func,
1518
1593
  loader: types.title,
1519
1594
  defaultZoom: VueTypes.number.def(13),
1520
1595
  react: types.react,
1521
1596
  size: types.number,
1522
1597
  sortBy: types.sortBy,
1523
- URLParams: types.bool,
1598
+ URLParams: VueTypes.bool,
1524
1599
  mapProps: VueTypes.object,
1525
1600
  showMarkers: VueTypes.bool.def(true),
1526
1601
  showMarkerClusters: VueTypes.bool.def(false),
1527
1602
  searchAsMove: VueTypes.bool.def(false),
1528
- markerProps: types.props,
1603
+ searchAsMoveLabel: VueTypes.string,
1604
+ markerProps: VueTypes.object,
1605
+ clusterProps: VueTypes.object,
1529
1606
  renderItem: VueTypes.func,
1530
- showSearchAsMove: types.bool.def(true),
1607
+ showSearchAsMove: VueTypes.bool.def(true),
1531
1608
  autoClosePopover: VueTypes.bool,
1532
1609
  pagination: VueTypes.bool,
1533
1610
  defaultPin: VueTypes.string,
@@ -1537,7 +1614,8 @@ var ReactiveGoogleMap = {
1537
1614
  defaultRadius: types.number,
1538
1615
  unit: types.string,
1539
1616
  pages: VueTypes.number.def(5),
1540
- calculateMarkers: VueTypes.func
1617
+ calculateMarkers: VueTypes.func,
1618
+ highlightMarkerOnHover: VueTypes.bool.def(true)
1541
1619
  },
1542
1620
  methods: {
1543
1621
  renderMap: function renderMap(_ref) {
@@ -1552,9 +1630,7 @@ var ReactiveGoogleMap = {
1552
1630
  renderSearchAsMove = _ref.renderSearchAsMove,
1553
1631
  handlePreserveCenter = _ref.handlePreserveCenter,
1554
1632
  getPosition = _ref.getPosition,
1555
- markerProps = _ref.markerProps,
1556
1633
  autoClosePopover = _ref.autoClosePopover,
1557
- renderPopover = _ref.renderPopover,
1558
1634
  defaultPin = _ref.defaultPin;
1559
1635
  var h = this.$createElement;
1560
1636
  var style = {
@@ -1587,8 +1663,10 @@ var ReactiveGoogleMap = {
1587
1663
  "attrs": {
1588
1664
  "resultsToRender": resultsToRender,
1589
1665
  "getPosition": getPosition,
1590
- "markerProps": markerProps,
1666
+ "markerProps": this.markerProps,
1667
+ "clusterProps": this.clusterProps,
1591
1668
  "handlePreserveCenter": handlePreserveCenter,
1669
+ "highlightMarkerOnHover": this.highlightMarkerOnHover,
1592
1670
  "renderItem": this.$scopedSlots.renderItem ? function () {
1593
1671
  return {
1594
1672
  custom: _this.$scopedSlots.renderItem
@@ -1596,9 +1674,11 @@ var ReactiveGoogleMap = {
1596
1674
  } : this.renderItem,
1597
1675
  "defaultPin": defaultPin,
1598
1676
  "autoClosePopover": autoClosePopover,
1599
- "renderPopover": renderPopover,
1677
+ "renderPopover": this.$scopedSlots.renderPopover,
1678
+ "renderClusterPopover": this.$scopedSlots.renderClusterPopover,
1600
1679
  "showMarkerClusters": this.showMarkerClusters
1601
- }
1680
+ },
1681
+ "on": _extends({}, this.$listeners)
1602
1682
  }) : null]), renderSearchAsMove()]);
1603
1683
  },
1604
1684
  getMapRef: function getMapRef() {
@@ -1615,8 +1695,6 @@ var ReactiveGoogleMap = {
1615
1695
  }
1616
1696
  },
1617
1697
  render: function render() {
1618
- var _this3 = this;
1619
-
1620
1698
  var h = arguments[0];
1621
1699
  return h(RMConnected, _mergeJSXProps([{
1622
1700
  "attrs": {
@@ -1633,14 +1711,12 @@ var ReactiveGoogleMap = {
1633
1711
  "uRLParams": this.URLParams,
1634
1712
  "defaultSearchAsMove": this.searchAsMove,
1635
1713
  "showSearchAsMove": this.showSearchAsMove,
1714
+ "searchAsMoveLabel": this.searchAsMoveLabel,
1636
1715
  "showMarkers": this.showMarkers,
1637
1716
  "markerProps": this.markerProps,
1638
1717
  "autoClosePopover": this.autoClosePopover,
1639
1718
  "defaultPin": this.defaultPin,
1640
1719
  "defaultQuery": this.defaultQuery,
1641
- "renderPopover": this.$scopedSlots.renderPopover ? function (item) {
1642
- return _this3.$scopedSlots.renderPopover(item);
1643
- } : null,
1644
1720
  "autoCenter": this.autoCenter,
1645
1721
  "defaultCenter": this.defaultCenter,
1646
1722
  "defaultRadius": this.defaultRadius,
@@ -1664,7 +1740,7 @@ ReactiveGoogleMap.install = function (Vue, options) {
1664
1740
  console.error('ReactiveSearch: map key is required to use ReactiveGoogleMap component');
1665
1741
  }
1666
1742
 
1667
- Vue.use(GmapMapFull, {
1743
+ Vue.use(GmapVue, {
1668
1744
  load: {
1669
1745
  key: options.key,
1670
1746
  libraries: 'places'