@appbaseio/reactivesearch-vue 1.24.2 → 1.26.0

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 (59) hide show
  1. package/dist/@appbaseio/reactivesearch-vue.umd.js +481 -279
  2. package/dist/@appbaseio/reactivesearch-vue.umd.js.map +1 -1
  3. package/dist/@appbaseio/reactivesearch-vue.umd.min.js +5 -5
  4. package/dist/@appbaseio/reactivesearch-vue.umd.min.js.map +1 -1
  5. package/dist/cjs/{DownShift-62e82255.js → CancelSvg-4aa35935.js} +58 -14
  6. package/dist/cjs/DataSearch.js +31 -82
  7. package/dist/cjs/{DropDown-6815b9b6.js → DropDown-cf9bfffc.js} +60 -23
  8. package/dist/cjs/DynamicRangeSlider.js +9 -6
  9. package/dist/cjs/MultiDropdownList.js +14 -7
  10. package/dist/cjs/MultiList.js +6 -5
  11. package/dist/cjs/MultiRange.js +2 -2
  12. package/dist/cjs/RangeInput.js +3 -3
  13. package/dist/cjs/RangeSlider.js +17 -20
  14. package/dist/cjs/ReactiveBase.js +5 -3
  15. package/dist/cjs/ReactiveComponent.js +12 -12
  16. package/dist/cjs/ReactiveList.js +54 -42
  17. package/dist/cjs/ResultCard.js +1 -1
  18. package/dist/cjs/ResultList.js +1 -1
  19. package/dist/cjs/SelectedFilters.js +7 -5
  20. package/dist/cjs/SingleDropdownList.js +14 -7
  21. package/dist/cjs/SingleList.js +7 -6
  22. package/dist/cjs/SingleRange.js +2 -2
  23. package/dist/cjs/StateProvider.js +6 -2
  24. package/dist/cjs/ToggleButton.js +3 -3
  25. package/dist/cjs/index.js +7 -4
  26. package/dist/cjs/initReactivesearch.js +31 -12
  27. package/dist/cjs/install.js +5 -4
  28. package/dist/cjs/ssr-0ee35a09.js +39 -0
  29. package/dist/cjs/version.js +1 -1
  30. package/dist/cjs/{vueTypes-4c19b4c8.js → vueTypes-57d01f18.js} +3 -3
  31. package/dist/es/{DownShift-3558d402.js → CancelSvg-c2c03a35.js} +55 -16
  32. package/dist/es/DataSearch.js +21 -72
  33. package/dist/es/{DropDown-035c804f.js → DropDown-c8da0a2c.js} +59 -22
  34. package/dist/es/DynamicRangeSlider.js +9 -6
  35. package/dist/es/MultiDropdownList.js +14 -7
  36. package/dist/es/MultiList.js +6 -5
  37. package/dist/es/MultiRange.js +2 -2
  38. package/dist/es/RangeInput.js +3 -3
  39. package/dist/es/RangeSlider.js +17 -20
  40. package/dist/es/ReactiveBase.js +5 -3
  41. package/dist/es/ReactiveComponent.js +12 -12
  42. package/dist/es/ReactiveList.js +54 -42
  43. package/dist/es/ResultCard.js +1 -1
  44. package/dist/es/ResultList.js +1 -1
  45. package/dist/es/SelectedFilters.js +7 -5
  46. package/dist/es/SingleDropdownList.js +14 -7
  47. package/dist/es/SingleList.js +7 -6
  48. package/dist/es/SingleRange.js +2 -2
  49. package/dist/es/StateProvider.js +6 -2
  50. package/dist/es/ToggleButton.js +3 -3
  51. package/dist/es/index.js +7 -4
  52. package/dist/es/initReactivesearch.js +31 -12
  53. package/dist/es/install.js +5 -4
  54. package/dist/es/ssr-a41dfea9.js +33 -0
  55. package/dist/es/version.js +1 -1
  56. package/dist/es/{vueTypes-fb61bb7b.js → vueTypes-687b2304.js} +3 -3
  57. package/package.json +3 -3
  58. package/dist/cjs/ssr-08e95ede.js +0 -39
  59. package/dist/es/ssr-5d255b08.js +0 -33
@@ -13,18 +13,19 @@ require('emotion');
13
13
  require('@appbaseio/vue-emotion');
14
14
  require('polished');
15
15
  var Button = require('./Button-11307285.js');
16
- var vueTypes = require('./vueTypes-4c19b4c8.js');
16
+ var vueTypes = require('./vueTypes-57d01f18.js');
17
17
  require('@appbaseio/reactivecore/lib/utils/transform');
18
18
  require('redux');
19
19
  var index = require('./index-89c39a9e.js');
20
20
  var ComponentWrapper = require('./ComponentWrapper-32481890.js');
21
21
  var Title = require('./Title-584a8cc8.js');
22
+ require('./CancelSvg-4aa35935.js');
22
23
  require('./Input-3cc3fa59.js');
23
24
  require('compute-scroll-into-view');
24
- require('./DownShift-62e82255.js');
25
25
  var Container = require('./Container-526efa6a.js');
26
+ require('@appbaseio/reactivecore/lib/utils/suggestions');
26
27
  var utils = require('./utils-1219e1fe.js');
27
- var DropDown = require('./DropDown-6815b9b6.js');
28
+ var DropDown = require('./DropDown-cf9bfffc.js');
28
29
 
29
30
  var updateQuery = configureStore.Actions.updateQuery,
30
31
  setQueryOptions = configureStore.Actions.setQueryOptions,
@@ -81,10 +82,12 @@ var MultiDropdownList = {
81
82
  showMissing: VueTypes.bool.def(false),
82
83
  missingLabel: VueTypes.string.def('N/A'),
83
84
  showSearch: VueTypes.bool.def(false),
85
+ showClear: VueTypes.bool.def(false),
84
86
  showLoadMore: VueTypes.bool.def(false),
85
87
  loadMoreLabel: VueTypes.oneOfType([VueTypes.string, VueTypes.any]).def('Load More'),
86
88
  nestedField: vueTypes.types.string,
87
- index: VueTypes.string
89
+ index: VueTypes.string,
90
+ searchPlaceholder: VueTypes.string.def('Type here to search...')
88
91
  },
89
92
  created: function created() {
90
93
  if (!this.enableAppbase && this.$props.index) {
@@ -212,7 +215,9 @@ var MultiDropdownList = {
212
215
  if (!this.hasCustomRenderer && this.$data.modifiedOptions.length === 0 && !this.isLoading) {
213
216
  if (renderNoResults && index.isFunction(renderNoResults)) {
214
217
  return h("div", [renderNoResults()]);
215
- } else if (renderNoResults && !index.isFunction(renderNoResults)) {
218
+ }
219
+
220
+ if (renderNoResults && !index.isFunction(renderNoResults)) {
216
221
  return renderNoResults;
217
222
  }
218
223
 
@@ -251,6 +256,8 @@ var MultiDropdownList = {
251
256
  "renderItem": renderItemCalc,
252
257
  "renderNoResults": this.$scopedSlots.renderNoResults || this.$props.renderNoResults,
253
258
  "showSearch": this.$props.showSearch,
259
+ "showClear": this.$props.showClear,
260
+ "searchPlaceholder": this.$props.searchPlaceholder,
254
261
  "transformData": this.$props.transformData,
255
262
  "footer": showLoadMore && !isLastBucket && h("div", {
256
263
  "attrs": {
@@ -369,7 +376,7 @@ var MultiDropdownList = {
369
376
  index.updateDefaultQuery(props.componentId, this.setDefaultQuery, props, value);
370
377
  }
371
378
 
372
- this.setQueryOptions(this.internalComponent, defaultQueryOptions);
379
+ this.setQueryOptions(this.internalComponent, defaultQueryOptions, false);
373
380
  this.updateQuery({
374
381
  componentId: this.internalComponent,
375
382
  query: query,
@@ -390,7 +397,7 @@ var MultiDropdownList = {
390
397
  index.updateCustomQuery(props.componentId, this.setCustomQuery, props, value);
391
398
  }
392
399
 
393
- this.setQueryOptions(props.componentId, customQueryOptions);
400
+ this.setQueryOptions(props.componentId, customQueryOptions, false);
394
401
  this.updateQuery({
395
402
  componentId: props.componentId,
396
403
  query: query,
@@ -12,7 +12,7 @@ var constants = require('@appbaseio/reactivecore/lib/utils/constants');
12
12
  require('emotion');
13
13
  require('@appbaseio/vue-emotion');
14
14
  require('polished');
15
- var vueTypes = require('./vueTypes-4c19b4c8.js');
15
+ var vueTypes = require('./vueTypes-57d01f18.js');
16
16
  require('@appbaseio/reactivecore/lib/utils/transform');
17
17
  require('redux');
18
18
  var index = require('./index-89c39a9e.js');
@@ -20,6 +20,7 @@ var ComponentWrapper = require('./ComponentWrapper-32481890.js');
20
20
  var Title = require('./Title-584a8cc8.js');
21
21
  var Input = require('./Input-3cc3fa59.js');
22
22
  var Container = require('./Container-526efa6a.js');
23
+ var suggestions = require('@appbaseio/reactivecore/lib/utils/suggestions');
23
24
  var FormControlList = require('./FormControlList-808dbcef.js');
24
25
  var utils = require('./utils-1219e1fe.js');
25
26
 
@@ -40,7 +41,7 @@ var MultiList = {
40
41
  queryFormat: VueTypes.oneOf(['and', 'or']).def('or'),
41
42
  showCheckbox: VueTypes.bool.def(true),
42
43
  beforeValueChange: vueTypes.types.func,
43
- className: vueTypes.types.string.def(''),
44
+ className: VueTypes.string.def(''),
44
45
  componentId: vueTypes.types.stringRequired,
45
46
  customQuery: vueTypes.types.func,
46
47
  dataField: vueTypes.types.stringRequired,
@@ -187,7 +188,7 @@ var MultiList = {
187
188
  var filteredItemsToRender = itemsToRender.filter(function (item) {
188
189
  if (String(item.key).length) {
189
190
  if (_this2.$props.showSearch && _this2.$data.searchTerm) {
190
- return String(item.key).toLowerCase().includes(_this2.$data.searchTerm.toLowerCase());
191
+ return suggestions.replaceDiacritics(String(item.key)).toLowerCase().includes(suggestions.replaceDiacritics(_this2.$data.searchTerm).toLowerCase());
191
192
  }
192
193
 
193
194
  return true;
@@ -355,7 +356,7 @@ var MultiList = {
355
356
  index.updateDefaultQuery(props.componentId, this.setDefaultQuery, props, value);
356
357
  }
357
358
 
358
- this.setQueryOptions(this.internalComponent, defaultQueryOptions);
359
+ this.setQueryOptions(this.internalComponent, defaultQueryOptions, false);
359
360
  this.updateQuery({
360
361
  componentId: this.internalComponent,
361
362
  query: query,
@@ -376,7 +377,7 @@ var MultiList = {
376
377
  index.updateCustomQuery(props.componentId, this.setCustomQuery, props, value);
377
378
  }
378
379
 
379
- this.setQueryOptions(props.componentId, customQueryOptions);
380
+ this.setQueryOptions(props.componentId, customQueryOptions, false);
380
381
  this.updateQuery({
381
382
  componentId: props.componentId,
382
383
  query: query,
@@ -12,7 +12,7 @@ var constants = require('@appbaseio/reactivecore/lib/utils/constants');
12
12
  require('emotion');
13
13
  require('@appbaseio/vue-emotion');
14
14
  require('polished');
15
- var vueTypes = require('./vueTypes-4c19b4c8.js');
15
+ var vueTypes = require('./vueTypes-57d01f18.js');
16
16
  require('@appbaseio/reactivecore/lib/utils/transform');
17
17
  require('redux');
18
18
  var index = require('./index-89c39a9e.js');
@@ -148,7 +148,7 @@ var MultiRange = {
148
148
  index.updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, this.currentValue);
149
149
  }
150
150
 
151
- this.setQueryOptions(props.componentId, customQueryOptions);
151
+ this.setQueryOptions(props.componentId, customQueryOptions, false);
152
152
  this.updateQuery({
153
153
  componentId: props.componentId,
154
154
  query: query,
@@ -13,7 +13,7 @@ var emotion = require('emotion');
13
13
  var styled = require('@appbaseio/vue-emotion');
14
14
  var styled__default = _interopDefault(styled);
15
15
  require('polished');
16
- var vueTypes = require('./vueTypes-4c19b4c8.js');
16
+ var vueTypes = require('./vueTypes-57d01f18.js');
17
17
  require('@appbaseio/reactivecore/lib/utils/transform');
18
18
  require('redux');
19
19
  var index = require('./index-89c39a9e.js');
@@ -23,7 +23,7 @@ var Flex = require('./Flex-f146cdad.js');
23
23
  var Input = require('./Input-3cc3fa59.js');
24
24
  var Container = require('./Container-526efa6a.js');
25
25
  require('vue-no-ssr');
26
- require('./ssr-08e95ede.js');
26
+ require('./ssr-0ee35a09.js');
27
27
  var RangeSlider = require('./RangeSlider.js');
28
28
 
29
29
  var _templateObject, _templateObject2;
@@ -146,7 +146,7 @@ var RangeInput = {
146
146
  }
147
147
  },
148
148
  handleOnChange: function handleOnChange(value) {
149
- this.handleChange(value, 'change');
149
+ this.handleChange(value || this.$props.range, 'change');
150
150
  },
151
151
  handleValueChange: function handleValueChange(value) {
152
152
  this.handleChange(value, 'value-change');
@@ -10,7 +10,7 @@ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-f127c8b7.js
10
10
  var VueTypes = _interopDefault(require('vue-types'));
11
11
  var constants = require('@appbaseio/reactivecore/lib/utils/constants');
12
12
  require('@appbaseio/vue-emotion');
13
- var vueTypes = require('./vueTypes-4c19b4c8.js');
13
+ var vueTypes = require('./vueTypes-57d01f18.js');
14
14
  require('@appbaseio/reactivecore/lib/utils/transform');
15
15
  require('redux');
16
16
  var index = require('./index-89c39a9e.js');
@@ -18,7 +18,7 @@ var ComponentWrapper = require('./ComponentWrapper-32481890.js');
18
18
  var Title = require('./Title-584a8cc8.js');
19
19
  var Container = require('./Container-526efa6a.js');
20
20
  var NoSSR = _interopDefault(require('vue-no-ssr'));
21
- var ssr = require('./ssr-08e95ede.js');
21
+ var ssr = require('./ssr-0ee35a09.js');
22
22
 
23
23
  var updateQuery = configureStore.Actions.updateQuery,
24
24
  setQueryOptions = configureStore.Actions.setQueryOptions,
@@ -80,32 +80,28 @@ var RangeSlider = {
80
80
  });
81
81
  }
82
82
  },
83
- handleSlider: function handleSlider(values) {
84
- var _this = this;
85
-
86
- clearTimeout(this.handleSliderChange._tId);
87
- this.handleSliderChange._tId = setTimeout(function () {
88
- _this.handleSliderChange(values);
89
- }, 100);
83
+ handleSlider: function handleSlider() {
84
+ var sliderValues = this.$refs.slider.getValue();
85
+ this.handleSliderChange(sliderValues);
90
86
  },
91
87
  handleChange: function handleChange(currentValue, props) {
92
- var _this2 = this;
88
+ var _this = this;
93
89
 
94
90
  if (props === void 0) {
95
91
  props = this.$props;
96
92
  }
97
93
 
98
94
  var performUpdate = function performUpdate() {
99
- _this2.currentValue = currentValue;
95
+ _this.currentValue = currentValue;
100
96
 
101
- _this2.updateQueryHandler([currentValue[0], currentValue[1]], props);
97
+ _this.updateQueryHandler([currentValue[0], currentValue[1]], props);
102
98
 
103
- _this2.$emit('valueChange', {
99
+ _this.$emit('valueChange', {
104
100
  start: currentValue[0],
105
101
  end: currentValue[1]
106
102
  });
107
103
 
108
- _this2.$emit('value-change', {
104
+ _this.$emit('value-change', {
109
105
  start: currentValue[0],
110
106
  end: currentValue[1]
111
107
  });
@@ -137,7 +133,7 @@ var RangeSlider = {
137
133
  currentEnd = value[1]; // check if the slider is at its initial position
138
134
 
139
135
  var isInitialValue = currentStart === start && currentEnd === end;
140
- this.setQueryOptions(props.componentId, customQueryOptions);
136
+ this.setQueryOptions(props.componentId, customQueryOptions, false);
141
137
  this.updateQuery({
142
138
  componentId: props.componentId,
143
139
  query: query,
@@ -216,12 +212,13 @@ var RangeSlider = {
216
212
  "max": this.$props.range.end,
217
213
  "dotSize": 20,
218
214
  "height": 4,
219
- "enable-cross": false
215
+ "enable-cross": false,
216
+ "tooltip": "always"
217
+ },
218
+ "on": {
219
+ "drag-end": this.handleSlider
220
220
  },
221
- "props": _rollupPluginBabelHelpers._extends({}, this.$props.sliderOptions),
222
- "on": _rollupPluginBabelHelpers._extends({}, {
223
- input: this.handleSlider
224
- })
221
+ "props": _rollupPluginBabelHelpers._extends({}, this.$props.sliderOptions)
225
222
  }), this.$props.rangeLabels && h("div", {
226
223
  "class": "label-container"
227
224
  }, [h("label", {
@@ -12,7 +12,7 @@ require('@appbaseio/reactivecore/lib/utils/constants');
12
12
  var helper = require('@appbaseio/reactivecore/lib/utils/helper');
13
13
  var styled = require('@appbaseio/vue-emotion');
14
14
  var styled__default = _interopDefault(styled);
15
- var vueTypes = require('./vueTypes-4c19b4c8.js');
15
+ var vueTypes = require('./vueTypes-57d01f18.js');
16
16
  require('redux');
17
17
  var index = require('./index-89c39a9e.js');
18
18
  var _mergeJSXProps = _interopDefault(require('@vue/babel-helper-vue-jsx-merge-props'));
@@ -85,7 +85,7 @@ var URLParamsProvider = {
85
85
  headers: vueTypes.types.headers,
86
86
  getSearchParams: vueTypes.types.func,
87
87
  setSearchParams: vueTypes.types.func,
88
- as: vueTypes.types.string.def('div')
88
+ as: VueTypes.string.def('div')
89
89
  },
90
90
  mounted: function mounted() {
91
91
  var _this = this;
@@ -233,7 +233,9 @@ var URLParamsProvider = {
233
233
  return value.map(function (item) {
234
234
  return _this3.getValue(item);
235
235
  });
236
- } else if (value && typeof value === 'object') {
236
+ }
237
+
238
+ if (value && typeof value === 'object') {
237
239
  // TODO: support for NestedList
238
240
  if (value.location) return value;
239
241
  if (value.category) return value;
@@ -9,7 +9,7 @@ var configureStore__default = _interopDefault(configureStore);
9
9
  var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-f127c8b7.js');
10
10
  var VueTypes = _interopDefault(require('vue-types'));
11
11
  var constants = require('@appbaseio/reactivecore/lib/utils/constants');
12
- var vueTypes = require('./vueTypes-4c19b4c8.js');
12
+ var vueTypes = require('./vueTypes-57d01f18.js');
13
13
  require('@appbaseio/reactivecore/lib/utils/transform');
14
14
  require('redux');
15
15
  var index = require('./index-89c39a9e.js');
@@ -52,7 +52,7 @@ var ReactiveComponent = {
52
52
  this.internalComponent = null;
53
53
  this.$defaultQuery = null; // Set custom query in store
54
54
 
55
- index.updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, undefined);
55
+ index.updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, this.selectedValue);
56
56
  var customQuery = props.customQuery,
57
57
  componentId = props.componentId,
58
58
  filterLabel = props.filterLabel,
@@ -75,7 +75,7 @@ var ReactiveComponent = {
75
75
  }
76
76
 
77
77
  if (customQuery) {
78
- var calcCustomQuery = customQuery(props);
78
+ var calcCustomQuery = customQuery(this.selectedValue, props);
79
79
 
80
80
  var _ref = calcCustomQuery || {},
81
81
  query = _ref.query;
@@ -94,7 +94,7 @@ var ReactiveComponent = {
94
94
 
95
95
  this.updateQuery({
96
96
  componentId: componentId,
97
- queryToSet: queryToSet,
97
+ query: queryToSet,
98
98
  value: this.selectedValue || null,
99
99
  label: filterLabel,
100
100
  showFilter: showFilter,
@@ -145,8 +145,8 @@ var ReactiveComponent = {
145
145
  },
146
146
  beforeMount: function beforeMount() {
147
147
  if (this.internalComponent && this.$props.defaultQuery) {
148
- index.updateDefaultQuery(this.componentId, this.setDefaultQuery, this.$props, undefined);
149
- this.$defaultQuery = this.$props.defaultQuery();
148
+ index.updateDefaultQuery(this.componentId, this.setDefaultQuery, this.$props, this.selectedValue);
149
+ this.$defaultQuery = this.$props.defaultQuery(this.selectedValue, this.$props);
150
150
 
151
151
  var _ref3 = this.$defaultQuery || {},
152
152
  query = _ref3.query,
@@ -210,8 +210,8 @@ var ReactiveComponent = {
210
210
  }
211
211
  },
212
212
  defaultQuery: function defaultQuery(newVal, oldVal) {
213
- if (newVal && !index.isQueryIdentical(newVal, oldVal, undefined, this.$props)) {
214
- this.$defaultQuery = newVal();
213
+ if (newVal && !index.isQueryIdentical(newVal, oldVal, this.selectedValue, this.$props)) {
214
+ this.$defaultQuery = newVal(this.selectedValue, this.$props);
215
215
 
216
216
  var _ref4 = this.$defaultQuery || {},
217
217
  query = _ref4.query,
@@ -222,7 +222,7 @@ var ReactiveComponent = {
222
222
  } else this.setQueryOptions(this.internalComponent, this.getAggsQuery(), false); // Update default query for RS API
223
223
 
224
224
 
225
- index.updateDefaultQuery(this.componentId, this.setDefaultQuery, this.$props, undefined);
225
+ index.updateDefaultQuery(this.componentId, this.setDefaultQuery, this.$props, this.selectedValue);
226
226
  var queryToSet = query || null;
227
227
 
228
228
  if (!queryToSet && this.$defaultQuery && this.$defaultQuery.id) {
@@ -236,9 +236,9 @@ var ReactiveComponent = {
236
236
  }
237
237
  },
238
238
  customQuery: function customQuery(newVal, oldVal) {
239
- if (newVal && !index.isQueryIdentical(newVal, oldVal, undefined, this.$props)) {
239
+ if (newVal && !index.isQueryIdentical(newVal, oldVal, this.selectedValue, this.$props)) {
240
240
  var componentId = this.$props.componentId;
241
- this.$customQuery = newVal(this.$props);
241
+ this.$customQuery = newVal(this.selectedValue, this.$props);
242
242
 
243
243
  var _ref5 = this.$customQuery || {},
244
244
  query = _ref5.query,
@@ -249,7 +249,7 @@ var ReactiveComponent = {
249
249
  } else this.setQueryOptions(componentId, this.getAggsQuery(), false); // Update custom query for RS API
250
250
 
251
251
 
252
- index.updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, undefined);
252
+ index.updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, this.selectedValue);
253
253
  var queryToSet = query || null;
254
254
 
255
255
  if (this.$customQuery && this.$customQuery.id) {
@@ -15,7 +15,7 @@ var styled = require('@appbaseio/vue-emotion');
15
15
  var styled__default = _interopDefault(styled);
16
16
  require('polished');
17
17
  var Button = require('./Button-11307285.js');
18
- var vueTypes = require('./vueTypes-4c19b4c8.js');
18
+ var vueTypes = require('./vueTypes-57d01f18.js');
19
19
  require('@appbaseio/reactivecore/lib/utils/transform');
20
20
  require('redux');
21
21
  var index = require('./index-89c39a9e.js');
@@ -494,9 +494,14 @@ var ReactiveList = {
494
494
  }
495
495
 
496
496
  this.internalComponent = this.$props.componentId + "__internal";
497
- this.sortOptionIndex = this.defaultSortOption ? this.sortOptions.findIndex(function (s) {
498
- return s.label === _this.defaultSortOption;
499
- }) : 0;
497
+ this.sortOptionIndex = 0;
498
+
499
+ if (this.defaultSortOption && this.sortOptions && Array.isArray(this.sortOptions)) {
500
+ this.sortOptionIndex = this.sortOptions.findIndex(function (s) {
501
+ return s.label === _this.defaultSortOption;
502
+ });
503
+ }
504
+
500
505
  this.updateComponentProps(this.componentId, {
501
506
  from: this.from
502
507
  }, constants.componentTypes.reactiveList);
@@ -506,7 +511,7 @@ var ReactiveList = {
506
511
  },
507
512
  props: {
508
513
  currentPage: VueTypes.number.def(0),
509
- includeFields: vueTypes.types.includeFields.def(['*']),
514
+ includeFields: vueTypes.types.includeFields,
510
515
  // component props
511
516
  className: vueTypes.types.string,
512
517
  componentId: vueTypes.types.stringRequired,
@@ -515,7 +520,7 @@ var ReactiveList = {
515
520
  aggregationSize: VueTypes.number,
516
521
  defaultQuery: vueTypes.types.func,
517
522
  defaultSortOption: vueTypes.types.string,
518
- excludeFields: vueTypes.types.excludeFields.def([]),
523
+ excludeFields: vueTypes.types.excludeFields,
519
524
  innerClass: vueTypes.types.style,
520
525
  listClass: VueTypes.string.def(''),
521
526
  loader: vueTypes.types.title,
@@ -527,7 +532,7 @@ var ReactiveList = {
527
532
  pages: VueTypes.number.def(5),
528
533
  pagination: VueTypes.bool.def(false),
529
534
  infiniteScroll: VueTypes.bool.def(true),
530
- paginationAt: vueTypes.types.paginationAt.def('bottom'),
535
+ paginationAt: VueTypes.oneOf(['top', 'bottom', 'both']).def('bottom'),
531
536
  react: vueTypes.types.react,
532
537
  scrollOnChange: VueTypes.bool.def(true),
533
538
  showResultStats: VueTypes.bool.def(true),
@@ -728,11 +733,11 @@ var ReactiveList = {
728
733
  var options = getQueryOptions(this.$props);
729
734
  options.from = this.$data.from;
730
735
 
731
- if (this.$props.sortOptions) {
736
+ if (this.sortOptions && this.sortOptions[this.sortOptionIndex]) {
732
737
  var _ref2;
733
738
 
734
- var sortField = this.$props.sortOptions[this.sortOptionIndex].dataField;
735
- var sortBy = this.$props.sortOptions[this.sortOptionIndex].sortBy;
739
+ var sortField = this.sortOptions[this.sortOptionIndex].dataField;
740
+ var sortBy = this.sortOptions[this.sortOptionIndex].sortBy;
736
741
  options.sort = [(_ref2 = {}, _ref2[sortField] = {
737
742
  order: sortBy
738
743
  }, _ref2)]; // To handle sort options for RS API
@@ -802,10 +807,10 @@ var ReactiveList = {
802
807
  "class": this.$props.className
803
808
  }, [this.isLoading && this.shouldRenderPagination && this.showInfiniteScroll && (this.$scopedSlots.loader || this.$props.loader), this.renderErrorComponent(), h(Flex.Flex, {
804
809
  "attrs": {
805
- "labelPosition": this.$props.sortOptions ? 'right' : 'left'
810
+ "labelPosition": this.sortOptions ? 'right' : 'left'
806
811
  },
807
812
  "class": getClassName$1(this.$props.innerClass, 'resultsInfo')
808
- }, [this.$props.sortOptions ? this.renderSortOptions() : null, this.$props.showResultStats && results.length ? this.renderStats() : null]), !this.isLoading && results.length === 0 ? this.renderNoResult() : null, this.shouldRenderPagination && (this.$props.paginationAt === 'top' || this.$props.paginationAt === 'both') ? h(Pagination, {
813
+ }, [this.sortOptions ? this.renderSortOptions() : null, this.$props.showResultStats && results.length ? this.renderStats() : null]), !this.isLoading && results.length === 0 ? this.renderNoResult() : null, this.shouldRenderPagination && (this.$props.paginationAt === 'top' || this.$props.paginationAt === 'both') ? h(Pagination, {
809
814
  "attrs": {
810
815
  "pages": this.$props.pages,
811
816
  "totalPages": this.totalPages,
@@ -876,15 +881,18 @@ var ReactiveList = {
876
881
  var options = getQueryOptions(props);
877
882
  options.from = this.$data.from;
878
883
 
879
- if (props.sortOptions) {
880
- var _ref5;
881
-
884
+ if (props.sortOptions && Array.isArray(props.sortOptions)) {
882
885
  var sortOptionIndex = props.defaultSortOption ? props.sortOptions.findIndex(function (s) {
883
886
  return s.label === props.defaultSortOption;
884
887
  }) : 0;
885
- options.sort = [(_ref5 = {}, _ref5[props.sortOptions[sortOptionIndex].dataField] = {
886
- order: props.sortOptions[sortOptionIndex].sortBy
887
- }, _ref5)];
888
+
889
+ if (props.sortOptions[sortOptionIndex]) {
890
+ var _ref5;
891
+
892
+ options.sort = [(_ref5 = {}, _ref5[props.sortOptions[sortOptionIndex].dataField] = {
893
+ order: props.sortOptions[sortOptionIndex].sortBy
894
+ }, _ref5)];
895
+ }
888
896
  } else if (props.sortBy) {
889
897
  var _ref6;
890
898
 
@@ -980,31 +988,39 @@ var ReactiveList = {
980
988
  renderNoResult: function renderNoResult() {
981
989
  var h = this.$createElement;
982
990
  var renderNoResults = this.$scopedSlots.renderNoResults || this.$props.renderNoResults;
991
+
992
+ if (this.$scopedSlots.renderNoResults) {
993
+ return index.isFunction(renderNoResults) ? renderNoResults() : renderNoResults;
994
+ }
995
+
983
996
  return h("p", {
984
997
  "class": getClassName$1(this.$props.innerClass, 'noResults') || null
985
998
  }, [index.isFunction(renderNoResults) ? renderNoResults() : renderNoResults]);
986
999
  },
987
1000
  handleSortChange: function handleSortChange(e) {
988
- var _ref7;
1001
+ var index = e.target.value;
989
1002
 
990
- var index = e.target.value; // This fixes issue #371 (where sorting a multi-result page with infinite loader breaks)
1003
+ if (this.sortOptions && this.sortOptions[index]) {
1004
+ var _ref7;
991
1005
 
992
- var options = getQueryOptions(this.$props);
993
- options.from = 0;
994
- var sortField = this.$props.sortOptions[index].dataField;
995
- var sortBy = this.$props.sortOptions[index].sortBy;
996
- options.sort = [(_ref7 = {}, _ref7[sortField] = {
997
- order: sortBy
998
- }, _ref7)];
999
- this.sortOptionIndex = index; // To handle sort options for RS API
1000
-
1001
- this.updateComponentProps(this.componentId, {
1002
- dataField: sortField,
1003
- sortBy: sortBy
1004
- }, constants.componentTypes.reactiveList);
1005
- this.setQueryOptions(this.$props.componentId, options, true);
1006
- this.currentPageState = 0;
1007
- this.from = 0;
1006
+ // This fixes issue #371 (where sorting a multi-result page with infinite loader breaks)
1007
+ var options = getQueryOptions(this.$props);
1008
+ options.from = 0;
1009
+ var sortField = this.sortOptions[index].dataField;
1010
+ var sortBy = this.sortOptions[index].sortBy;
1011
+ options.sort = [(_ref7 = {}, _ref7[sortField] = {
1012
+ order: sortBy
1013
+ }, _ref7)];
1014
+ this.sortOptionIndex = index; // To handle sort options for RS API
1015
+
1016
+ this.updateComponentProps(this.componentId, {
1017
+ dataField: sortField,
1018
+ sortBy: sortBy
1019
+ }, constants.componentTypes.reactiveList);
1020
+ this.setQueryOptions(this.$props.componentId, options, true);
1021
+ this.currentPageState = 0;
1022
+ this.from = 0;
1023
+ }
1008
1024
  },
1009
1025
  triggerClickAnalytics: function triggerClickAnalytics(searchPosition, documentId) {
1010
1026
  var docId = documentId;
@@ -1038,7 +1054,7 @@ var ReactiveList = {
1038
1054
  "domProps": {
1039
1055
  "value": this.sortOptionIndex
1040
1056
  }
1041
- }, [this.$props.sortOptions.map(function (sort, index) {
1057
+ }, [this.sortOptions.map(function (sort, index) {
1042
1058
  return h("option", {
1043
1059
  "key": sort.label,
1044
1060
  "domProps": {
@@ -1144,11 +1160,7 @@ var mapDispatchtoProps = {
1144
1160
  }; // Only used for SSR
1145
1161
 
1146
1162
  ReactiveList.generateQueryOptions = function (props) {
1147
- // simulate default (includeFields and excludeFields) props to generate consistent query
1148
- var options = getQueryOptions(_rollupPluginBabelHelpers._extends({
1149
- includeFields: ['*'],
1150
- excludeFields: []
1151
- }, props));
1163
+ var options = getQueryOptions(props);
1152
1164
  var size = props.size,
1153
1165
  dataField = props.dataField,
1154
1166
  defaultSortOption = props.defaultSortOption,
@@ -9,7 +9,7 @@ var VueTypes = _interopDefault(require('vue-types'));
9
9
  require('emotion');
10
10
  require('@appbaseio/vue-emotion');
11
11
  require('polished');
12
- var vueTypes = require('./vueTypes-4c19b4c8.js');
12
+ var vueTypes = require('./vueTypes-57d01f18.js');
13
13
  var _mergeJSXProps = _interopDefault(require('@vue/babel-helper-vue-jsx-merge-props'));
14
14
  var Title = require('./Title-584a8cc8.js');
15
15
  var Card = require('./Card-fd94ef07.js');
@@ -9,7 +9,7 @@ var VueTypes = _interopDefault(require('vue-types'));
9
9
  require('emotion');
10
10
  require('@appbaseio/vue-emotion');
11
11
  require('polished');
12
- var vueTypes = require('./vueTypes-4c19b4c8.js');
12
+ var vueTypes = require('./vueTypes-57d01f18.js');
13
13
  var _mergeJSXProps = _interopDefault(require('@vue/babel-helper-vue-jsx-merge-props'));
14
14
  var Title = require('./Title-584a8cc8.js');
15
15
  var ListItem = require('./ListItem-b40adb04.js');
@@ -13,7 +13,7 @@ require('emotion');
13
13
  require('@appbaseio/vue-emotion');
14
14
  require('polished');
15
15
  var Button = require('./Button-11307285.js');
16
- var vueTypes = require('./vueTypes-4c19b4c8.js');
16
+ var vueTypes = require('./vueTypes-57d01f18.js');
17
17
  require('redux');
18
18
  var index = require('./index-89c39a9e.js');
19
19
  var Title = require('./Title-584a8cc8.js');
@@ -32,7 +32,8 @@ var SelectedFilters = {
32
32
  innerClass: vueTypes.types.style,
33
33
  showClearAll: VueTypes.bool.def(true),
34
34
  title: vueTypes.types.title,
35
- resetToDefault: VueTypes.bool.def(false)
35
+ resetToDefault: VueTypes.bool.def(false),
36
+ resetToValues: VueTypes.object
36
37
  },
37
38
  inject: {
38
39
  theme: {
@@ -85,15 +86,16 @@ var SelectedFilters = {
85
86
  this.$emit('clear', component, value);
86
87
  },
87
88
  clearValues: function clearValues() {
88
- var resetToDefault = this.resetToDefault;
89
+ var resetToDefault = this.resetToDefault,
90
+ resetToValues = this.resetToValues;
89
91
 
90
92
  if (resetToDefault) {
91
93
  this.resetValuesToDefault();
92
94
  } else {
93
- this.clearValuesAction();
95
+ this.clearValuesAction(resetToValues);
94
96
  }
95
97
 
96
- this.$emit('clear', null);
98
+ this.$emit('clear', resetToValues);
97
99
  },
98
100
  renderValue: function renderValue(value, isArray) {
99
101
  var _this2 = this;