@appbaseio/reactivesearch-vue 1.16.0-alpha.3 → 1.16.0-alpha.32

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 (101) hide show
  1. package/dist/@appbaseio/reactivesearch-vue.umd.js +6388 -5403
  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/Button-d2f1aeda.js +68 -0
  6. package/dist/cjs/{DownShift-b09da079.js → CancelSvg-82021d23.js} +60 -16
  7. package/dist/cjs/Card-4b915733.js +30 -0
  8. package/dist/cjs/{ComponentWrapper-5a0a8849.js → ComponentWrapper-7302fe1a.js} +40 -21
  9. package/dist/cjs/{Container-f84e72fc.js → Container-8a08d663.js} +3 -11
  10. package/dist/cjs/DataSearch.js +341 -391
  11. package/dist/cjs/{DropDown-c66be1a8.js → DropDown-c46d8b0c.js} +80 -95
  12. package/dist/cjs/DynamicRangeSlider.js +81 -25
  13. package/dist/cjs/Flex-699639d2.js +52 -0
  14. package/dist/cjs/FormControlList-73497794.js +47 -0
  15. package/dist/cjs/Input-c6f181d5.js +79 -0
  16. package/dist/cjs/ListItem-933c27e4.js +46 -0
  17. package/dist/cjs/MultiDropdownList.js +71 -46
  18. package/dist/cjs/MultiList.js +49 -29
  19. package/dist/cjs/MultiRange.js +20 -14
  20. package/dist/cjs/{Pagination-91df3b77.js → Pagination-1b2320a7.js} +4 -3
  21. package/dist/cjs/RangeInput.js +29 -45
  22. package/dist/cjs/RangeSlider.js +31 -28
  23. package/dist/cjs/ReactiveBase.js +55 -34
  24. package/dist/cjs/ReactiveComponent.js +80 -36
  25. package/dist/cjs/ReactiveGoogleMap.js +326 -235
  26. package/dist/cjs/ReactiveList.js +149 -202
  27. package/dist/cjs/ResultCard.js +8 -6
  28. package/dist/cjs/ResultList.js +8 -6
  29. package/dist/cjs/SelectedFilters.js +25 -12
  30. package/dist/cjs/SingleDropdownList.js +70 -45
  31. package/dist/cjs/SingleList.js +44 -26
  32. package/dist/cjs/SingleRange.js +17 -11
  33. package/dist/cjs/StateProvider.js +11 -7
  34. package/dist/cjs/{Title-e9beb554.js → Title-39765ee6.js} +3 -11
  35. package/dist/cjs/ToggleButton.js +35 -16
  36. package/dist/cjs/{_rollupPluginBabelHelpers-280a574c.js → _rollupPluginBabelHelpers-4abdbfff.js} +11 -1
  37. package/dist/cjs/{index-e0583d76.js → index-d44a0a21.js} +87 -13
  38. package/dist/cjs/index.js +23 -19
  39. package/dist/cjs/initReactivesearch.js +80 -38
  40. package/dist/cjs/install.js +20 -18
  41. package/dist/cjs/ssr-c333c82c.js +39 -0
  42. package/dist/cjs/{utils-d1ea9f95.js → utils-23afb20b.js} +2 -2
  43. package/dist/cjs/version.js +1 -1
  44. package/dist/cjs/{vueTypes-c21f265b.js → vueTypes-6de9d2a9.js} +9 -4
  45. package/dist/es/Button-799185e2.js +59 -0
  46. package/dist/es/{DownShift-d8f2500f.js → CancelSvg-4d9e0857.js} +56 -17
  47. package/dist/es/Card-04b3c33e.js +23 -0
  48. package/dist/es/{ComponentWrapper-d0b21b95.js → ComponentWrapper-bbb717bc.js} +40 -21
  49. package/dist/es/Container-4383c6f0.js +10 -0
  50. package/dist/es/DataSearch.js +339 -389
  51. package/dist/es/{DropDown-5dbd69c2.js → DropDown-4edaa621.js} +79 -94
  52. package/dist/es/DynamicRangeSlider.js +81 -25
  53. package/dist/es/Flex-aac91505.js +47 -0
  54. package/dist/es/FormControlList-fe389a2e.js +40 -0
  55. package/dist/es/Input-d8519224.js +71 -0
  56. package/dist/es/ListItem-bdb6d53d.js +39 -0
  57. package/dist/es/MultiDropdownList.js +71 -46
  58. package/dist/es/MultiList.js +49 -29
  59. package/dist/es/MultiRange.js +20 -14
  60. package/dist/es/{Pagination-800af44f.js → Pagination-b3e4054a.js} +4 -3
  61. package/dist/es/RangeInput.js +29 -45
  62. package/dist/es/RangeSlider.js +31 -28
  63. package/dist/es/ReactiveBase.js +55 -34
  64. package/dist/es/ReactiveComponent.js +80 -36
  65. package/dist/es/ReactiveGoogleMap.js +326 -235
  66. package/dist/es/ReactiveList.js +149 -202
  67. package/dist/es/ResultCard.js +8 -6
  68. package/dist/es/ResultList.js +8 -6
  69. package/dist/es/SelectedFilters.js +25 -12
  70. package/dist/es/SingleDropdownList.js +70 -45
  71. package/dist/es/SingleList.js +44 -26
  72. package/dist/es/SingleRange.js +17 -11
  73. package/dist/es/StateProvider.js +11 -7
  74. package/dist/es/Title-579f8d6c.js +10 -0
  75. package/dist/es/ToggleButton.js +35 -16
  76. package/dist/es/{_rollupPluginBabelHelpers-c9fbe19f.js → _rollupPluginBabelHelpers-ecf6c03c.js} +11 -1
  77. package/dist/es/{index-1fe91a0a.js → index-5daa8276.js} +84 -14
  78. package/dist/es/index.js +23 -19
  79. package/dist/es/initReactivesearch.js +80 -38
  80. package/dist/es/install.js +20 -18
  81. package/dist/es/ssr-e3196de1.js +33 -0
  82. package/dist/es/{utils-ce3d86fd.js → utils-3a32e13f.js} +2 -2
  83. package/dist/es/version.js +1 -1
  84. package/dist/es/{vueTypes-98d938a9.js → vueTypes-9326e0be.js} +9 -4
  85. package/package.json +86 -78
  86. package/dist/cjs/Button-78d8bc26.js +0 -146
  87. package/dist/cjs/Card-b4af314f.js +0 -58
  88. package/dist/cjs/Flex-737c55be.js +0 -160
  89. package/dist/cjs/FormControlList-08dfb28e.js +0 -105
  90. package/dist/cjs/Input-643d02a7.js +0 -178
  91. package/dist/cjs/ListItem-0c58c5d2.js +0 -84
  92. package/dist/cjs/ssr-b7a729f9.js +0 -47
  93. package/dist/es/Button-6c71c66e.js +0 -137
  94. package/dist/es/Card-ecf70ba1.js +0 -51
  95. package/dist/es/Container-f5efec9e.js +0 -18
  96. package/dist/es/Flex-40a74d8a.js +0 -155
  97. package/dist/es/FormControlList-b96aebef.js +0 -98
  98. package/dist/es/Input-dfd9dd40.js +0 -170
  99. package/dist/es/ListItem-da73bc7d.js +0 -77
  100. package/dist/es/Title-22c2f3bf.js +0 -18
  101. package/dist/es/ssr-2f57791d.js +0 -41
@@ -6,36 +6,29 @@ 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-280a574c.js');
9
+ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-4abdbfff.js');
10
10
  var VueTypes = _interopDefault(require('vue-types'));
11
11
  var constants = require('@appbaseio/reactivecore/lib/utils/constants');
12
+ var helper = require('@appbaseio/reactivecore/lib/utils/helper');
12
13
  var emotion = require('emotion');
13
14
  var styled = require('@appbaseio/vue-emotion');
14
15
  var styled__default = _interopDefault(styled);
15
16
  require('polished');
16
- require('./Button-78d8bc26.js');
17
- var vueTypes = require('./vueTypes-c21f265b.js');
18
- var Pagination = require('./Pagination-91df3b77.js');
17
+ require('./Button-d2f1aeda.js');
18
+ var vueTypes = require('./vueTypes-6de9d2a9.js');
19
+ var Pagination = require('./Pagination-1b2320a7.js');
19
20
  require('@appbaseio/reactivecore/lib/utils/transform');
20
21
  require('redux');
21
- var index = require('./index-e0583d76.js');
22
- var ComponentWrapper = require('./ComponentWrapper-5a0a8849.js');
22
+ var index = require('./index-d44a0a21.js');
23
+ var ComponentWrapper = require('./ComponentWrapper-7302fe1a.js');
23
24
  var _mergeJSXProps = _interopDefault(require('@vue/babel-helper-vue-jsx-merge-props'));
24
- require('./Title-e9beb554.js');
25
- var ListItem = require('./ListItem-0c58c5d2.js');
26
- var Card = require('./Card-b4af314f.js');
27
- var Flex = require('./Flex-737c55be.js');
25
+ require('./Title-39765ee6.js');
26
+ var ListItem = require('./ListItem-933c27e4.js');
27
+ var Card = require('./Card-4b915733.js');
28
+ var Flex = require('./Flex-699639d2.js');
28
29
 
29
- function _templateObject() {
30
- var data = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\twidth: 110px;\n"]);
31
-
32
- _templateObject = function _templateObject() {
33
- return data;
34
- };
35
-
36
- return data;
37
- }
38
- var PoweredByImage = styled__default('img')(_templateObject());
30
+ var _templateObject;
31
+ var PoweredByImage = styled__default('img')(_templateObject || (_templateObject = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\twidth: 110px;\n"])));
39
32
 
40
33
  var PoweredBy = {
41
34
  functional: true,
@@ -92,27 +85,9 @@ ResultCardsWrapper.install = function (Vue) {
92
85
  Vue.component(ResultCardsWrapper.name, ResultCardsWrapper);
93
86
  };
94
87
 
95
- function _templateObject2() {
96
- var data = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tcolor: #424242;\n\theight: 32px;\n\tfont-size: 0.82rem;\n\tpadding: 0 25px 0 10px;\n\tbackground: url(data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ljk1IDEwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9LmNscy0ye2ZpbGw6IzQ0NDt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmFycm93czwvdGl0bGU+PHJlY3QgY2xhc3M9ImNscy0xIiB3aWR0aD0iNC45NSIgaGVpZ2h0PSIxMCIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMiIgcG9pbnRzPSIxLjQxIDQuNjcgMi40OCAzLjE4IDMuNTQgNC42NyAxLjQxIDQuNjciLz48cG9seWdvbiBjbGFzcz0iY2xzLTIiIHBvaW50cz0iMy41NCA1LjMzIDIuNDggNi44MiAxLjQxIDUuMzMgMy41NCA1LjMzIi8+PC9zdmc+)\n\t\tno-repeat 95% 50%;\n\tbackground-color: #fff;\n\t-moz-appearance: none;\n\t-webkit-appearance: none;\n\tappearance: none;\n\t-webkit-border-radius: 0;\n\tborder-radius: 0;\n\tborder: 0;\n\toutline: 1px solid #ddd;\n\toutline-offset: -1px;\n"]);
97
-
98
- _templateObject2 = function _templateObject2() {
99
- return data;
100
- };
101
-
102
- return data;
103
- }
104
-
105
- function _templateObject$1() {
106
- var data = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tflex-grow: 1;\n\tfont-size: 0.82rem;\n"]);
107
-
108
- _templateObject$1 = function _templateObject() {
109
- return data;
110
- };
111
-
112
- return data;
113
- }
114
- var resultStats = emotion.css(_templateObject$1());
115
- var sortOptions = emotion.css(_templateObject2());
88
+ var _templateObject$1, _templateObject2;
89
+ var resultStats = emotion.css(_templateObject$1 || (_templateObject$1 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tflex-grow: 1;\n\tfont-size: 0.82rem;\n"])));
90
+ var sortOptions = emotion.css(_templateObject2 || (_templateObject2 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tcolor: #424242;\n\theight: 32px;\n\tfont-size: 0.82rem;\n\tpadding: 0 25px 0 10px;\n\tbackground: url(data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ljk1IDEwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9LmNscy0ye2ZpbGw6IzQ0NDt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmFycm93czwvdGl0bGU+PHJlY3QgY2xhc3M9ImNscy0xIiB3aWR0aD0iNC45NSIgaGVpZ2h0PSIxMCIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMiIgcG9pbnRzPSIxLjQxIDQuNjcgMi40OCAzLjE4IDMuNTQgNC42NyAxLjQxIDQuNjciLz48cG9seWdvbiBjbGFzcz0iY2xzLTIiIHBvaW50cz0iMy41NCA1LjMzIDIuNDggNi44MiAxLjQxIDUuMzMgMy41NCA1LjMzIi8+PC9zdmc+)\n\t\tno-repeat 95% 50%;\n\tbackground-color: #fff;\n\t-moz-appearance: none;\n\t-webkit-appearance: none;\n\tappearance: none;\n\t-webkit-border-radius: 0;\n\tborder-radius: 0;\n\tborder: 0;\n\toutline: 1px solid #ddd;\n\toutline-offset: -1px;\n"])));
116
91
 
117
92
  var recordImpressions = configureStore.Actions.recordImpressions;
118
93
  var isEqual = configureStore.helper.isEqual;
@@ -286,8 +261,7 @@ var ImpressionTracker$1 = index.connect(function () {
286
261
  return null;
287
262
  }, mapDispatchToProps)(ImpressionTracker);
288
263
 
289
- var setStreaming = configureStore.Actions.setStreaming,
290
- setQueryOptions = configureStore.Actions.setQueryOptions,
264
+ var setQueryOptions = configureStore.Actions.setQueryOptions,
291
265
  updateQuery = configureStore.Actions.updateQuery,
292
266
  loadMore = configureStore.Actions.loadMore,
293
267
  setValue = configureStore.Actions.setValue,
@@ -308,16 +282,17 @@ var ReactiveList = {
308
282
  ResultCardsWrapper: ResultCardsWrapper
309
283
  },
310
284
  data: function data() {
311
- var props = this.$props;
312
285
  var currentPageState = 0;
286
+ var defaultPage = this.defaultPage || -1;
313
287
 
314
- if (props.currentPage) {
315
- currentPageState = Math.max(props.currentPage - 1, 0);
288
+ if (defaultPage >= 0) {
289
+ currentPageState = defaultPage;
290
+ } else if (this.currentPage) {
291
+ currentPageState = Math.max(this.currentPage - 1, 0);
316
292
  }
317
293
 
318
294
  this.__state = {
319
- from: currentPageState * props.size,
320
- isLoading: true,
295
+ from: currentPageState * this.size,
321
296
  currentPageState: currentPageState
322
297
  };
323
298
  return this.__state;
@@ -327,29 +302,41 @@ var ReactiveList = {
327
302
 
328
303
  var _this$$props = this.$props,
329
304
  distinctField = _this$$props.distinctField,
330
- distinctFieldConfig = _this$$props.distinctFieldConfig; // no support for pagination and aggregationField together
305
+ distinctFieldConfig = _this$$props.distinctFieldConfig,
306
+ index = _this$$props.index; // no support for pagination and aggregationField together
331
307
 
332
308
  if (this.pagination && this.aggregationField) {
333
309
  console.warn('Pagination is not supported when aggregationField is present. The list will be rendered with infinite scroll');
334
310
  }
335
311
 
336
- if (this.config.enableAppbase && this.aggregationField && this.aggregationField !== '') {
312
+ if (this.enableAppbase && this.aggregationField && this.aggregationField !== '') {
337
313
  console.warn('Warning(ReactiveSearch): The `aggregationField` prop has been marked as deprecated, please use the `distinctField` prop instead.');
338
314
  }
339
315
 
340
- if (!this.config.enableAppbase && (distinctField || distinctFieldConfig)) {
316
+ if (!this.enableAppbase && (distinctField || distinctFieldConfig)) {
341
317
  console.warn('Warning(ReactiveSearch): In order to use the `distinctField` and `distinctFieldConfig` props, the `enableAppbase` prop must be set to true in `ReactiveBase`.');
342
318
  }
343
319
 
344
- if (this.defaultPage >= 0) {
345
- this.currentPageState = this.defaultPage;
320
+ if (!this.enableAppbase && index) {
321
+ console.warn('Warning(ReactiveSearch): In order to use the `index` prop, the `enableAppbase` prop must be set to true in `ReactiveBase`.');
322
+ }
323
+
324
+ var defaultPage = this.defaultPage || -1;
325
+
326
+ if (defaultPage >= 0) {
327
+ this.currentPageState = defaultPage;
346
328
  this.from = this.currentPageState * this.$props.size;
347
329
  }
348
330
 
349
331
  this.internalComponent = this.$props.componentId + "__internal";
350
- this.sortOptionIndex = this.defaultSortOption ? this.sortOptions.findIndex(function (s) {
351
- return s.label === _this.defaultSortOption;
352
- }) : 0;
332
+ this.sortOptionIndex = 0;
333
+
334
+ if (this.defaultSortOption && this.sortOptions && Array.isArray(this.sortOptions)) {
335
+ this.sortOptionIndex = this.sortOptions.findIndex(function (s) {
336
+ return s.label === _this.defaultSortOption;
337
+ });
338
+ }
339
+
353
340
  this.updateComponentProps(this.componentId, {
354
341
  from: this.from
355
342
  }, constants.componentTypes.reactiveList);
@@ -359,7 +346,7 @@ var ReactiveList = {
359
346
  },
360
347
  props: {
361
348
  currentPage: VueTypes.number.def(0),
362
- includeFields: vueTypes.types.includeFields.def(['*']),
349
+ includeFields: vueTypes.types.includeFields,
363
350
  // component props
364
351
  className: vueTypes.types.string,
365
352
  componentId: vueTypes.types.stringRequired,
@@ -368,7 +355,7 @@ var ReactiveList = {
368
355
  aggregationSize: VueTypes.number,
369
356
  defaultQuery: vueTypes.types.func,
370
357
  defaultSortOption: vueTypes.types.string,
371
- excludeFields: vueTypes.types.excludeFields.def([]),
358
+ excludeFields: vueTypes.types.excludeFields,
372
359
  innerClass: vueTypes.types.style,
373
360
  listClass: VueTypes.string.def(''),
374
361
  loader: vueTypes.types.title,
@@ -380,7 +367,7 @@ var ReactiveList = {
380
367
  pages: VueTypes.number.def(5),
381
368
  pagination: VueTypes.bool.def(false),
382
369
  infiniteScroll: VueTypes.bool.def(true),
383
- paginationAt: vueTypes.types.paginationAt.def('bottom'),
370
+ paginationAt: VueTypes.oneOf(['top', 'bottom', 'both']).def('bottom'),
384
371
  react: vueTypes.types.react,
385
372
  scrollOnChange: VueTypes.bool.def(true),
386
373
  showResultStats: VueTypes.bool.def(true),
@@ -388,12 +375,12 @@ var ReactiveList = {
388
375
  size: VueTypes.number.def(10),
389
376
  sortBy: vueTypes.types.sortBy,
390
377
  sortOptions: vueTypes.types.sortOptions,
391
- stream: vueTypes.types.bool,
392
378
  URLParams: VueTypes.bool.def(false),
393
379
  prevLabel: vueTypes.types.string,
394
380
  nextLabel: vueTypes.types.string,
395
381
  distinctField: vueTypes.types.string,
396
- distinctFieldConfig: vueTypes.types.props
382
+ distinctFieldConfig: vueTypes.types.props,
383
+ index: VueTypes.string
397
384
  },
398
385
  computed: {
399
386
  shouldRenderPagination: function shouldRenderPagination() {
@@ -409,12 +396,9 @@ var ReactiveList = {
409
396
  return this.$listeners && this.$listeners.resultStats;
410
397
  },
411
398
  stats: function stats() {
412
- var _this$getAllData = this.getAllData(),
413
- filteredResults = _this$getAllData.filteredResults;
414
-
415
- return _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, getResultStats(this)), {}, {
399
+ return _rollupPluginBabelHelpers._extends({}, getResultStats(this), {
416
400
  currentPage: this.currentPageState,
417
- displayedResults: filteredResults.length
401
+ displayedResults: this.data.length
418
402
  });
419
403
  },
420
404
  hasCustomRender: function hasCustomRender() {
@@ -423,6 +407,27 @@ var ReactiveList = {
423
407
  showInfiniteScroll: function showInfiniteScroll() {
424
408
  // Pagination has higher priority then infinite scroll
425
409
  return this.infiniteScroll && !this.shouldRenderPagination;
410
+ },
411
+ data: function data() {
412
+ var results = parseHits(this.hits) || [];
413
+ var parsedPromotedResults = parseHits(this.promotedResults) || [];
414
+ var filteredResults = results;
415
+
416
+ if (parsedPromotedResults.length) {
417
+ var ids = parsedPromotedResults.map(function (item) {
418
+ return item._id;
419
+ }).filter(Boolean);
420
+
421
+ if (ids) {
422
+ filteredResults = filteredResults.filter(function (item) {
423
+ return !ids.includes(item._id);
424
+ });
425
+ }
426
+
427
+ filteredResults = [].concat(parsedPromotedResults, filteredResults);
428
+ }
429
+
430
+ return helper.withClickIds(filteredResults);
426
431
  }
427
432
  },
428
433
  watch: {
@@ -473,12 +478,12 @@ var ReactiveList = {
473
478
  var queryOptions = getOptionsFromQuery(this.$defaultQuery);
474
479
 
475
480
  if (queryOptions) {
476
- options = _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, options), getOptionsFromQuery(this.$defaultQuery));
481
+ options = _rollupPluginBabelHelpers._extends({}, options, getOptionsFromQuery(this.$defaultQuery));
477
482
  } // Update calculated default query in store
478
483
 
479
484
 
480
485
  index.updateDefaultQuery(this.componentId, this.setDefaultQuery, this.$props);
481
- this.setQueryOptions(this.$props.componentId, _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, options), this.getAggsQuery()), !query);
486
+ this.setQueryOptions(this.$props.componentId, _rollupPluginBabelHelpers._extends({}, options, this.getAggsQuery()), !query);
482
487
  this.updateQuery({
483
488
  componentId: this.internalComponent,
484
489
  query: query
@@ -488,14 +493,6 @@ var ReactiveList = {
488
493
  this.from = 0;
489
494
  }
490
495
  },
491
- stream: function stream(newVal, oldVal) {
492
- if (oldVal !== newVal) {
493
- this.setStreaming(this.$props.componentId, newVal);
494
- }
495
- },
496
- streamHits: function streamHits() {
497
- this.$emit('data', this.getData());
498
- },
499
496
  promotedResults: function promotedResults(newVal, oldVal) {
500
497
  if (!isEqual$1(newVal, oldVal)) {
501
498
  this.$emit('data', this.getData());
@@ -512,7 +509,7 @@ var ReactiveList = {
512
509
  }
513
510
  },
514
511
  hits: function hits(newVal, oldVal) {
515
- this.$emit('data', this.getAllData());
512
+ this.$emit('data', this.getData());
516
513
 
517
514
  if (this.shouldRenderPagination) {
518
515
  // called when page is changed
@@ -557,31 +554,25 @@ var ReactiveList = {
557
554
  } // handle window url history change (on native back and forth interactions)
558
555
 
559
556
  },
560
- defaultPage: function defaultPage(newVal) {
561
- if (this.currentPageState !== newVal && this.defaultPage !== newVal) {
557
+ defaultPage: function defaultPage(newVal, oldVal) {
558
+ if (this.currentPageState !== newVal && oldVal !== newVal) {
562
559
  this.setPage(newVal >= 0 ? newVal : 0);
563
560
  }
564
561
  }
565
562
  },
566
563
  mounted: function mounted() {
567
- if (this.$props.stream) {
568
- this.setStreaming(this.$props.componentId, true);
569
- }
570
-
571
564
  if (this.defaultPage < 0 && this.currentPage > 0) {
572
- if (this.$props.URLParams) {
573
- this.setPageURL(this.$props.componentId, this.currentPage, this.$props.componentId, false, true);
574
- }
565
+ this.setPageURL(this.$props.componentId, this.currentPage, this.$props.componentId, false, this.URLParams);
575
566
  }
576
567
 
577
568
  var options = getQueryOptions(this.$props);
578
569
  options.from = this.$data.from;
579
570
 
580
- if (this.$props.sortOptions) {
571
+ if (this.sortOptions && this.sortOptions[this.sortOptionIndex]) {
581
572
  var _ref2;
582
573
 
583
- var sortField = this.$props.sortOptions[this.sortOptionIndex].dataField;
584
- var sortBy = this.$props.sortOptions[this.sortOptionIndex].sortBy;
574
+ var sortField = this.sortOptions[this.sortOptionIndex].dataField;
575
+ var sortBy = this.sortOptions[this.sortOptionIndex].sortBy;
585
576
  options.sort = [(_ref2 = {}, _ref2[sortField] = {
586
577
  order: sortBy
587
578
  }, _ref2)]; // To handle sort options for RS API
@@ -603,7 +594,7 @@ var ReactiveList = {
603
594
 
604
595
  if (this.$props.defaultQuery) {
605
596
  this.$defaultQuery = this.$props.defaultQuery();
606
- options = _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, options), getOptionsFromQuery(this.$defaultQuery));
597
+ options = _rollupPluginBabelHelpers._extends({}, options, getOptionsFromQuery(this.$defaultQuery));
607
598
 
608
599
  if (this.$defaultQuery.sort) {
609
600
  options.sort = this.$defaultQuery.sort;
@@ -618,7 +609,7 @@ var ReactiveList = {
618
609
  query = _ref4.query;
619
610
 
620
611
  var execute = false;
621
- this.setQueryOptions(this.$props.componentId, _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, options), this.getAggsQuery()), execute);
612
+ this.setQueryOptions(this.$props.componentId, _rollupPluginBabelHelpers._extends({}, options, this.getAggsQuery()), execute);
622
613
 
623
614
  if (this.$defaultQuery) {
624
615
  this.updateQuery({
@@ -646,16 +637,15 @@ var ReactiveList = {
646
637
  var h = arguments[0];
647
638
  var hits = this.$data.hits;
648
639
  var results = parseHits(hits) || [];
649
- var streamResults = parseHits(this.$data.streamHits) || [];
650
640
  return h("div", {
651
641
  "style": this.$props.style,
652
642
  "class": this.$props.className
653
643
  }, [this.isLoading && this.shouldRenderPagination && this.showInfiniteScroll && (this.$scopedSlots.loader || this.$props.loader), this.renderErrorComponent(), h(Flex.Flex, {
654
644
  "attrs": {
655
- "labelPosition": this.$props.sortOptions ? 'right' : 'left'
645
+ "labelPosition": this.sortOptions ? 'right' : 'left'
656
646
  },
657
647
  "class": getClassName(this.$props.innerClass, 'resultsInfo')
658
- }, [this.$props.sortOptions ? this.renderSortOptions() : null, this.$props.showResultStats ? this.renderStats() : null]), !this.isLoading && results.length === 0 && streamResults.length === 0 ? this.renderNoResult() : null, this.shouldRenderPagination && (this.$props.paginationAt === 'top' || this.$props.paginationAt === 'both') ? h(Pagination.Pagination, {
648
+ }, [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.Pagination, {
659
649
  "attrs": {
660
650
  "pages": this.$props.pages,
661
651
  "totalPages": this.totalPages,
@@ -665,7 +655,7 @@ var ReactiveList = {
665
655
  "prevLabel": this.$props.prevLabel,
666
656
  "nextLabel": this.$props.nextLabel
667
657
  }
668
- }) : null, this.renderResults(), this.isLoading && !this.shouldRenderPagination ? this.$props.loader || h("div", {
658
+ }) : null, this.renderResults(), this.isLoading && !this.shouldRenderPagination ? this.$scopedSlots.loader || this.$props.loader || h("div", {
669
659
  "style": {
670
660
  textAlign: 'center',
671
661
  margin: '20px 0',
@@ -682,7 +672,7 @@ var ReactiveList = {
682
672
  "prevLabel": this.$props.prevLabel,
683
673
  "nextLabel": this.$props.nextLabel
684
674
  }
685
- }) : null, this.config.url.endsWith('appbase.io') && results.length ? h(Flex.Flex, {
675
+ }) : null, this.url.endsWith('appbase.io') && results.length ? h(Flex.Flex, {
686
676
  "attrs": {
687
677
  "direction": "row-reverse"
688
678
  },
@@ -704,24 +694,10 @@ var ReactiveList = {
704
694
 
705
695
  var h = this.$createElement;
706
696
  var size = this.$props.size;
707
- var hits = this.$data.hits;
708
- var results = parseHits(hits) || [];
709
- var streamResults = parseHits(this.$data.streamHits) || [];
710
- var filteredResults = results;
711
697
  var renderItem = this.$scopedSlots.renderItem || this.$props.renderItem;
712
-
713
- if (streamResults.length) {
714
- var ids = streamResults.map(function (item) {
715
- return item._id;
716
- });
717
- filteredResults = filteredResults.filter(function (item) {
718
- return !ids.includes(item._id);
719
- });
720
- }
721
-
722
698
  var element = this.hasCustomRender ? this.getComponent() : h("div", {
723
699
  "class": this.$props.listClass + " " + getClassName(this.$props.innerClass, 'list')
724
- }, [[].concat(streamResults, filteredResults).map(function (item, index) {
700
+ }, [this.data.map(function (item, index) {
725
701
  return renderItem({
726
702
  item: item,
727
703
  triggerClickAnalytics: function triggerClickAnalytics() {
@@ -732,7 +708,7 @@ var ReactiveList = {
732
708
 
733
709
  return this.analytics ? h(ImpressionTracker$1, {
734
710
  "attrs": {
735
- "hits": filteredResults
711
+ "hits": this.data
736
712
  }
737
713
  }, [element]) : element;
738
714
  },
@@ -740,15 +716,18 @@ var ReactiveList = {
740
716
  var options = getQueryOptions(props);
741
717
  options.from = this.$data.from;
742
718
 
743
- if (props.sortOptions) {
744
- var _ref5;
745
-
719
+ if (props.sortOptions && Array.isArray(props.sortOptions)) {
746
720
  var sortOptionIndex = props.defaultSortOption ? props.sortOptions.findIndex(function (s) {
747
721
  return s.label === props.defaultSortOption;
748
722
  }) : 0;
749
- options.sort = [(_ref5 = {}, _ref5[props.sortOptions[sortOptionIndex].dataField] = {
750
- order: props.sortOptions[sortOptionIndex].sortBy
751
- }, _ref5)];
723
+
724
+ if (props.sortOptions[sortOptionIndex]) {
725
+ var _ref5;
726
+
727
+ options.sort = [(_ref5 = {}, _ref5[props.sortOptions[sortOptionIndex].dataField] = {
728
+ order: props.sortOptions[sortOptionIndex].sortBy
729
+ }, _ref5)];
730
+ }
752
731
  } else if (props.sortBy) {
753
732
  var _ref6;
754
733
 
@@ -757,7 +736,7 @@ var ReactiveList = {
757
736
  }, _ref6)];
758
737
  }
759
738
 
760
- this.setQueryOptions(this.$props.componentId, _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, options), this.getAggsQuery()), true);
739
+ this.setQueryOptions(this.$props.componentId, _rollupPluginBabelHelpers._extends({}, options, this.getAggsQuery()), true);
761
740
  },
762
741
  getAggsQuery: function getAggsQuery() {
763
742
  var _this$$props2 = this.$props,
@@ -799,12 +778,12 @@ var ReactiveList = {
799
778
  return;
800
779
  }
801
780
 
802
- var options = _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, getQueryOptions(this.$props)), this.getAggsQuery());
781
+ var options = _rollupPluginBabelHelpers._extends({}, getQueryOptions(this.$props), this.getAggsQuery());
803
782
 
804
783
  this.from = value; // Update default query to support pagination for aggregationField
805
784
 
806
785
  index.updateDefaultQuery(this.componentId, this.setDefaultQuery, this.$props);
807
- this.loadMoreAction(this.$props.componentId, _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, options), {}, {
786
+ this.loadMoreAction(this.$props.componentId, _rollupPluginBabelHelpers._extends({}, options, {
808
787
  from: value
809
788
  }), true, !!this.aggregationField);
810
789
  }
@@ -819,13 +798,10 @@ var ReactiveList = {
819
798
  options.from = this.$data.from;
820
799
  this.from = value;
821
800
  this.currentPageState = page;
822
- this.loadMoreAction(this.$props.componentId, _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, options), {}, {
801
+ this.loadMoreAction(this.$props.componentId, _rollupPluginBabelHelpers._extends({}, options, {
823
802
  from: value
824
803
  }), false);
825
-
826
- if (this.$props.URLParams) {
827
- this.setPageURL(this.$props.componentId, page + 1, this.$props.componentId, false, true);
828
- }
804
+ this.setPageURL(this.$props.componentId, page + 1, this.$props.componentId, false, this.URLParams);
829
805
  }
830
806
  },
831
807
  renderStats: function renderStats() {
@@ -839,7 +815,7 @@ var ReactiveList = {
839
815
  if (this.stats.numberOfResults) {
840
816
  return h("p", {
841
817
  "class": resultStats + " " + getClassName(this.$props.innerClass, 'resultStats')
842
- }, [this.stats.numberOfResults, " results found in ", this.stats.time, "ms"]);
818
+ }, [this.stats.numberOfResults, " results found in ", this.stats.time || 0, "ms"]);
843
819
  }
844
820
 
845
821
  return null;
@@ -847,31 +823,39 @@ var ReactiveList = {
847
823
  renderNoResult: function renderNoResult() {
848
824
  var h = this.$createElement;
849
825
  var renderNoResults = this.$scopedSlots.renderNoResults || this.$props.renderNoResults;
826
+
827
+ if (this.$scopedSlots.renderNoResults) {
828
+ return index.isFunction(renderNoResults) ? renderNoResults() : renderNoResults;
829
+ }
830
+
850
831
  return h("p", {
851
832
  "class": getClassName(this.$props.innerClass, 'noResults') || null
852
833
  }, [index.isFunction(renderNoResults) ? renderNoResults() : renderNoResults]);
853
834
  },
854
835
  handleSortChange: function handleSortChange(e) {
855
- var _ref7;
856
-
857
- var index = e.target.value; // This fixes issue #371 (where sorting a multi-result page with infinite loader breaks)
836
+ var index = e.target.value;
858
837
 
859
- var options = getQueryOptions(this.$props);
860
- options.from = 0;
861
- var sortField = this.$props.sortOptions[index].dataField;
862
- var sortBy = this.$props.sortOptions[index].sortBy;
863
- options.sort = [(_ref7 = {}, _ref7[sortField] = {
864
- order: sortBy
865
- }, _ref7)];
866
- this.sortOptionIndex = index; // To handle sort options for RS API
838
+ if (this.sortOptions && this.sortOptions[index]) {
839
+ var _ref7;
867
840
 
868
- this.updateComponentProps(this.componentId, {
869
- dataField: sortField,
870
- sortBy: sortBy
871
- }, constants.componentTypes.reactiveList);
872
- this.setQueryOptions(this.$props.componentId, options, true);
873
- this.currentPageState = 0;
874
- this.from = 0;
841
+ // This fixes issue #371 (where sorting a multi-result page with infinite loader breaks)
842
+ var options = getQueryOptions(this.$props);
843
+ options.from = 0;
844
+ var sortField = this.sortOptions[index].dataField;
845
+ var sortBy = this.sortOptions[index].sortBy;
846
+ options.sort = [(_ref7 = {}, _ref7[sortField] = {
847
+ order: sortBy
848
+ }, _ref7)];
849
+ this.sortOptionIndex = index; // To handle sort options for RS API
850
+
851
+ this.updateComponentProps(this.componentId, {
852
+ dataField: sortField,
853
+ sortBy: sortBy
854
+ }, constants.componentTypes.reactiveList);
855
+ this.setQueryOptions(this.$props.componentId, options, true);
856
+ this.currentPageState = 0;
857
+ this.from = 0;
858
+ }
875
859
  },
876
860
  triggerClickAnalytics: function triggerClickAnalytics(searchPosition, documentId) {
877
861
  var docId = documentId;
@@ -905,7 +889,7 @@ var ReactiveList = {
905
889
  "domProps": {
906
890
  "value": this.sortOptionIndex
907
891
  }
908
- }, [this.$props.sortOptions.map(function (sort, index) {
892
+ }, [this.sortOptions.map(function (sort, index) {
909
893
  return h("option", {
910
894
  "key": sort.label,
911
895
  "domProps": {
@@ -915,11 +899,11 @@ var ReactiveList = {
915
899
  })]);
916
900
  },
917
901
  withClickIds: function withClickIds(results) {
918
- var _this$getAllData2 = this.getAllData(),
919
- base = _this$getAllData2.base;
902
+ var _this$getAllData = this.getAllData(),
903
+ base = _this$getAllData.base;
920
904
 
921
905
  return results.map(function (result, index) {
922
- return _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, result), {}, {
906
+ return _rollupPluginBabelHelpers._extends({}, result, {
923
907
  _click_id: base + index
924
908
  });
925
909
  });
@@ -931,41 +915,12 @@ var ReactiveList = {
931
915
  aggregationData = this.aggregationData,
932
916
  customData = this.customData,
933
917
  currentPage = this.currentPage,
934
- hits = this.hits,
935
- streamHits = this.streamHits;
918
+ hits = this.hits;
936
919
  var results = parseHits(hits) || [];
937
- var streamResults = parseHits(streamHits) || [];
938
920
  var parsedPromotedResults = parseHits(promotedResults) || [];
939
- var filteredResults = results;
940
921
  var base = currentPage * size;
941
-
942
- if (streamResults.length) {
943
- var ids = streamResults.map(function (item) {
944
- return item._id;
945
- });
946
- filteredResults = filteredResults.filter(function (item) {
947
- return !ids.includes(item._id);
948
- });
949
- }
950
-
951
- if (parsedPromotedResults.length) {
952
- var _ids = parsedPromotedResults.map(function (item) {
953
- return item._id;
954
- }).filter(Boolean);
955
-
956
- if (_ids) {
957
- filteredResults = filteredResults.filter(function (item) {
958
- return !_ids.includes(item._id);
959
- });
960
- }
961
-
962
- filteredResults = [].concat(streamResults, parsedPromotedResults, filteredResults);
963
- }
964
-
965
922
  return {
966
923
  results: results,
967
- streamResults: streamResults,
968
- filteredResults: filteredResults,
969
924
  customData: customData || {},
970
925
  promotedResults: parsedPromotedResults,
971
926
  aggregationData: aggregationData,
@@ -975,18 +930,15 @@ var ReactiveList = {
975
930
  };
976
931
  },
977
932
  getData: function getData() {
978
- var _this$getAllData3 = this.getAllData(),
979
- streamResults = _this$getAllData3.streamResults,
980
- filteredResults = _this$getAllData3.filteredResults,
981
- promotedResults = _this$getAllData3.promotedResults,
982
- aggregationData = _this$getAllData3.aggregationData,
983
- customData = _this$getAllData3.customData;
933
+ var _this$getAllData2 = this.getAllData(),
934
+ promotedResults = _this$getAllData2.promotedResults,
935
+ aggregationData = _this$getAllData2.aggregationData,
936
+ customData = _this$getAllData2.customData;
984
937
 
985
938
  return {
986
- data: this.withClickIds(filteredResults),
939
+ data: this.data,
987
940
  aggregationData: this.withClickIds(aggregationData || []),
988
- streamData: this.withClickIds(streamResults),
989
- promotedData: this.withClickIds(promotedResults),
941
+ promotedData: this.withClickIds(promotedResults || []),
990
942
  rawData: this.rawData,
991
943
  resultStats: this.stats,
992
944
  customData: customData
@@ -998,7 +950,7 @@ var ReactiveList = {
998
950
 
999
951
  var data = _rollupPluginBabelHelpers._extends({
1000
952
  error: error,
1001
- loading: isLoading,
953
+ loading: isLoading || false,
1002
954
  loadMore: this.loadMore,
1003
955
  // TODO: Remove in v2
1004
956
  triggerAnalytics: this.triggerClickAnalytics,
@@ -1013,22 +965,22 @@ var ReactiveList = {
1013
965
 
1014
966
  var mapStateToProps = function mapStateToProps(state, props) {
1015
967
  return {
1016
- defaultPage: state.selectedValues[props.componentId] && state.selectedValues[props.componentId].value - 1 || -1,
968
+ defaultPage: state.selectedValues[props.componentId] && state.selectedValues[props.componentId].value - 1,
1017
969
  hits: state.hits[props.componentId] && state.hits[props.componentId].hits,
1018
970
  rawData: state.rawData[props.componentId],
1019
- aggregationData: state.compositeAggregations[props.componentId] || [],
1020
- promotedResults: state.promotedResults[props.componentId] || [],
971
+ aggregationData: state.compositeAggregations[props.componentId],
972
+ promotedResults: state.promotedResults[props.componentId],
1021
973
  customData: state.customData[props.componentId],
1022
- streamHits: state.streamHits[props.componentId],
1023
- time: state.hits[props.componentId] && state.hits[props.componentId].time || 0,
974
+ time: state.hits[props.componentId] && state.hits[props.componentId].time,
1024
975
  total: state.hits[props.componentId] && state.hits[props.componentId].total,
1025
976
  hidden: state.hits[props.componentId] && state.hits[props.componentId].hidden,
1026
977
  analytics: state.config && state.config.analytics,
1027
- config: state.config,
978
+ enableAppbase: state.config.enableAppbase,
979
+ url: state.config.url,
1028
980
  error: state.error[props.componentId],
1029
981
  afterKey: state.aggregations[props.componentId] && state.aggregations[props.componentId][props.aggregationField] && state.aggregations[props.componentId][props.aggregationField].after_key,
1030
982
  componentProps: state.props[props.componentId],
1031
- isLoading: state.isLoading[props.componentId] || false
983
+ isLoading: state.isLoading[props.componentId]
1032
984
  };
1033
985
  };
1034
986
 
@@ -1036,7 +988,6 @@ var mapDispatchtoProps = {
1036
988
  loadMoreAction: loadMore,
1037
989
  setPageURL: setValue,
1038
990
  setQueryOptions: setQueryOptions,
1039
- setStreaming: setStreaming,
1040
991
  updateQuery: updateQuery,
1041
992
  updateComponentProps: updateComponentProps,
1042
993
  setDefaultQuery: setDefaultQuery,
@@ -1044,11 +995,7 @@ var mapDispatchtoProps = {
1044
995
  }; // Only used for SSR
1045
996
 
1046
997
  ReactiveList.generateQueryOptions = function (props) {
1047
- // simulate default (includeFields and excludeFields) props to generate consistent query
1048
- var options = getQueryOptions(_rollupPluginBabelHelpers._extends({
1049
- includeFields: ['*'],
1050
- excludeFields: []
1051
- }, props));
998
+ var options = getQueryOptions(props);
1052
999
  var size = props.size,
1053
1000
  dataField = props.dataField,
1054
1001
  defaultSortOption = props.defaultSortOption,