@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
@@ -6,29 +6,25 @@ 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-4abdbfff.js');
9
+ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-c705cbe6.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-d48d4365.js');
17
- var vueTypes = require('./vueTypes-c21f265b.js');
18
- var Pagination = require('./Pagination-af399262.js');
16
+ require('./Button-446f819e.js');
17
+ var vueTypes = require('./vueTypes-6de9d2a9.js');
18
+ var Pagination = require('./Pagination-c01d1547.js');
19
19
  require('@appbaseio/reactivecore/lib/utils/transform');
20
20
  require('redux');
21
- var index = require('./index-baca18c4.js');
22
- var ComponentWrapper = require('./ComponentWrapper-603848ed.js');
21
+ var index = require('./index-9fb734df.js');
22
+ var ComponentWrapper = require('./ComponentWrapper-e131f28a.js');
23
23
  var _mergeJSXProps = _interopDefault(require('@vue/babel-helper-vue-jsx-merge-props'));
24
- var FormControlList = require('./FormControlList-f3857d4b.js');
25
- var GmapMapFull = require('gmap-vue');
26
- var Map = _interopDefault(require('gmap-vue/dist/components-implementation/map'));
24
+ var FormControlList = require('./FormControlList-c195a592.js');
25
+ var GmapVue = require('gmap-vue');
26
+ var GmapVue__default = _interopDefault(GmapVue);
27
27
  var geohash = _interopDefault(require('ngeohash'));
28
- var GmapCluster = _interopDefault(require('gmap-vue/dist/components/cluster'));
29
- var Marker = _interopDefault(require('gmap-vue/dist/components/marker'));
30
- var InfoWindow = _interopDefault(require('gmap-vue/dist/components-implementation/info-window'));
31
- var MapElementMixin = _interopDefault(require('gmap-vue/dist/mixins/map-element'));
32
28
 
33
29
  var setStreaming = configureStore.Actions.setStreaming,
34
30
  setQueryOptions = configureStore.Actions.setQueryOptions,
@@ -76,7 +72,7 @@ function withDistinctLat(loc, count) {
76
72
 
77
73
  var suffix = 1 / Math.pow(10, noiseFactor) * count;
78
74
 
79
- var location = _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, loc), {}, {
75
+ var location = _rollupPluginBabelHelpers._extends({}, loc, {
80
76
  lat: parseFloat((loc.lat + suffix).toFixed(length))
81
77
  });
82
78
 
@@ -128,14 +124,13 @@ var ReactiveMap = {
128
124
  react: vueTypes.types.react,
129
125
  size: vueTypes.types.number,
130
126
  sortBy: vueTypes.types.sortBy,
131
- URLParams: vueTypes.types.bool,
132
- autoCenter: vueTypes.types.bool,
127
+ URLParams: VueTypes.bool,
128
+ autoCenter: VueTypes.bool,
133
129
  getMapRef: VueTypes.func.isRequired,
134
130
  center: vueTypes.types.location,
135
131
  defaultCenter: vueTypes.types.location,
136
132
  defaultPin: vueTypes.types.string,
137
133
  defaultZoom: VueTypes.number.def(13),
138
- markerProps: vueTypes.types.props,
139
134
  defaultQuery: vueTypes.types.func,
140
135
  innerClass: vueTypes.types.style,
141
136
  loader: vueTypes.types.title,
@@ -144,17 +139,19 @@ var ReactiveMap = {
144
139
  renderError: vueTypes.types.title,
145
140
  pages: VueTypes.number.def(5),
146
141
  currentPage: VueTypes.number.def(0),
147
- pagination: vueTypes.types.bool,
148
- showMarkers: vueTypes.types.bool,
149
- defaultSearchAsMove: vueTypes.types.bool,
150
- showSearchAsMove: vueTypes.types.bool,
142
+ pagination: VueTypes.bool,
143
+ showMarkers: VueTypes.bool,
144
+ defaultSearchAsMove: VueTypes.bool,
145
+ showSearchAsMove: VueTypes.bool,
151
146
  defaultRadius: vueTypes.types.number,
152
147
  unit: vueTypes.types.string,
153
- autoClosePopover: vueTypes.types.bool,
148
+ autoClosePopover: VueTypes.bool,
154
149
  renderMap: VueTypes.func.isRequired,
155
150
  renderPopover: VueTypes.func,
156
- calculateMarkers: VueTypes.func
151
+ calculateMarkers: VueTypes.func,
152
+ searchAsMoveLabel: VueTypes.string.def('Search as I move the map')
157
153
  },
154
+ preserveCenter: false,
158
155
  data: function data() {
159
156
  var props = this.$props;
160
157
  var currentPageState = 0;
@@ -168,7 +165,6 @@ var ReactiveMap = {
168
165
  zoom: props.defaultZoom,
169
166
  searchAsMove: props.defaultSearchAsMove,
170
167
  currentPageState: currentPageState,
171
- preserveCenter: false,
172
168
  mapBoxBounds: null,
173
169
  markersData: null
174
170
  };
@@ -182,7 +178,7 @@ var ReactiveMap = {
182
178
  var _this$getAllData = this.getAllData(),
183
179
  resultsToRender = _this$getAllData.resultsToRender;
184
180
 
185
- return _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, getResultStats(this)), {}, {
181
+ return _rollupPluginBabelHelpers._extends({}, getResultStats(this), {
186
182
  currentPage: this.currentPageState,
187
183
  displayedResults: resultsToRender.length
188
184
  });
@@ -217,16 +213,19 @@ var ReactiveMap = {
217
213
  var queryOptions = getOptionsFromQuery(this.$defaultQuery);
218
214
 
219
215
  if (queryOptions) {
220
- options = _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, options), getOptionsFromQuery(this.$defaultQuery));
216
+ options = _rollupPluginBabelHelpers._extends({}, options, getOptionsFromQuery(this.$defaultQuery));
221
217
  } // Update calculated default query in store
222
218
 
223
219
 
224
- this.setQueryOptions(this.$props.componentId, options, !query);
220
+ this.setQueryOptions(this.$props.componentId, options, false);
225
221
  var persistMapQuery = true;
226
222
  var forceExecute = true; // Update default query to include the geo bounding box query
227
223
 
228
224
  this.setDefaultQueryForRSAPI();
229
- this.props.setMapData(this.componentId, query, persistMapQuery, forceExecute);
225
+ var meta = {
226
+ mapBoxBounds: this.mapBoxBounds
227
+ };
228
+ this.setMapData(this.componentId, query, persistMapQuery, forceExecute, meta);
230
229
  this.currentPageState = 0;
231
230
  this.from = 0;
232
231
  }
@@ -285,7 +284,7 @@ var ReactiveMap = {
285
284
  }).map(function (item) {
286
285
  var _extends2;
287
286
 
288
- return _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, item), {}, (_extends2 = {}, _extends2[_this.dataField] = getLocationObject(item[_this.dataField]), _extends2));
287
+ return _rollupPluginBabelHelpers._extends({}, item, (_extends2 = {}, _extends2[_this.dataField] = getLocationObject(item[_this.dataField]), _extends2));
289
288
  });
290
289
  this.filteredResults = this.addNoise(filteredResults);
291
290
 
@@ -410,10 +409,10 @@ var ReactiveMap = {
410
409
 
411
410
  var mapRef = this.getMapRef();
412
411
 
413
- if (mapRef && typeof mapRef.getCenter === 'function' && this.preserveCenter) {
412
+ if (mapRef && typeof mapRef.getCenter === 'function' && this.$options.preserveCenter) {
414
413
  var currentCenter = mapRef.getCenter();
415
414
  setTimeout(function () {
416
- _this4.preserveCenter = false;
415
+ _this4.$options.preserveCenter = false;
417
416
  }, 100);
418
417
  return this.parseLocation({
419
418
  lat: currentCenter.lat(),
@@ -437,7 +436,7 @@ var ReactiveMap = {
437
436
 
438
437
  if (this.searchAsMove) {
439
438
  this.zoom = zoom;
440
- this.preserveCenter = true;
439
+ this.$options.preserveCenter = true;
441
440
  this.setGeoQuery(true);
442
441
  } else {
443
442
  this.zoom = zoom;
@@ -450,14 +449,14 @@ var ReactiveMap = {
450
449
  },
451
450
  handleOnDragEnd: function handleOnDragEnd() {
452
451
  if (this.searchAsMove) {
453
- this.preserveCenter = true;
452
+ this.$options.preserveCenter = true;
454
453
  this.setGeoQuery(true);
455
454
  }
456
455
 
457
456
  this.$emit('drag-end');
458
457
  },
459
458
  handlePreserveCenter: function handlePreserveCenter(preserveCenter) {
460
- this.preserveCenter = preserveCenter;
459
+ this.$options.preserveCenter = preserveCenter;
461
460
  },
462
461
  handleOnIdle: function handleOnIdle() {
463
462
  // only make the geo_bounding query if we have hits data
@@ -497,7 +496,6 @@ var ReactiveMap = {
497
496
  defaultPin = this.defaultPin,
498
497
  renderPopover = this.renderPopover,
499
498
  autoClosePopover = this.autoClosePopover,
500
- markerProps = this.markerProps,
501
499
  renderItem = this.renderItem;
502
500
  return {
503
501
  resultsToRender: data,
@@ -510,9 +508,8 @@ var ReactiveMap = {
510
508
  renderPopover: renderPopover,
511
509
  autoClosePopover: autoClosePopover,
512
510
  renderSearchAsMove: this.renderSearchAsMove,
513
- markerProps: markerProps,
514
511
  handlePreserveCenter: this.handlePreserveCenter,
515
- preserveCenter: this.preserveCenter,
512
+ preserveCenter: this.$options.preserveCenter,
516
513
  handleOnDragEnd: this.handleOnDragEnd,
517
514
  handleOnIdle: this.handleOnIdle,
518
515
  handleZoomChange: this.handleZoomChange
@@ -583,7 +580,7 @@ var ReactiveMap = {
583
580
  options.from = this.$data.from;
584
581
  this.from = value;
585
582
  this.currentPageState = page;
586
- this.loadMoreAction(this.componentId, _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, options), {}, {
583
+ this.loadMoreAction(this.componentId, _rollupPluginBabelHelpers._extends({}, options, {
587
584
  from: value
588
585
  }), false);
589
586
 
@@ -595,29 +592,6 @@ var ReactiveMap = {
595
592
  setDefaultQueryForRSAPI: function setDefaultQueryForRSAPI() {
596
593
  if (this.defaultQuery && typeof this.defaultQuery === 'function') {
597
594
  var defaultQuery = this.defaultQuery();
598
-
599
- if (this.mapBoxBounds) {
600
- var _geo_bounding_box;
601
-
602
- var geoQuery = {
603
- geo_bounding_box: (_geo_bounding_box = {}, _geo_bounding_box[this.dataField] = this.mapBoxBounds, _geo_bounding_box)
604
- };
605
-
606
- var _defaultQuery = defaultQuery,
607
- query = _defaultQuery.query,
608
- options = _rollupPluginBabelHelpers._objectWithoutPropertiesLoose(_defaultQuery, ["query"]);
609
-
610
- if (query) {
611
- // adds defaultQuery's query to geo-query
612
- // to generate a map query
613
- defaultQuery = _rollupPluginBabelHelpers._extends({
614
- query: {
615
- must: [geoQuery, query]
616
- }
617
- }, options);
618
- }
619
- }
620
-
621
595
  this.setDefaultQuery(this.componentId, defaultQuery);
622
596
  }
623
597
  },
@@ -641,7 +615,7 @@ var ReactiveMap = {
641
615
  var west;
642
616
 
643
617
  if (mapBounds) {
644
- var _geo_bounding_box2;
618
+ var _geo_bounding_box;
645
619
 
646
620
  north = mapBounds.getNorthEast().lat();
647
621
  south = mapBounds.getSouthWest().lat();
@@ -653,7 +627,7 @@ var ReactiveMap = {
653
627
  };
654
628
  this.mapBoxBounds = boundingBoxCoordinates;
655
629
  var geoQuery = {
656
- geo_bounding_box: (_geo_bounding_box2 = {}, _geo_bounding_box2[this.dataField] = boundingBoxCoordinates, _geo_bounding_box2)
630
+ geo_bounding_box: (_geo_bounding_box = {}, _geo_bounding_box[this.dataField] = boundingBoxCoordinates, _geo_bounding_box)
657
631
  };
658
632
 
659
633
  if (this.$defaultQuery) {
@@ -696,7 +670,7 @@ var ReactiveMap = {
696
670
  var value = this.from + this.size;
697
671
  var options = getQueryOptions(this.$props);
698
672
  this.from = value;
699
- this.loadMoreAction(this.componentId, _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, options), {}, {
673
+ this.loadMoreAction(this.componentId, _rollupPluginBabelHelpers._extends({}, options, {
700
674
  from: value
701
675
  }), true);
702
676
  }
@@ -724,13 +698,14 @@ var ReactiveMap = {
724
698
  base = _this$getAllData3.base;
725
699
 
726
700
  return results.map(function (result, index) {
727
- return _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, result), {}, {
701
+ return _rollupPluginBabelHelpers._extends({}, result, {
728
702
  _click_id: base + index
729
703
  });
730
704
  });
731
705
  },
732
706
  toggleSearchAsMove: function toggleSearchAsMove() {
733
707
  this.searchAsMove = !this.searchAsMove;
708
+ this.$emit('search-as-move', this.searchAsMove);
734
709
  },
735
710
  renderErrorComponent: function renderErrorComponent() {
736
711
  var renderError = this.$scopedSlots.renderError || this.$props.renderError;
@@ -776,7 +751,7 @@ var ReactiveMap = {
776
751
  "className": getClassName(this.innerClass, 'label') || null,
777
752
  "for": this.$props.componentId + "-searchasmove"
778
753
  }
779
- }, ["Search as I move the map"])]);
754
+ }, [this.searchAsMoveLabel])]);
780
755
  }
781
756
 
782
757
  return null;
@@ -830,7 +805,7 @@ var ReactiveMap = {
830
805
 
831
806
  if (this.$props.defaultQuery) {
832
807
  this.$defaultQuery = this.$props.defaultQuery();
833
- options = _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, options), getOptionsFromQuery(this.$defaultQuery)); // Override sort query with defaultQuery's sort if defined
808
+ options = _rollupPluginBabelHelpers._extends({}, options, getOptionsFromQuery(this.$defaultQuery)); // Override sort query with defaultQuery's sort if defined
834
809
 
835
810
  if (this.$defaultQuery.sort) {
836
811
  options.sort = this.$defaultQuery.sort;
@@ -844,7 +819,10 @@ var ReactiveMap = {
844
819
  var forceExecute = false; // Update default query for RS API
845
820
 
846
821
  this.setDefaultQueryForRSAPI();
847
- this.setMapData(this.componentId, this.$defaultQuery.query, persistMapQuery, forceExecute);
822
+ var meta = {
823
+ mapBoxBounds: this.mapBoxBounds
824
+ };
825
+ this.setMapData(this.componentId, this.$defaultQuery.query, persistMapQuery, forceExecute, meta);
848
826
  } else {
849
827
  // only apply geo-distance when defaultQuery prop is not set
850
828
  var query = this.getGeoDistanceQuery();
@@ -864,11 +842,11 @@ var ReactiveMap = {
864
842
 
865
843
  var center = this.center || this.defaultCenter;
866
844
  var coordinatesObject = this.getArrPosition(center);
867
- var meta = {
845
+ var _meta = {
868
846
  distance: this.defaultRadius,
869
847
  coordinates: coordinatesObject.lat + ", " + coordinatesObject.lon
870
848
  };
871
- this.setMapData(this.componentId, query, _persistMapQuery, _forceExecute, meta);
849
+ this.setMapData(this.componentId, query, _persistMapQuery, _forceExecute, _meta);
872
850
  }
873
851
  }
874
852
 
@@ -878,7 +856,7 @@ var ReactiveMap = {
878
856
  var h = arguments[0];
879
857
  var loader = this.$scopedSlots.loader || this.$props.loader;
880
858
  return h("div", {
881
- "style": _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, style), this.$props.style),
859
+ "style": _rollupPluginBabelHelpers._extends({}, style, this.$props.style),
882
860
  "class": this.$props.className
883
861
  }, [this.renderErrorComponent(), this.isLoading && loader, this.hasCustomRender ? this.getComponent() : null, this.renderMap(this.getMapParams()), this.pagination ? this.renderPagination() : null]);
884
862
  }
@@ -922,9 +900,49 @@ ReactiveMap.install = function (Vue) {
922
900
 
923
901
  ReactiveMap.componentType = constants.componentTypes.reactiveMap;
924
902
 
903
+ var InfoWindow = GmapVue.components.InfoWindow;
904
+ var InfoWindowWrapper = {
905
+ name: 'InfoWindowWrapper',
906
+ props: {
907
+ id: VueTypes.string,
908
+ renderPopover: VueTypes.func,
909
+ infoWindowProps: VueTypes.object,
910
+ events: VueTypes.object
911
+ },
912
+ data: function data() {
913
+ return {
914
+ infoWindowRef: null
915
+ };
916
+ },
917
+ mounted: function mounted() {
918
+ this.infoWindowRef = this.$refs[this.id + "-Info-Window"];
919
+ },
920
+ methods: {
921
+ handleClose: function handleClose() {
922
+ this.infoWindowRef.$infoWindowObject.close();
923
+ }
924
+ },
925
+ render: function render() {
926
+ var h = arguments[0];
927
+ var renderPopover = this.renderPopover,
928
+ events = this.events;
929
+ return h(InfoWindow, {
930
+ "ref": this.id + "-Info-Window",
931
+ "props": _rollupPluginBabelHelpers._extends({}, this.infoWindowProps),
932
+ "on": _rollupPluginBabelHelpers._extends({}, events)
933
+ }, [h("div", [renderPopover(this.handleClose)])]);
934
+ }
935
+ };
936
+
937
+ var MapElementMixin = GmapVue.components.MapElementMixin; // Note: This file has been taken from https://github.com/eregnier/vue2-gmap-custom-marker/blob/master/gmap-custom-marker.vue
938
+
925
939
  var MarkerWithLabel = {
926
940
  name: 'MarkerWithLabel',
927
941
  props: {
942
+ metaData: {
943
+ type: Object,
944
+ "default": undefined
945
+ },
928
946
  marker: {
929
947
  type: Object,
930
948
  "default": undefined
@@ -1024,6 +1042,7 @@ var MarkerWithLabel = {
1024
1042
  var _this3;
1025
1043
 
1026
1044
  _this3 = _window$google$maps$O.call(this) || this;
1045
+ _this3.metaData = self.metaData;
1027
1046
 
1028
1047
  _this3.setMap(map2);
1029
1048
 
@@ -1035,6 +1054,10 @@ var MarkerWithLabel = {
1035
1054
  return _this3.repaint();
1036
1055
  };
1037
1056
 
1057
+ _this3.getVisible = function () {
1058
+ return true;
1059
+ };
1060
+
1038
1061
  return _this3;
1039
1062
  }
1040
1063
 
@@ -1189,48 +1212,19 @@ var MarkerWithLabel = {
1189
1212
  },
1190
1213
  "on": {
1191
1214
  "mouseover": this.handleMouseOver,
1192
- "focus": this.handleFocus,
1193
1215
  "mouseout": this.handleMouseOut,
1194
- "blur": this.handleBlur,
1195
1216
  "click": this.handleClick
1196
1217
  }
1197
1218
  }, [this.renderMarker()]);
1198
1219
  }
1199
1220
  };
1200
1221
 
1201
- function _templateObject3() {
1202
- var data = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\t&:hover,\n\t&:focus {\n\t\tz-index: 200;\n\t}\n"]);
1203
-
1204
- _templateObject3 = function _templateObject3() {
1205
- return data;
1206
- };
1207
-
1208
- return data;
1209
- }
1210
-
1211
- function _templateObject2() {
1212
- 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"]);
1213
-
1214
- _templateObject2 = function _templateObject2() {
1215
- return data;
1216
- };
1217
-
1218
- return data;
1219
- }
1220
-
1221
- function _templateObject() {
1222
- 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"]);
1223
-
1224
- _templateObject = function _templateObject() {
1225
- return data;
1226
- };
1227
-
1228
- return data;
1229
- }
1230
- var MapPin = styled__default('div')(_templateObject());
1231
- var MapPinArrow = styled__default('div')(_templateObject2());
1232
- var mapPinWrapper = styled.css(_templateObject3());
1222
+ var _templateObject, _templateObject2, _templateObject3;
1223
+ 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"])));
1224
+ 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"])));
1225
+ var mapPinWrapper = styled.css(_templateObject3 || (_templateObject3 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\t&:hover,\n\t&:focus {\n\t\tz-index: 200;\n\t}\n"])));
1233
1226
 
1227
+ var Marker = GmapVue.components.Marker;
1234
1228
  var recordResultClick$1 = configureStore.Actions.recordResultClick;
1235
1229
  var GoogleMapMarker = {
1236
1230
  name: 'GoogleMapMarker',
@@ -1238,54 +1232,63 @@ var GoogleMapMarker = {
1238
1232
  index: VueTypes.number,
1239
1233
  marker: VueTypes.object.isRequired,
1240
1234
  getPosition: VueTypes.func.isRequired,
1241
- markerOnTop: VueTypes.string,
1242
1235
  defaultPin: VueTypes.string,
1243
1236
  renderItem: VueTypes.func,
1244
- setMarkerOnTop: VueTypes.func.isRequired,
1245
1237
  setOpenMarkers: VueTypes.func.isRequired,
1246
1238
  handlePreserveCenter: VueTypes.func.isRequired,
1247
1239
  autoClosePopover: VueTypes.bool,
1248
1240
  openMarkers: VueTypes.object,
1249
- renderPopover: VueTypes.func
1241
+ renderPopover: VueTypes.func,
1242
+ highlightMarkerOnHover: VueTypes.bool
1243
+ },
1244
+ data: function data() {
1245
+ return {
1246
+ zIndex: 0,
1247
+ markerIcon: null
1248
+ };
1250
1249
  },
1251
1250
  methods: {
1252
1251
  increaseMarkerZIndex: function increaseMarkerZIndex() {
1253
- var _this$$props = this.$props,
1254
- handleTopMarker = _this$$props.setMarkerOnTop,
1255
- handlePreserveCenter = _this$$props.handlePreserveCenter,
1256
- marker = _this$$props.marker;
1257
- handleTopMarker(marker._id);
1252
+ var handlePreserveCenter = this.$props.handlePreserveCenter;
1253
+
1254
+ if (this.highlightMarkerOnHover) {
1255
+ this.zIndex += 1;
1256
+ }
1257
+
1258
1258
  handlePreserveCenter(true);
1259
1259
  },
1260
1260
  removeMarkerZIndex: function removeMarkerZIndex() {
1261
- var _this$$props2 = this.$props,
1262
- handleTopMarker = _this$$props2.setMarkerOnTop,
1263
- handlePreserveCenter = _this$$props2.handlePreserveCenter;
1264
- handleTopMarker(null);
1261
+ var handlePreserveCenter = this.$props.handlePreserveCenter;
1262
+
1263
+ if (this.highlightMarkerOnHover) {
1264
+ this.zIndex -= 1;
1265
+ }
1266
+
1265
1267
  handlePreserveCenter(true);
1266
1268
  },
1267
1269
  openMarker: function openMarker() {
1268
1270
  var _ref, _extends2;
1269
1271
 
1270
- var _this$$props3 = this.$props,
1271
- handleOpenMarkers = _this$$props3.setOpenMarkers,
1272
- openMarkers = _this$$props3.openMarkers,
1273
- marker = _this$$props3.marker,
1274
- autoClosePopover = _this$$props3.autoClosePopover,
1275
- handlePreserveCenter = _this$$props3.handlePreserveCenter;
1272
+ var _this$$props = this.$props,
1273
+ handleOpenMarkers = _this$$props.setOpenMarkers,
1274
+ openMarkers = _this$$props.openMarkers,
1275
+ marker = _this$$props.marker,
1276
+ autoClosePopover = _this$$props.autoClosePopover,
1277
+ handlePreserveCenter = _this$$props.handlePreserveCenter;
1276
1278
  var id = marker._id;
1277
- var newOpenMarkers = autoClosePopover ? (_ref = {}, _ref[id] = true, _ref) : _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, openMarkers), {}, (_extends2 = {}, _extends2[id] = true, _extends2));
1279
+ var newOpenMarkers = autoClosePopover ? (_ref = {}, _ref[id] = true, _ref) : _rollupPluginBabelHelpers._extends({}, openMarkers, (_extends2 = {}, _extends2[id] = true, _extends2));
1278
1280
  handleOpenMarkers(newOpenMarkers);
1279
1281
  handlePreserveCenter(true);
1280
1282
  this.triggerAnalytics();
1283
+ this.$emit('open-marker-popover', marker);
1281
1284
  },
1282
1285
  closeMarker: function closeMarker() {
1283
- var _this$$props4 = this.$props,
1284
- handleOpenMarkers = _this$$props4.setOpenMarkers,
1285
- marker = _this$$props4.marker,
1286
- autoClosePopover = _this$$props4.autoClosePopover,
1287
- handlePreserveCenter = _this$$props4.handlePreserveCenter,
1288
- openMarkers = _this$$props4.openMarkers;
1286
+ var _this$$props2 = this.$props,
1287
+ handleOpenMarkers = _this$$props2.setOpenMarkers,
1288
+ marker = _this$$props2.marker,
1289
+ autoClosePopover = _this$$props2.autoClosePopover,
1290
+ handlePreserveCenter = _this$$props2.handlePreserveCenter,
1291
+ openMarkers = _this$$props2.openMarkers;
1289
1292
  var id = marker._id;
1290
1293
 
1291
1294
  var del = openMarkers[id],
@@ -1294,6 +1297,7 @@ var GoogleMapMarker = {
1294
1297
  var newOpenMarkers = autoClosePopover ? {} : activeMarkers;
1295
1298
  handleOpenMarkers(newOpenMarkers);
1296
1299
  handlePreserveCenter(true);
1300
+ this.$emit('close-marker-popover', marker);
1297
1301
  },
1298
1302
  triggerAnalytics: function triggerAnalytics() {
1299
1303
  this.recordResultClick(this.index, this.marker._id);
@@ -1307,10 +1311,10 @@ var GoogleMapMarker = {
1307
1311
 
1308
1312
  var h = this.$createElement;
1309
1313
  var additionalProps = {};
1310
- var _this$$props5 = this.$props,
1311
- getPosition = _this$$props5.getPosition,
1312
- renderPopover = _this$$props5.renderPopover,
1313
- openMarkers = _this$$props5.openMarkers;
1314
+ var _this$$props3 = this.$props,
1315
+ getPosition = _this$$props3.getPosition,
1316
+ _renderPopover = _this$$props3.renderPopover,
1317
+ openMarkers = _this$$props3.openMarkers;
1314
1318
 
1315
1319
  if (includeExternalSettings) {
1316
1320
  // to render pop-over correctly with MarkerWithLabel
@@ -1323,19 +1327,32 @@ var GoogleMapMarker = {
1323
1327
  }
1324
1328
 
1325
1329
  if (item._id in openMarkers) {
1326
- return h(InfoWindow, {
1327
- "attrs": {
1328
- "zIndex": 500,
1329
- "position": additionalProps.position,
1330
- "options": additionalProps.defaultOptions
1331
- },
1330
+ return h(InfoWindowWrapper, {
1332
1331
  "key": item._id + "-InfoWindow",
1333
- "on": {
1334
- "closeclick": function closeclick() {
1335
- return _this.closeMarker();
1332
+ "attrs": {
1333
+ "id": item._id,
1334
+ "renderPopover": function renderPopover(_handleClose) {
1335
+ return _renderPopover({
1336
+ item: item,
1337
+ handleClose: function handleClose() {
1338
+ _handleClose();
1339
+
1340
+ _this.closeMarker();
1341
+ }
1342
+ });
1343
+ },
1344
+ "infoWindowProps": {
1345
+ zIndex: 500,
1346
+ position: additionalProps.position,
1347
+ options: additionalProps.defaultOptions
1348
+ },
1349
+ "events": {
1350
+ closeclick: function closeclick() {
1351
+ return _this.closeMarker();
1352
+ }
1336
1353
  }
1337
1354
  }
1338
- }, [h("div", [renderPopover(item)])]);
1355
+ });
1339
1356
  }
1340
1357
 
1341
1358
  return null;
@@ -1345,35 +1362,35 @@ var GoogleMapMarker = {
1345
1362
  var _this2 = this;
1346
1363
 
1347
1364
  var h = arguments[0];
1348
- var _this$$props6 = this.$props,
1349
- getPosition = _this$$props6.getPosition,
1350
- renderItem = _this$$props6.renderItem,
1351
- defaultPin = _this$$props6.defaultPin,
1352
- autoClosePopover = _this$$props6.autoClosePopover,
1353
- handlePreserveCenter = _this$$props6.handlePreserveCenter,
1354
- renderPopover = _this$$props6.renderPopover,
1355
- customMarkerProps = _this$$props6.markerProps,
1356
- marker = _this$$props6.marker,
1357
- markerOnTop = _this$$props6.markerOnTop;
1365
+ var _this$$props4 = this.$props,
1366
+ getPosition = _this$$props4.getPosition,
1367
+ renderItem = _this$$props4.renderItem,
1368
+ defaultPin = _this$$props4.defaultPin,
1369
+ renderPopover = _this$$props4.renderPopover,
1370
+ customMarkerProps = _this$$props4.markerProps,
1371
+ marker = _this$$props4.marker;
1358
1372
  var markerProps = {};
1359
1373
 
1360
- if (markerOnTop === marker._id) {
1361
- markerProps.zIndex = window.google.maps.Marker.MAX_ZINDEX + 1;
1374
+ if (this.zIndex) {
1375
+ markerProps.zIndex = window.google.maps.Marker.MAX_ZINDEX + this.zIndex;
1362
1376
  }
1363
1377
 
1364
1378
  if (renderItem) {
1379
+ marker.setIcon = function (icon) {
1380
+ _this2.markerIcon = icon;
1381
+ };
1382
+
1365
1383
  var data = renderItem(marker);
1366
1384
 
1367
1385
  if ('label' in data) {
1368
1386
  return h(MarkerWithLabel, {
1369
1387
  "key": marker._id,
1370
1388
  "attrs": {
1389
+ "metaData": marker,
1371
1390
  "marker": getPosition(marker),
1372
1391
  "labelAnchor": new window.google.maps.Point(0, 30),
1373
1392
  "handleMouseOver": this.increaseMarkerZIndex,
1374
- "handleFocus": this.increaseMarkerZIndex,
1375
1393
  "handleMouseOut": this.removeMarkerZIndex,
1376
- "handleBlur": this.removeMarkerZIndex,
1377
1394
  "handleClick": this.openMarker,
1378
1395
  "zIndex": markerProps.zIndex,
1379
1396
  "renderMarker": function renderMarker() {
@@ -1394,12 +1411,11 @@ var GoogleMapMarker = {
1394
1411
  return h(MarkerWithLabel, {
1395
1412
  "key": marker._id,
1396
1413
  "attrs": {
1414
+ "metaData": marker,
1397
1415
  "marker": getPosition(marker),
1398
1416
  "handleClick": this.openMarker,
1399
1417
  "handleMouseOver": this.increaseMarkerZIndex,
1400
- "handleFocus": this.increaseMarkerZIndex,
1401
1418
  "handleMouseOut": this.removeMarkerZIndex,
1402
- "handleBlur": this.removeMarkerZIndex,
1403
1419
  "zIndex": markerProps.zIndex,
1404
1420
  "renderMarker": function renderMarker() {
1405
1421
  return h("div", {
@@ -1421,18 +1437,19 @@ var GoogleMapMarker = {
1421
1437
  return h(Marker, {
1422
1438
  "key": marker._id,
1423
1439
  "attrs": {
1424
- "icon": markerProps.icon,
1425
1440
  "zIndex": markerProps.zIndex,
1426
- "position": getPosition(marker)
1441
+ "position": getPosition(marker),
1442
+ "options": {
1443
+ metaData: marker
1444
+ },
1445
+ "icon": this.markerIcon || markerProps.icon
1427
1446
  },
1428
1447
  "on": {
1429
1448
  "click": function click() {
1430
- return _this2.openMarker(marker._id, autoClosePopover || false, handlePreserveCenter);
1449
+ return _this2.openMarker();
1431
1450
  },
1432
1451
  "mouseover": this.increaseMarkerZIndex,
1433
- "focus": this.increaseMarkerZIndex,
1434
- "mouseout": this.removeMarkerZIndex,
1435
- "blur": this.removeMarkerZIndex
1452
+ "mouseout": this.removeMarkerZIndex
1436
1453
  },
1437
1454
  "props": _rollupPluginBabelHelpers._extends({}, customMarkerProps)
1438
1455
  }, [renderPopover ? this.renderPopoverClick(marker) : null]);
@@ -1445,40 +1462,58 @@ var GoogleMapMarker$1 = index.connect(function () {
1445
1462
  return null;
1446
1463
  }, mapDispatchToProps$1)(GoogleMapMarker);
1447
1464
 
1465
+ var Cluster = GmapVue.components.Cluster;
1448
1466
  var GoogleMapMarkers = {
1449
1467
  name: 'GoogleMapMarkers',
1450
1468
  props: {
1451
1469
  resultsToRender: VueTypes.array,
1452
1470
  getPosition: VueTypes.func,
1453
1471
  renderItem: VueTypes.func,
1472
+ renderClusterPopover: VueTypes.func,
1454
1473
  defaultPin: VueTypes.string,
1455
1474
  autoClosePopover: VueTypes.bool,
1456
1475
  handlePreserveCenter: VueTypes.func,
1457
1476
  renderPopover: VueTypes.func,
1458
1477
  markerProps: VueTypes.object,
1459
- showMarkerClusters: VueTypes.bool
1478
+ clusterProps: VueTypes.object,
1479
+ showMarkerClusters: VueTypes.bool,
1480
+ highlightMarkerOnHover: VueTypes.bool
1460
1481
  },
1461
1482
  data: function data() {
1462
1483
  return {
1463
- markerOnTop: null,
1464
- openMarkers: {}
1484
+ openMarkers: {},
1485
+ clickedCluster: null,
1486
+ clusterMarkers: []
1465
1487
  };
1466
1488
  },
1467
1489
  methods: {
1468
- setMarkerOnTop: function setMarkerOnTop(markerOnTop) {
1469
- this.markerOnTop = markerOnTop;
1470
- },
1471
1490
  setOpenMarkers: function setOpenMarkers(openMarkers) {
1472
1491
  this.openMarkers = openMarkers;
1492
+ },
1493
+ getAdditionalProps: function getAdditionalProps() {
1494
+ return {
1495
+ position: {
1496
+ lat: this.clickedCluster.getCenter().lat(),
1497
+ lng: this.clickedCluster.getCenter().lng()
1498
+ },
1499
+ defaultOptions: {
1500
+ pixelOffset: new window.google.maps.Size(0, -30)
1501
+ }
1502
+ };
1503
+ },
1504
+ closeMarker: function closeMarker() {
1505
+ this.clickedCluster = null;
1506
+ this.clusterMarkers = [];
1507
+ this.$emit('close-cluster-popover');
1473
1508
  }
1474
1509
  },
1475
1510
  render: function render() {
1511
+ var _this = this;
1512
+
1476
1513
  var h = arguments[0];
1477
1514
  var resultsToRender = this.$props.resultsToRender;
1478
- var markerOnTop = this.markerOnTop,
1479
- openMarkers = this.openMarkers;
1515
+ var openMarkers = this.openMarkers;
1480
1516
  var markerProps = {
1481
- markerOnTop: markerOnTop,
1482
1517
  openMarkers: openMarkers,
1483
1518
  setMarkerOnTop: this.setMarkerOnTop,
1484
1519
  setOpenMarkers: this.setOpenMarkers,
@@ -1489,19 +1524,58 @@ var GoogleMapMarkers = {
1489
1524
  handlePreserveCenter: this.handlePreserveCenter,
1490
1525
  renderPopover: this.renderPopover,
1491
1526
  markerProps: this.markerProps,
1492
- showMarkerClusters: this.showMarkerClusters
1527
+ showMarkerClusters: this.showMarkerClusters,
1528
+ highlightMarkerOnHover: this.highlightMarkerOnHover
1493
1529
  };
1494
1530
 
1495
1531
  if (this.showMarkerClusters) {
1496
- return h(GmapCluster, [resultsToRender.map(function (marker, index) {
1532
+ return h("div", [h(Cluster, {
1533
+ "props": _rollupPluginBabelHelpers._extends({}, this.clusterProps),
1534
+ "on": {
1535
+ "click": function click(cluster) {
1536
+ var markers = cluster.markers.map(function (i) {
1537
+ return i.metaData;
1538
+ });
1539
+ _this.clickedCluster = cluster;
1540
+ _this.clusterMarkers = markers;
1541
+
1542
+ _this.$emit('open-cluster-popover', _this.clusterMarkers);
1543
+ }
1544
+ },
1545
+ "ref": "clusterRef"
1546
+ }, [resultsToRender.map(function (marker, index) {
1497
1547
  return h(GoogleMapMarker$1, {
1498
1548
  "attrs": {
1499
1549
  "index": index,
1500
1550
  "marker": marker
1501
1551
  },
1502
- "props": _rollupPluginBabelHelpers._extends({}, markerProps)
1552
+ "props": _rollupPluginBabelHelpers._extends({}, markerProps),
1553
+ "on": _rollupPluginBabelHelpers._extends({}, _this.$listeners)
1503
1554
  });
1504
- })]);
1555
+ })]), this.clickedCluster && this.renderClusterPopover ? h(InfoWindowWrapper, {
1556
+ "attrs": {
1557
+ "id": "cluster",
1558
+ "infoWindowProps": {
1559
+ zIndex: 500,
1560
+ position: this.getAdditionalProps().position,
1561
+ options: this.getAdditionalProps().defaultOptions
1562
+ },
1563
+ "renderPopover": function renderPopover(_handleClose) {
1564
+ return _this.renderClusterPopover({
1565
+ markers: _this.clusterMarkers,
1566
+ cluster: _this.clickedCluster,
1567
+ handleClose: function handleClose() {
1568
+ _handleClose();
1569
+
1570
+ _this.closeMarker();
1571
+ }
1572
+ });
1573
+ },
1574
+ "events": {
1575
+ closeclick: this.closeMarker
1576
+ }
1577
+ }
1578
+ }) : null]);
1505
1579
  }
1506
1580
 
1507
1581
  return h("div", [resultsToRender.map(function (marker, index) {
@@ -1510,32 +1584,36 @@ var GoogleMapMarkers = {
1510
1584
  "index": index,
1511
1585
  "marker": marker
1512
1586
  },
1513
- "props": _rollupPluginBabelHelpers._extends({}, markerProps)
1587
+ "props": _rollupPluginBabelHelpers._extends({}, markerProps),
1588
+ "on": _rollupPluginBabelHelpers._extends({}, _this.$listeners)
1514
1589
  });
1515
1590
  })]);
1516
1591
  }
1517
1592
  };
1518
1593
 
1594
+ var Map = GmapVue.components.MapLayer;
1519
1595
  var ReactiveGoogleMap = {
1520
1596
  name: 'ReactiveGoogleMap',
1521
1597
  props: {
1522
1598
  className: vueTypes.types.string,
1523
1599
  componentId: vueTypes.types.stringRequired,
1524
1600
  dataField: vueTypes.types.stringRequired,
1525
- defaultQuery: vueTypes.types.func,
1601
+ defaultQuery: VueTypes.func,
1526
1602
  loader: vueTypes.types.title,
1527
1603
  defaultZoom: VueTypes.number.def(13),
1528
1604
  react: vueTypes.types.react,
1529
1605
  size: vueTypes.types.number,
1530
1606
  sortBy: vueTypes.types.sortBy,
1531
- URLParams: vueTypes.types.bool,
1607
+ URLParams: VueTypes.bool,
1532
1608
  mapProps: VueTypes.object,
1533
1609
  showMarkers: VueTypes.bool.def(true),
1534
1610
  showMarkerClusters: VueTypes.bool.def(false),
1535
1611
  searchAsMove: VueTypes.bool.def(false),
1536
- markerProps: vueTypes.types.props,
1612
+ searchAsMoveLabel: VueTypes.string,
1613
+ markerProps: VueTypes.object,
1614
+ clusterProps: VueTypes.object,
1537
1615
  renderItem: VueTypes.func,
1538
- showSearchAsMove: vueTypes.types.bool.def(true),
1616
+ showSearchAsMove: VueTypes.bool.def(true),
1539
1617
  autoClosePopover: VueTypes.bool,
1540
1618
  pagination: VueTypes.bool,
1541
1619
  defaultPin: VueTypes.string,
@@ -1545,7 +1623,8 @@ var ReactiveGoogleMap = {
1545
1623
  defaultRadius: vueTypes.types.number,
1546
1624
  unit: vueTypes.types.string,
1547
1625
  pages: VueTypes.number.def(5),
1548
- calculateMarkers: VueTypes.func
1626
+ calculateMarkers: VueTypes.func,
1627
+ highlightMarkerOnHover: VueTypes.bool.def(true)
1549
1628
  },
1550
1629
  methods: {
1551
1630
  renderMap: function renderMap(_ref) {
@@ -1560,9 +1639,7 @@ var ReactiveGoogleMap = {
1560
1639
  renderSearchAsMove = _ref.renderSearchAsMove,
1561
1640
  handlePreserveCenter = _ref.handlePreserveCenter,
1562
1641
  getPosition = _ref.getPosition,
1563
- markerProps = _ref.markerProps,
1564
1642
  autoClosePopover = _ref.autoClosePopover,
1565
- renderPopover = _ref.renderPopover,
1566
1643
  defaultPin = _ref.defaultPin;
1567
1644
  var h = this.$createElement;
1568
1645
  var style = {
@@ -1595,8 +1672,10 @@ var ReactiveGoogleMap = {
1595
1672
  "attrs": {
1596
1673
  "resultsToRender": resultsToRender,
1597
1674
  "getPosition": getPosition,
1598
- "markerProps": markerProps,
1675
+ "markerProps": this.markerProps,
1676
+ "clusterProps": this.clusterProps,
1599
1677
  "handlePreserveCenter": handlePreserveCenter,
1678
+ "highlightMarkerOnHover": this.highlightMarkerOnHover,
1600
1679
  "renderItem": this.$scopedSlots.renderItem ? function () {
1601
1680
  return {
1602
1681
  custom: _this.$scopedSlots.renderItem
@@ -1604,9 +1683,11 @@ var ReactiveGoogleMap = {
1604
1683
  } : this.renderItem,
1605
1684
  "defaultPin": defaultPin,
1606
1685
  "autoClosePopover": autoClosePopover,
1607
- "renderPopover": renderPopover,
1686
+ "renderPopover": this.$scopedSlots.renderPopover,
1687
+ "renderClusterPopover": this.$scopedSlots.renderClusterPopover,
1608
1688
  "showMarkerClusters": this.showMarkerClusters
1609
- }
1689
+ },
1690
+ "on": _rollupPluginBabelHelpers._extends({}, this.$listeners)
1610
1691
  }) : null]), renderSearchAsMove()]);
1611
1692
  },
1612
1693
  getMapRef: function getMapRef() {
@@ -1623,8 +1704,6 @@ var ReactiveGoogleMap = {
1623
1704
  }
1624
1705
  },
1625
1706
  render: function render() {
1626
- var _this3 = this;
1627
-
1628
1707
  var h = arguments[0];
1629
1708
  return h(RMConnected, _mergeJSXProps([{
1630
1709
  "attrs": {
@@ -1641,14 +1720,12 @@ var ReactiveGoogleMap = {
1641
1720
  "uRLParams": this.URLParams,
1642
1721
  "defaultSearchAsMove": this.searchAsMove,
1643
1722
  "showSearchAsMove": this.showSearchAsMove,
1723
+ "searchAsMoveLabel": this.searchAsMoveLabel,
1644
1724
  "showMarkers": this.showMarkers,
1645
1725
  "markerProps": this.markerProps,
1646
1726
  "autoClosePopover": this.autoClosePopover,
1647
1727
  "defaultPin": this.defaultPin,
1648
1728
  "defaultQuery": this.defaultQuery,
1649
- "renderPopover": this.$scopedSlots.renderPopover ? function (item) {
1650
- return _this3.$scopedSlots.renderPopover(item);
1651
- } : null,
1652
1729
  "autoCenter": this.autoCenter,
1653
1730
  "defaultCenter": this.defaultCenter,
1654
1731
  "defaultRadius": this.defaultRadius,
@@ -1672,7 +1749,7 @@ ReactiveGoogleMap.install = function (Vue, options) {
1672
1749
  console.error('ReactiveSearch: map key is required to use ReactiveGoogleMap component');
1673
1750
  }
1674
1751
 
1675
- Vue.use(GmapMapFull, {
1752
+ Vue.use(GmapVue__default, {
1676
1753
  load: {
1677
1754
  key: options.key,
1678
1755
  libraries: 'places'