@appbaseio/reactivesearch-vue 1.33.2 → 1.33.4

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 (47) hide show
  1. package/dist/@appbaseio/reactivesearch-vue.umd.js +1091 -487
  2. package/dist/@appbaseio/reactivesearch-vue.umd.js.map +1 -1
  3. package/dist/@appbaseio/reactivesearch-vue.umd.min.js +7 -7
  4. package/dist/@appbaseio/reactivesearch-vue.umd.min.js.map +1 -1
  5. package/dist/cjs/{ComponentWrapper-9318cece.js → ComponentWrapper-b6d4660c.js} +13 -4
  6. package/dist/cjs/{DataSearch-99a6a2e8.js → DataSearch-2b5740ea.js} +11 -7
  7. package/dist/cjs/DataSearch.js +2 -2
  8. package/dist/cjs/MultiDropdownList.js +1 -1
  9. package/dist/cjs/MultiList.js +1 -1
  10. package/dist/cjs/MultiRange.js +8 -2
  11. package/dist/cjs/RangeInput.js +1 -1
  12. package/dist/cjs/RangeSlider.js +1 -1
  13. package/dist/cjs/ReactiveBase.js +35 -2
  14. package/dist/cjs/{ReactiveComponent-805201c6.js → ReactiveComponent-fd8d7403.js} +2 -2
  15. package/dist/cjs/ReactiveComponent.js +3 -3
  16. package/dist/cjs/ReactiveGoogleMap.js +1 -1
  17. package/dist/cjs/ReactiveList.js +1 -1
  18. package/dist/cjs/SingleDropdownList.js +1 -1
  19. package/dist/cjs/SingleList.js +1 -1
  20. package/dist/cjs/SingleRange.js +1 -1
  21. package/dist/cjs/StateProvider.js +22 -6
  22. package/dist/cjs/ToggleButton.js +1 -1
  23. package/dist/cjs/index.js +4 -4
  24. package/dist/cjs/install.js +4 -4
  25. package/dist/cjs/version.js +1 -1
  26. package/dist/es/{ComponentWrapper-240450cc.js → ComponentWrapper-8042aa35.js} +13 -4
  27. package/dist/es/{DataSearch-20f0d8f1.js → DataSearch-68d2a78c.js} +11 -7
  28. package/dist/es/DataSearch.js +2 -2
  29. package/dist/es/MultiDropdownList.js +1 -1
  30. package/dist/es/MultiList.js +1 -1
  31. package/dist/es/MultiRange.js +8 -2
  32. package/dist/es/RangeInput.js +1 -1
  33. package/dist/es/RangeSlider.js +1 -1
  34. package/dist/es/ReactiveBase.js +35 -2
  35. package/dist/es/{ReactiveComponent-dd85aa9c.js → ReactiveComponent-62fa87e0.js} +2 -2
  36. package/dist/es/ReactiveComponent.js +3 -3
  37. package/dist/es/ReactiveGoogleMap.js +1 -1
  38. package/dist/es/ReactiveList.js +1 -1
  39. package/dist/es/SingleDropdownList.js +1 -1
  40. package/dist/es/SingleList.js +1 -1
  41. package/dist/es/SingleRange.js +1 -1
  42. package/dist/es/StateProvider.js +23 -7
  43. package/dist/es/ToggleButton.js +1 -1
  44. package/dist/es/index.js +4 -4
  45. package/dist/es/install.js +4 -4
  46. package/dist/es/version.js +1 -1
  47. package/package.json +3 -2
@@ -40,8 +40,9 @@ var ComponentWrapper = function ComponentWrapper(component, options) {
40
40
  }
41
41
  return {
42
42
  name: 'ComponentWrapper',
43
+ $timestamp: null,
43
44
  props: {
44
- destroyOnUnmount: VueTypes.bool.def(false)
45
+ destroyOnUnmount: VueTypes.bool.def(true)
45
46
  },
46
47
  created: function created() {
47
48
  // clone the props for component it is needed because attrs gets changed on time
@@ -54,6 +55,7 @@ var ComponentWrapper = function ComponentWrapper(component, options) {
54
55
  this.componentProps = parsedProps;
55
56
  this.componentId = this.componentProps.componentId;
56
57
  this.react = this.componentProps.react;
58
+ this.$timestamp = new Date().getTime();
57
59
  },
58
60
  beforeMount: function beforeMount() {
59
61
  var _this = this;
@@ -100,10 +102,17 @@ var ComponentWrapper = function ComponentWrapper(component, options) {
100
102
  },
101
103
  beforeDestroy: function beforeDestroy() {
102
104
  if (this.destroyOnUnmount) {
105
+ var registeredComponentsTimestamps = {};
106
+ if (this.$$store) {
107
+ var _this$$$store$getStat2 = this.$$store.getState();
108
+ registeredComponentsTimestamps = _this$$$store$getStat2.registeredComponentsTimestamps;
109
+ }
103
110
  // Unregister components
104
- this.removeComponent(this.componentId);
105
- if (this.internalComponent) {
106
- this.removeComponent(this.internalComponent);
111
+ if (registeredComponentsTimestamps[this.componentId] === this.$timestamp) {
112
+ this.removeComponent(this.componentId);
113
+ if (this.internalComponent) {
114
+ this.removeComponent(this.internalComponent);
115
+ }
107
116
  }
108
117
  }
109
118
  },
@@ -12,7 +12,7 @@ var styled = require('@appbaseio/vue-emotion');
12
12
  var styled__default = _interopDefault(styled);
13
13
  var vueTypes = require('./vueTypes-7cfc2f98.js');
14
14
  var index = require('./index-30126fd0.js');
15
- var ComponentWrapper = require('./ComponentWrapper-9318cece.js');
15
+ var ComponentWrapper = require('./ComponentWrapper-b6d4660c.js');
16
16
  var PreferencesConsumer = require('./PreferencesConsumer-5d67b486.js');
17
17
  var Title = require('./Title-16042ea0.js');
18
18
  var Flex = require('./Flex-ddd7cb6b.js');
@@ -951,10 +951,11 @@ var DataSearch = {
951
951
  }
952
952
  }
953
953
  this.handleTextChange = debounce(this.handleText, this.$props.debounce);
954
+ this.updateDefaultQueryHandlerDebounced = debounce(this.updateDefaultQueryHandler, this.$props.debounce);
954
955
  // Set custom and default queries in store
955
956
  index.updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, this.currentValue);
956
957
  index.updateDefaultQuery(this.componentId, this.setDefaultQuery, this.$props, this.currentValue);
957
- this.updateDefaultQueryHandler(this.currentValue, this.$props, false);
958
+ this.updateDefaultQueryHandlerDebounced(this.currentValue, this.$props, false);
958
959
  },
959
960
  computed: {
960
961
  suggestionsList: function suggestionsList() {
@@ -1139,7 +1140,7 @@ var DataSearch = {
1139
1140
  },
1140
1141
  defaultQuery: function defaultQuery(newVal, oldVal) {
1141
1142
  if (!index.isQueryIdentical(newVal, oldVal, this.$data.currentValue, this.$props)) {
1142
- this.updateDefaultQueryHandler(this.$data.currentValue, this.$props);
1143
+ this.updateDefaultQueryHandlerDebounced(this.$data.currentValue, this.$props);
1143
1144
  }
1144
1145
  },
1145
1146
  customQuery: function customQuery(newVal, oldVal) {
@@ -1175,9 +1176,9 @@ var DataSearch = {
1175
1176
  methods: {
1176
1177
  handleText: function handleText(value) {
1177
1178
  if (this.$props.autosuggest) {
1178
- this.updateDefaultQueryHandler(value, this.$props);
1179
+ this.updateDefaultQueryHandlerDebounced(value, this.$props);
1179
1180
  } else {
1180
- this.updateQueryHandler(this.$props.componentId, value, this.$props);
1181
+ this.updateDefaultQueryHandlerDebounced(this.$props.componentId, value, this.$props);
1181
1182
  }
1182
1183
  },
1183
1184
  validateDataField: function validateDataField() {
@@ -1318,7 +1319,7 @@ var DataSearch = {
1318
1319
  if (toggleIsOpen) {
1319
1320
  _this.isOpen = false;
1320
1321
  }
1321
- if (typeof value === 'string') _this.updateDefaultQueryHandler(value, _this.$props);
1322
+ if (typeof value === 'string') _this.updateDefaultQueryHandlerDebounced(value, _this.$props);
1322
1323
  } // in case of strict selection only SUGGESTION_SELECT should be able
1323
1324
  // to set the query otherwise the value should reset
1324
1325
 
@@ -1352,6 +1353,9 @@ var DataSearch = {
1352
1353
  checkValueChange(props.componentId, value, props.beforeValueChange, performUpdate);
1353
1354
  },
1354
1355
  updateDefaultQueryHandler: function updateDefaultQueryHandler(value, props, execute) {
1356
+ if (props === void 0) {
1357
+ props = this.$props;
1358
+ }
1355
1359
  if (!value && props.enableDefaultSuggestions === false) {
1356
1360
  // clear Component data from store
1357
1361
  this.resetStoreForComponent(props.componentId);
@@ -1484,7 +1488,7 @@ var DataSearch = {
1484
1488
  if (_this2.$options.isTagsMode && autosuggest) {
1485
1489
  _this2.currentValue = value;
1486
1490
  _this2.isOpen = isOpen;
1487
- _this2.updateDefaultQueryHandler(_this2.currentValue, _this2.$props);
1491
+ _this2.updateDefaultQueryHandlerDebounced(_this2.currentValue, _this2.$props);
1488
1492
  return;
1489
1493
  }
1490
1494
  _this2.triggerQuery({
@@ -14,12 +14,12 @@ require('./vueTypes-7cfc2f98.js');
14
14
  require('@appbaseio/reactivecore/lib/utils/transform');
15
15
  require('redux');
16
16
  require('./index-30126fd0.js');
17
- require('./ComponentWrapper-9318cece.js');
17
+ require('./ComponentWrapper-b6d4660c.js');
18
18
  require('./PreferencesConsumer-5d67b486.js');
19
19
  require('./Title-16042ea0.js');
20
20
  require('./Flex-ddd7cb6b.js');
21
21
  require('hotkeys-js');
22
- var DataSearch = require('./DataSearch-99a6a2e8.js');
22
+ var DataSearch = require('./DataSearch-2b5740ea.js');
23
23
  require('./CancelSvg-220a7cc3.js');
24
24
  require('./Input-ead4cd84.js');
25
25
  require('compute-scroll-into-view');
@@ -17,7 +17,7 @@ var vueTypes = require('./vueTypes-7cfc2f98.js');
17
17
  require('@appbaseio/reactivecore/lib/utils/transform');
18
18
  require('redux');
19
19
  var index = require('./index-30126fd0.js');
20
- var ComponentWrapper = require('./ComponentWrapper-9318cece.js');
20
+ var ComponentWrapper = require('./ComponentWrapper-b6d4660c.js');
21
21
  var PreferencesConsumer = require('./PreferencesConsumer-5d67b486.js');
22
22
  require('@vue/babel-helper-vue-jsx-merge-props');
23
23
  var Title = require('./Title-16042ea0.js');
@@ -16,7 +16,7 @@ var vueTypes = require('./vueTypes-7cfc2f98.js');
16
16
  require('@appbaseio/reactivecore/lib/utils/transform');
17
17
  require('redux');
18
18
  var index = require('./index-30126fd0.js');
19
- var ComponentWrapper = require('./ComponentWrapper-9318cece.js');
19
+ var ComponentWrapper = require('./ComponentWrapper-b6d4660c.js');
20
20
  var PreferencesConsumer = require('./PreferencesConsumer-5d67b486.js');
21
21
  var Title = require('./Title-16042ea0.js');
22
22
  var Input = require('./Input-ead4cd84.js');
@@ -16,7 +16,7 @@ var vueTypes = require('./vueTypes-7cfc2f98.js');
16
16
  require('@appbaseio/reactivecore/lib/utils/transform');
17
17
  require('redux');
18
18
  var index = require('./index-30126fd0.js');
19
- var ComponentWrapper = require('./ComponentWrapper-9318cece.js');
19
+ var ComponentWrapper = require('./ComponentWrapper-b6d4660c.js');
20
20
  var PreferencesConsumer = require('./PreferencesConsumer-5d67b486.js');
21
21
  var Title = require('./Title-16042ea0.js');
22
22
  var Container = require('./Container-e699ea95.js');
@@ -157,7 +157,13 @@ var MultiRange = {
157
157
  },
158
158
  selectedValue: function selectedValue(newVal) {
159
159
  if (!isEqual(this.$data.currentValue, newVal)) {
160
- this.selectItem(newVal, true, undefined, true);
160
+ var processSelectedValues = newVal ? newVal.map(function (item) {
161
+ if (typeof item === 'object' && 'label' in item) {
162
+ return item.label;
163
+ }
164
+ return item;
165
+ }) : null;
166
+ this.selectItem(processSelectedValues, true, undefined, true);
161
167
  }
162
168
  },
163
169
  customQuery: function customQuery(newVal, oldVal) {
@@ -17,7 +17,7 @@ var vueTypes = require('./vueTypes-7cfc2f98.js');
17
17
  require('@appbaseio/reactivecore/lib/utils/transform');
18
18
  require('redux');
19
19
  var index = require('./index-30126fd0.js');
20
- var ComponentWrapper = require('./ComponentWrapper-9318cece.js');
20
+ var ComponentWrapper = require('./ComponentWrapper-b6d4660c.js');
21
21
  var PreferencesConsumer = require('./PreferencesConsumer-5d67b486.js');
22
22
  require('./Title-16042ea0.js');
23
23
  var Flex = require('./Flex-ddd7cb6b.js');
@@ -14,7 +14,7 @@ var vueTypes = require('./vueTypes-7cfc2f98.js');
14
14
  require('@appbaseio/reactivecore/lib/utils/transform');
15
15
  require('redux');
16
16
  var index = require('./index-30126fd0.js');
17
- var ComponentWrapper = require('./ComponentWrapper-9318cece.js');
17
+ var ComponentWrapper = require('./ComponentWrapper-b6d4660c.js');
18
18
  var PreferencesConsumer = require('./PreferencesConsumer-5d67b486.js');
19
19
  var Title = require('./Title-16042ea0.js');
20
20
  var Container = require('./Container-e699ea95.js');
@@ -18,6 +18,7 @@ var index = require('./index-30126fd0.js');
18
18
  var _mergeJSXProps = _interopDefault(require('@vue/babel-helper-vue-jsx-merge-props'));
19
19
  var analytics = require('@appbaseio/reactivecore/lib/actions/analytics');
20
20
  var Appbase = _interopDefault(require('appbase-js'));
21
+ var AppbaseAnalytics = _interopDefault(require('@appbaseio/analytics'));
21
22
  require('url-search-params-polyfill');
22
23
 
23
24
  var Provider = {
@@ -32,11 +33,16 @@ var Provider = {
32
33
  }
33
34
  return true;
34
35
  }
36
+ },
37
+ analyticsRef: {
38
+ type: Object,
39
+ required: false
35
40
  }
36
41
  },
37
42
  provide: function provide() {
38
43
  return {
39
- $$store: this.store
44
+ $$store: this.store,
45
+ $analytics: this.analyticsRef
40
46
  };
41
47
  },
42
48
  render: function render(h) {
@@ -485,6 +491,30 @@ var ReactiveBase = {
485
491
  if (this.$props.transformResponse) {
486
492
  appbaseRef.transformResponse = this.$props.transformResponse;
487
493
  }
494
+ var analyticsInitConfig = {
495
+ url: url && url.replace(/\/\/.*@/, '//'),
496
+ credentials: appbaseRef.credentials,
497
+ // When endpoint prop is used index is not defined, so we use _default
498
+ index: appbaseRef.app || '_default',
499
+ globalCustomEvents: this.$props.appbaseConfig && this.$props.appbaseConfig.customEvents
500
+ };
501
+ try {
502
+ if (this.$props.endpoint && this.$props.endpoint.url) {
503
+ // Remove parts between '//' and first '/' in the url
504
+ analyticsInitConfig.url = this.$props.endpoint.url.replace(/\/\/(.*?)\/.*/, '//$1');
505
+ var headerCredentials = this.$props.endpoint.headers && this.$props.endpoint.headers.Authorization;
506
+ analyticsInitConfig.credentials = headerCredentials && headerCredentials.replace('Basic ', '');
507
+ // Decode the credentials
508
+ analyticsInitConfig.credentials = analyticsInitConfig.credentials && atob(analyticsInitConfig.credentials);
509
+ }
510
+ } catch (e) {
511
+ console.error('Endpoint not set correctly for analytics');
512
+ console.error(e);
513
+ }
514
+ var analyticsRef = null;
515
+ if (config.analytics) {
516
+ analyticsRef = AppbaseAnalytics.init(analyticsInitConfig);
517
+ }
488
518
  var initialState = _rollupPluginBabelHelpers._extends({
489
519
  config: _rollupPluginBabelHelpers._extends({}, config, {
490
520
  initialQueriesSyncTime: props.initialQueriesSyncTime,
@@ -493,11 +523,13 @@ var ReactiveBase = {
493
523
  themePreset: themePreset
494
524
  }),
495
525
  appbaseRef: appbaseRef,
526
+ analyticsRef: analyticsRef,
496
527
  selectedValues: selectedValues,
497
528
  urlValues: urlValues,
498
529
  headers: this.getHeaders
499
530
  }, this.$props.initialState);
500
531
  this.store = configureStore__default(initialState);
532
+ this.analyticsRef = analyticsRef;
501
533
  }
502
534
  },
503
535
  render: function render() {
@@ -508,7 +540,8 @@ var ReactiveBase = {
508
540
  className = _this$$props2.className;
509
541
  return h(Provider, {
510
542
  "attrs": {
511
- "store": this.store
543
+ "store": this.store,
544
+ "analyticsRef": this.analyticsRef
512
545
  }
513
546
  }, [h(URLParamsProvider$1, {
514
547
  "attrs": {
@@ -14,11 +14,11 @@ var Button = require('./Button-841fd06d.js');
14
14
  var vueTypes = require('./vueTypes-7cfc2f98.js');
15
15
  var ReactiveList = require('./ReactiveList.js');
16
16
  var index = require('./index-30126fd0.js');
17
- var ComponentWrapper = require('./ComponentWrapper-9318cece.js');
17
+ var ComponentWrapper = require('./ComponentWrapper-b6d4660c.js');
18
18
  var PreferencesConsumer = require('./PreferencesConsumer-5d67b486.js');
19
19
  var Title = require('./Title-16042ea0.js');
20
20
  var hotkeys = _interopDefault(require('hotkeys-js'));
21
- var DataSearch = require('./DataSearch-99a6a2e8.js');
21
+ var DataSearch = require('./DataSearch-2b5740ea.js');
22
22
  var CancelSvg = require('./CancelSvg-220a7cc3.js');
23
23
  var Input = require('./Input-ead4cd84.js');
24
24
  var Container = require('./Container-e699ea95.js');
@@ -17,7 +17,7 @@ require('./ReactiveList.js');
17
17
  require('@appbaseio/reactivecore/lib/utils/transform');
18
18
  require('redux');
19
19
  require('./index-30126fd0.js');
20
- require('./ComponentWrapper-9318cece.js');
20
+ require('./ComponentWrapper-b6d4660c.js');
21
21
  require('./PreferencesConsumer-5d67b486.js');
22
22
  require('@vue/babel-helper-vue-jsx-merge-props');
23
23
  require('./Title-16042ea0.js');
@@ -25,13 +25,13 @@ require('./ListItem-5088bd6a.js');
25
25
  require('./Card-240f283d.js');
26
26
  require('./Flex-ddd7cb6b.js');
27
27
  require('hotkeys-js');
28
- require('./DataSearch-99a6a2e8.js');
28
+ require('./DataSearch-2b5740ea.js');
29
29
  require('./CancelSvg-220a7cc3.js');
30
30
  require('./Input-ead4cd84.js');
31
31
  require('compute-scroll-into-view');
32
32
  require('./Container-e699ea95.js');
33
33
  require('vue-highlight-words');
34
- var ReactiveComponent = require('./ReactiveComponent-805201c6.js');
34
+ var ReactiveComponent = require('./ReactiveComponent-fd8d7403.js');
35
35
  require('@appbaseio/reactivecore/lib/utils/suggestions');
36
36
  require('./FormControlList-bbb5cd24.js');
37
37
  require('./utils-83fd01e9.js');
@@ -19,7 +19,7 @@ var Pagination = require('./Pagination-07f4dbad.js');
19
19
  require('@appbaseio/reactivecore/lib/utils/transform');
20
20
  require('redux');
21
21
  var index = require('./index-30126fd0.js');
22
- var ComponentWrapper = require('./ComponentWrapper-9318cece.js');
22
+ var ComponentWrapper = require('./ComponentWrapper-b6d4660c.js');
23
23
  var PreferencesConsumer = require('./PreferencesConsumer-5d67b486.js');
24
24
  var _mergeJSXProps = _interopDefault(require('@vue/babel-helper-vue-jsx-merge-props'));
25
25
  var FormControlList = require('./FormControlList-bbb5cd24.js');
@@ -20,7 +20,7 @@ var Pagination = require('./Pagination-07f4dbad.js');
20
20
  require('@appbaseio/reactivecore/lib/utils/transform');
21
21
  require('redux');
22
22
  var index = require('./index-30126fd0.js');
23
- var ComponentWrapper = require('./ComponentWrapper-9318cece.js');
23
+ var ComponentWrapper = require('./ComponentWrapper-b6d4660c.js');
24
24
  var PreferencesConsumer = require('./PreferencesConsumer-5d67b486.js');
25
25
  var _mergeJSXProps = _interopDefault(require('@vue/babel-helper-vue-jsx-merge-props'));
26
26
  require('./Title-16042ea0.js');
@@ -17,7 +17,7 @@ var vueTypes = require('./vueTypes-7cfc2f98.js');
17
17
  require('@appbaseio/reactivecore/lib/utils/transform');
18
18
  require('redux');
19
19
  var index = require('./index-30126fd0.js');
20
- var ComponentWrapper = require('./ComponentWrapper-9318cece.js');
20
+ var ComponentWrapper = require('./ComponentWrapper-b6d4660c.js');
21
21
  var PreferencesConsumer = require('./PreferencesConsumer-5d67b486.js');
22
22
  require('@vue/babel-helper-vue-jsx-merge-props');
23
23
  var Title = require('./Title-16042ea0.js');
@@ -16,7 +16,7 @@ var vueTypes = require('./vueTypes-7cfc2f98.js');
16
16
  require('@appbaseio/reactivecore/lib/utils/transform');
17
17
  require('redux');
18
18
  var index = require('./index-30126fd0.js');
19
- var ComponentWrapper = require('./ComponentWrapper-9318cece.js');
19
+ var ComponentWrapper = require('./ComponentWrapper-b6d4660c.js');
20
20
  var PreferencesConsumer = require('./PreferencesConsumer-5d67b486.js');
21
21
  var Title = require('./Title-16042ea0.js');
22
22
  var Input = require('./Input-ead4cd84.js');
@@ -16,7 +16,7 @@ var vueTypes = require('./vueTypes-7cfc2f98.js');
16
16
  require('@appbaseio/reactivecore/lib/utils/transform');
17
17
  require('redux');
18
18
  var index = require('./index-30126fd0.js');
19
- var ComponentWrapper = require('./ComponentWrapper-9318cece.js');
19
+ var ComponentWrapper = require('./ComponentWrapper-b6d4660c.js');
20
20
  var PreferencesConsumer = require('./PreferencesConsumer-5d67b486.js');
21
21
  var Title = require('./Title-16042ea0.js');
22
22
  var Container = require('./Container-e699ea95.js');
@@ -12,8 +12,8 @@ var VueTypes = _interopDefault(require('vue-types'));
12
12
  var transform = require('@appbaseio/reactivecore/lib/utils/transform');
13
13
  require('redux');
14
14
  var index = require('./index-30126fd0.js');
15
- var value = require('@appbaseio/reactivecore/lib/actions/value');
16
15
 
16
+ var setSearchState = configureStore.Actions.setSearchState;
17
17
  var getSearchState = configureStore.helper.getSearchState;
18
18
  var defaultKeys = ['hits', 'value', 'aggregations', 'error'];
19
19
  var filterProps = function filterProps(props) {
@@ -24,6 +24,15 @@ var filterProps = function filterProps(props) {
24
24
  props: props.componentProps
25
25
  });
26
26
  };
27
+ var convertArrayLike = function convertArrayLike(arrayLike) {
28
+ var arr = [];
29
+ var i = 0;
30
+ while (arrayLike[i]) {
31
+ arr[i] = arrayLike[i];
32
+ i += 1;
33
+ }
34
+ return arr;
35
+ };
27
36
  var filterByComponentIds = function filterByComponentIds(state, props) {
28
37
  if (props === void 0) {
29
38
  props = {};
@@ -185,21 +194,28 @@ var StateProvider = {
185
194
  }
186
195
  },
187
196
  setSearchState: function setSearchState(valuesMap) {
197
+ var _this = this;
188
198
  if (valuesMap === void 0) {
189
199
  valuesMap = {};
190
200
  }
191
201
  var components = this.components;
192
202
  var computedValuesMap = {};
193
- components.filter(function (component) {
203
+ convertArrayLike(components).filter(function (component) {
194
204
  return !transform.isInternalComponent(component);
195
205
  }).forEach(function (component) {
196
206
  if (component in valuesMap) {
197
- computedValuesMap[component] = valuesMap[component];
207
+ computedValuesMap[component] = {
208
+ value: valuesMap[component],
209
+ componentProps: _this.componentProps[component]
210
+ };
198
211
  } else {
199
- computedValuesMap[component] = null;
212
+ computedValuesMap[component] = {
213
+ value: null,
214
+ componentProps: _this.componentProps[component]
215
+ };
200
216
  }
201
217
  });
202
- this.setValues(computedValuesMap);
218
+ this.setSearchStateFn(computedValuesMap);
203
219
  }
204
220
  },
205
221
  render: function render() {
@@ -229,7 +245,7 @@ var mapStateToProps = function mapStateToProps(state, props) {
229
245
  };
230
246
  };
231
247
  var mapDispatchtoProps = {
232
- setValues: value.setValues
248
+ setSearchStateFn: setSearchState
233
249
  };
234
250
  var StateProviderConnected = index.connect(mapStateToProps, mapDispatchtoProps)(StateProvider);
235
251
  StateProvider.install = function (Vue) {
@@ -17,7 +17,7 @@ var vueTypes = require('./vueTypes-7cfc2f98.js');
17
17
  require('@appbaseio/reactivecore/lib/utils/transform');
18
18
  require('redux');
19
19
  var index = require('./index-30126fd0.js');
20
- var ComponentWrapper = require('./ComponentWrapper-9318cece.js');
20
+ var ComponentWrapper = require('./ComponentWrapper-b6d4660c.js');
21
21
  var PreferencesConsumer = require('./PreferencesConsumer-5d67b486.js');
22
22
  var Title = require('./Title-16042ea0.js');
23
23
  var Container = require('./Container-e699ea95.js');
package/dist/cjs/index.js CHANGED
@@ -17,7 +17,7 @@ var ReactiveList = require('./ReactiveList.js');
17
17
  require('@appbaseio/reactivecore/lib/utils/transform');
18
18
  require('redux');
19
19
  require('./index-30126fd0.js');
20
- require('./ComponentWrapper-9318cece.js');
20
+ require('./ComponentWrapper-b6d4660c.js');
21
21
  require('./PreferencesConsumer-5d67b486.js');
22
22
  require('@vue/babel-helper-vue-jsx-merge-props');
23
23
  require('./Title-16042ea0.js');
@@ -26,16 +26,17 @@ require('./Card-240f283d.js');
26
26
  require('./Flex-ddd7cb6b.js');
27
27
  require('@appbaseio/reactivecore/lib/actions/analytics');
28
28
  require('appbase-js');
29
+ require('@appbaseio/analytics');
29
30
  require('url-search-params-polyfill');
30
31
  var ReactiveBase = require('./ReactiveBase.js');
31
32
  require('hotkeys-js');
32
- var DataSearch = require('./DataSearch-99a6a2e8.js');
33
+ var DataSearch = require('./DataSearch-2b5740ea.js');
33
34
  require('./CancelSvg-220a7cc3.js');
34
35
  require('./Input-ead4cd84.js');
35
36
  require('compute-scroll-into-view');
36
37
  require('./Container-e699ea95.js');
37
38
  require('vue-highlight-words');
38
- var ReactiveComponent = require('./ReactiveComponent-805201c6.js');
39
+ var ReactiveComponent = require('./ReactiveComponent-fd8d7403.js');
39
40
  require('@appbaseio/reactivecore/lib/utils/suggestions');
40
41
  require('./FormControlList-bbb5cd24.js');
41
42
  require('./utils-83fd01e9.js');
@@ -55,7 +56,6 @@ var RangeInput = require('./RangeInput.js');
55
56
  var SelectedFilters = require('./SelectedFilters.js');
56
57
  var ResultCard = require('./ResultCard.js');
57
58
  var ResultList = require('./ResultList.js');
58
- require('@appbaseio/reactivecore/lib/actions/value');
59
59
  var StateProvider = require('./StateProvider.js');
60
60
  require('gmap-vue');
61
61
  require('ngeohash');
@@ -17,7 +17,7 @@ var ReactiveList = require('./ReactiveList.js');
17
17
  require('@appbaseio/reactivecore/lib/utils/transform');
18
18
  require('redux');
19
19
  require('./index-30126fd0.js');
20
- require('./ComponentWrapper-9318cece.js');
20
+ require('./ComponentWrapper-b6d4660c.js');
21
21
  require('./PreferencesConsumer-5d67b486.js');
22
22
  require('@vue/babel-helper-vue-jsx-merge-props');
23
23
  require('./Title-16042ea0.js');
@@ -26,16 +26,17 @@ require('./Card-240f283d.js');
26
26
  require('./Flex-ddd7cb6b.js');
27
27
  require('@appbaseio/reactivecore/lib/actions/analytics');
28
28
  require('appbase-js');
29
+ require('@appbaseio/analytics');
29
30
  require('url-search-params-polyfill');
30
31
  var ReactiveBase = require('./ReactiveBase.js');
31
32
  require('hotkeys-js');
32
- var DataSearch = require('./DataSearch-99a6a2e8.js');
33
+ var DataSearch = require('./DataSearch-2b5740ea.js');
33
34
  require('./CancelSvg-220a7cc3.js');
34
35
  require('./Input-ead4cd84.js');
35
36
  require('compute-scroll-into-view');
36
37
  require('./Container-e699ea95.js');
37
38
  require('vue-highlight-words');
38
- var ReactiveComponent = require('./ReactiveComponent-805201c6.js');
39
+ var ReactiveComponent = require('./ReactiveComponent-fd8d7403.js');
39
40
  require('@appbaseio/reactivecore/lib/utils/suggestions');
40
41
  require('./FormControlList-bbb5cd24.js');
41
42
  require('./utils-83fd01e9.js');
@@ -55,7 +56,6 @@ var RangeInput = require('./RangeInput.js');
55
56
  var SelectedFilters = require('./SelectedFilters.js');
56
57
  var ResultCard = require('./ResultCard.js');
57
58
  var ResultList = require('./ResultList.js');
58
- require('@appbaseio/reactivecore/lib/actions/value');
59
59
  var StateProvider = require('./StateProvider.js');
60
60
 
61
61
  var components = [ReactiveList.default, ResultCard.default, ResultList.default, ReactiveBase.default, DataSearch.DataSearch, ReactiveComponent.SearchBox, SingleList.default, MultiList.default, SingleRange.default, MultiRange.default, RangeSlider.default, DynamicRangeSlider.default, ReactiveComponent.ReactiveComponent, SelectedFilters.default, ToggleButton.default, SingleDropdownList.default, MultiDropdownList.default, StateProvider.default, RangeInput.default];
@@ -2,6 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var version = "1.33.2";
5
+ var version = "1.33.4";
6
6
 
7
7
  exports.default = version;
@@ -35,8 +35,9 @@ var ComponentWrapper = function ComponentWrapper(component, options) {
35
35
  }
36
36
  return {
37
37
  name: 'ComponentWrapper',
38
+ $timestamp: null,
38
39
  props: {
39
- destroyOnUnmount: VueTypes.bool.def(false)
40
+ destroyOnUnmount: VueTypes.bool.def(true)
40
41
  },
41
42
  created: function created() {
42
43
  // clone the props for component it is needed because attrs gets changed on time
@@ -49,6 +50,7 @@ var ComponentWrapper = function ComponentWrapper(component, options) {
49
50
  this.componentProps = parsedProps;
50
51
  this.componentId = this.componentProps.componentId;
51
52
  this.react = this.componentProps.react;
53
+ this.$timestamp = new Date().getTime();
52
54
  },
53
55
  beforeMount: function beforeMount() {
54
56
  var _this = this;
@@ -95,10 +97,17 @@ var ComponentWrapper = function ComponentWrapper(component, options) {
95
97
  },
96
98
  beforeDestroy: function beforeDestroy() {
97
99
  if (this.destroyOnUnmount) {
100
+ var registeredComponentsTimestamps = {};
101
+ if (this.$$store) {
102
+ var _this$$$store$getStat2 = this.$$store.getState();
103
+ registeredComponentsTimestamps = _this$$$store$getStat2.registeredComponentsTimestamps;
104
+ }
98
105
  // Unregister components
99
- this.removeComponent(this.componentId);
100
- if (this.internalComponent) {
101
- this.removeComponent(this.internalComponent);
106
+ if (registeredComponentsTimestamps[this.componentId] === this.$timestamp) {
107
+ this.removeComponent(this.componentId);
108
+ if (this.internalComponent) {
109
+ this.removeComponent(this.internalComponent);
110
+ }
102
111
  }
103
112
  }
104
113
  },
@@ -6,7 +6,7 @@ import { getQueryOptions } from '@appbaseio/reactivecore/lib/utils/helper';
6
6
  import styled, { css, cx, injectGlobal } from '@appbaseio/vue-emotion';
7
7
  import { t as types } from './vueTypes-8986b709.js';
8
8
  import { g as getComponent, h as hasCustomRenderer, f as updateCustomQuery, u as updateDefaultQuery, i as isQueryIdentical, j as getQuerySuggestionsComponent, a as isFunction, k as isEmpty, p as parseFocusShortcuts, l as extractModifierKeysFromFocusShortcuts, m as hasQuerySuggestionsRenderer, c as connect } from './index-0444a498.js';
9
- import { C as ComponentWrapper } from './ComponentWrapper-240450cc.js';
9
+ import { C as ComponentWrapper } from './ComponentWrapper-8042aa35.js';
10
10
  import { P as PreferencesConsumer } from './PreferencesConsumer-bc097ebb.js';
11
11
  import { T as Title } from './Title-863dfa42.js';
12
12
  import { F as Flex } from './Flex-7c177a10.js';
@@ -945,10 +945,11 @@ var DataSearch = {
945
945
  }
946
946
  }
947
947
  this.handleTextChange = debounce(this.handleText, this.$props.debounce);
948
+ this.updateDefaultQueryHandlerDebounced = debounce(this.updateDefaultQueryHandler, this.$props.debounce);
948
949
  // Set custom and default queries in store
949
950
  updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, this.currentValue);
950
951
  updateDefaultQuery(this.componentId, this.setDefaultQuery, this.$props, this.currentValue);
951
- this.updateDefaultQueryHandler(this.currentValue, this.$props, false);
952
+ this.updateDefaultQueryHandlerDebounced(this.currentValue, this.$props, false);
952
953
  },
953
954
  computed: {
954
955
  suggestionsList: function suggestionsList() {
@@ -1133,7 +1134,7 @@ var DataSearch = {
1133
1134
  },
1134
1135
  defaultQuery: function defaultQuery(newVal, oldVal) {
1135
1136
  if (!isQueryIdentical(newVal, oldVal, this.$data.currentValue, this.$props)) {
1136
- this.updateDefaultQueryHandler(this.$data.currentValue, this.$props);
1137
+ this.updateDefaultQueryHandlerDebounced(this.$data.currentValue, this.$props);
1137
1138
  }
1138
1139
  },
1139
1140
  customQuery: function customQuery(newVal, oldVal) {
@@ -1169,9 +1170,9 @@ var DataSearch = {
1169
1170
  methods: {
1170
1171
  handleText: function handleText(value) {
1171
1172
  if (this.$props.autosuggest) {
1172
- this.updateDefaultQueryHandler(value, this.$props);
1173
+ this.updateDefaultQueryHandlerDebounced(value, this.$props);
1173
1174
  } else {
1174
- this.updateQueryHandler(this.$props.componentId, value, this.$props);
1175
+ this.updateDefaultQueryHandlerDebounced(this.$props.componentId, value, this.$props);
1175
1176
  }
1176
1177
  },
1177
1178
  validateDataField: function validateDataField() {
@@ -1312,7 +1313,7 @@ var DataSearch = {
1312
1313
  if (toggleIsOpen) {
1313
1314
  _this.isOpen = false;
1314
1315
  }
1315
- if (typeof value === 'string') _this.updateDefaultQueryHandler(value, _this.$props);
1316
+ if (typeof value === 'string') _this.updateDefaultQueryHandlerDebounced(value, _this.$props);
1316
1317
  } // in case of strict selection only SUGGESTION_SELECT should be able
1317
1318
  // to set the query otherwise the value should reset
1318
1319
 
@@ -1346,6 +1347,9 @@ var DataSearch = {
1346
1347
  checkValueChange(props.componentId, value, props.beforeValueChange, performUpdate);
1347
1348
  },
1348
1349
  updateDefaultQueryHandler: function updateDefaultQueryHandler(value, props, execute) {
1350
+ if (props === void 0) {
1351
+ props = this.$props;
1352
+ }
1349
1353
  if (!value && props.enableDefaultSuggestions === false) {
1350
1354
  // clear Component data from store
1351
1355
  this.resetStoreForComponent(props.componentId);
@@ -1478,7 +1482,7 @@ var DataSearch = {
1478
1482
  if (_this2.$options.isTagsMode && autosuggest) {
1479
1483
  _this2.currentValue = value;
1480
1484
  _this2.isOpen = isOpen;
1481
- _this2.updateDefaultQueryHandler(_this2.currentValue, _this2.$props);
1485
+ _this2.updateDefaultQueryHandlerDebounced(_this2.currentValue, _this2.$props);
1482
1486
  return;
1483
1487
  }
1484
1488
  _this2.triggerQuery({