@appbaseio/reactivesearch-vue 1.16.0-alpha.4 → 1.16.0-alpha.42

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 +8110 -7499
  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 +354 -398
  11. package/dist/cjs/{DropDown-c66be1a8.js → DropDown-c46d8b0c.js} +80 -95
  12. package/dist/cjs/DynamicRangeSlider.js +107 -42
  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 +101 -65
  18. package/dist/cjs/MultiList.js +79 -47
  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 +69 -62
  25. package/dist/cjs/ReactiveGoogleMap.js +326 -235
  26. package/dist/cjs/ReactiveList.js +188 -241
  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 +87 -57
  31. package/dist/cjs/SingleList.js +60 -37
  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 +190 -103
  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 +352 -396
  51. package/dist/es/{DropDown-5dbd69c2.js → DropDown-4edaa621.js} +79 -94
  52. package/dist/es/DynamicRangeSlider.js +107 -42
  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 +101 -65
  58. package/dist/es/MultiList.js +79 -47
  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 +69 -62
  65. package/dist/es/ReactiveGoogleMap.js +326 -235
  66. package/dist/es/ReactiveList.js +188 -241
  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 +87 -57
  71. package/dist/es/SingleList.js +60 -37
  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 +191 -104
  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 +7 -5
  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
@@ -1,17 +1,17 @@
1
1
  import { Actions, helper } from '@appbaseio/reactivecore';
2
- import { a as _extends } from './_rollupPluginBabelHelpers-c9fbe19f.js';
2
+ import { a as _extends } from './_rollupPluginBabelHelpers-ecf6c03c.js';
3
3
  import VueTypes from 'vue-types';
4
4
  import { componentTypes } from '@appbaseio/reactivecore/lib/utils/constants';
5
5
  import '@appbaseio/vue-emotion';
6
- import { t as types } from './vueTypes-98d938a9.js';
6
+ import { t as types } from './vueTypes-9326e0be.js';
7
7
  import '@appbaseio/reactivecore/lib/utils/transform';
8
8
  import 'redux';
9
- import { f as updateCustomQuery, i as isQueryIdentical, c as connect } from './index-1fe91a0a.js';
10
- import { C as ComponentWrapper } from './ComponentWrapper-d0b21b95.js';
11
- import { T as Title } from './Title-22c2f3bf.js';
12
- import { C as Container } from './Container-f5efec9e.js';
9
+ import { f as updateCustomQuery, i as isQueryIdentical, c as connect } from './index-5daa8276.js';
10
+ import { C as ComponentWrapper } from './ComponentWrapper-bbb717bc.js';
11
+ import { T as Title } from './Title-579f8d6c.js';
12
+ import { C as Container } from './Container-4383c6f0.js';
13
13
  import NoSSR from 'vue-no-ssr';
14
- import { g as getComponents, S as Slider } from './ssr-2f57791d.js';
14
+ import { g as getComponents, S as Slider } from './ssr-e3196de1.js';
15
15
 
16
16
  var updateQuery = Actions.updateQuery,
17
17
  setQueryOptions = Actions.setQueryOptions,
@@ -57,7 +57,8 @@ var RangeSlider = {
57
57
  title: types.title,
58
58
  URLParams: VueTypes.bool.def(false),
59
59
  sliderOptions: VueTypes.object.def({}),
60
- nestedField: types.string
60
+ nestedField: types.string,
61
+ index: VueTypes.string
61
62
  },
62
63
  methods: {
63
64
  handleSliderChange: function handleSliderChange(values) {
@@ -72,32 +73,28 @@ var RangeSlider = {
72
73
  });
73
74
  }
74
75
  },
75
- handleSlider: function handleSlider(values) {
76
- var _this = this;
77
-
78
- clearTimeout(this.handleSliderChange._tId);
79
- this.handleSliderChange._tId = setTimeout(function () {
80
- _this.handleSliderChange(values);
81
- }, 100);
76
+ handleSlider: function handleSlider() {
77
+ var sliderValues = this.$refs.slider.getValue();
78
+ this.handleSliderChange(sliderValues);
82
79
  },
83
80
  handleChange: function handleChange(currentValue, props) {
84
- var _this2 = this;
81
+ var _this = this;
85
82
 
86
83
  if (props === void 0) {
87
84
  props = this.$props;
88
85
  }
89
86
 
90
87
  var performUpdate = function performUpdate() {
91
- _this2.currentValue = currentValue;
88
+ _this.currentValue = currentValue;
92
89
 
93
- _this2.updateQueryHandler([currentValue[0], currentValue[1]], props);
90
+ _this.updateQueryHandler([currentValue[0], currentValue[1]], props);
94
91
 
95
- _this2.$emit('valueChange', {
92
+ _this.$emit('valueChange', {
96
93
  start: currentValue[0],
97
94
  end: currentValue[1]
98
95
  });
99
96
 
100
- _this2.$emit('value-change', {
97
+ _this.$emit('value-change', {
101
98
  start: currentValue[0],
102
99
  end: currentValue[1]
103
100
  });
@@ -129,7 +126,7 @@ var RangeSlider = {
129
126
  currentEnd = value[1]; // check if the slider is at its initial position
130
127
 
131
128
  var isInitialValue = currentStart === start && currentEnd === end;
132
- this.setQueryOptions(props.componentId, customQueryOptions);
129
+ this.setQueryOptions(props.componentId, customQueryOptions, false);
133
130
  this.updateQuery({
134
131
  componentId: props.componentId,
135
132
  query: query,
@@ -165,6 +162,10 @@ var RangeSlider = {
165
162
  created: function created() {
166
163
  if (!this.$props.range) {
167
164
  console.error('%crange is not defined. Read more about this at https://opensource.appbase.io/reactive-manual/vue/range-components/rangeslider.html#props', 'font-size: 12.5px;');
165
+ }
166
+
167
+ if (!this.enableAppbase && this.$props.index) {
168
+ console.warn('Warning(ReactiveSearch): In order to use the `index` prop, the `enableAppbase` prop must be set to true in `ReactiveBase`.');
168
169
  } // Set custom query in store
169
170
 
170
171
 
@@ -204,12 +205,13 @@ var RangeSlider = {
204
205
  "max": this.$props.range.end,
205
206
  "dotSize": 20,
206
207
  "height": 4,
207
- "enable-cross": false
208
+ "enable-cross": false,
209
+ "tooltip": "always"
210
+ },
211
+ "on": {
212
+ "drag-end": this.handleSlider
208
213
  },
209
- "props": _extends({}, this.$props.sliderOptions),
210
- "on": _extends({}, {
211
- input: this.handleSlider
212
- })
214
+ "props": _extends({}, this.$props.sliderOptions)
213
215
  }), this.$props.rangeLabels && h("div", {
214
216
  "class": "label-container"
215
217
  }, [h("label", {
@@ -251,7 +253,7 @@ RangeSlider.defaultQuery = function (values, props) {
251
253
 
252
254
  RangeSlider.parseValue = function (value, props) {
253
255
  if (value) {
254
- return [value.start, value.end];
256
+ return Array.isArray(value) ? value : [value.start, value.end];
255
257
  }
256
258
 
257
259
  if (props.range) {
@@ -266,7 +268,8 @@ var mapStateToProps = function mapStateToProps(state, props) {
266
268
  options: state.aggregations[props.componentId] ? state.aggregations[props.componentId][props.dataField] && state.aggregations[props.componentId][props.dataField].buckets // eslint-disable-line
267
269
  : [],
268
270
  selectedValue: state.selectedValues[props.componentId] ? state.selectedValues[props.componentId].value : null,
269
- componentProps: state.props[props.componentId]
271
+ componentProps: state.props[props.componentId],
272
+ enableAppbase: state.config.enableAppbase
270
273
  };
271
274
  };
272
275
 
@@ -1,13 +1,13 @@
1
1
  import configureStore, { Actions, helper } from '@appbaseio/reactivecore';
2
- import { _ as _taggedTemplateLiteralLoose, a as _extends } from './_rollupPluginBabelHelpers-c9fbe19f.js';
2
+ import { _ as _taggedTemplateLiteralLoose, a as _extends } from './_rollupPluginBabelHelpers-ecf6c03c.js';
3
3
  import VueTypes from 'vue-types';
4
4
  import '@appbaseio/reactivecore/lib/utils/constants';
5
+ import { isEqual as isEqual$1 } from '@appbaseio/reactivecore/lib/utils/helper';
5
6
  import styled from '@appbaseio/vue-emotion';
6
- import { t as types } from './vueTypes-98d938a9.js';
7
+ import { t as types } from './vueTypes-9326e0be.js';
7
8
  import 'redux';
8
- import { c as connect, e as composeThemeObject } from './index-1fe91a0a.js';
9
+ import { c as connect, e as composeThemeObject, X as X_SEARCH_CLIENT } from './index-5daa8276.js';
9
10
  import _mergeJSXProps from '@vue/babel-helper-vue-jsx-merge-props';
10
- import { isEqual as isEqual$1 } from '@appbaseio/reactivecore/lib/utils/helper';
11
11
  import { updateAnalyticsConfig } from '@appbaseio/reactivecore/lib/actions/analytics';
12
12
  import Appbase from 'appbase-js';
13
13
  import 'url-search-params-polyfill';
@@ -41,15 +41,7 @@ var Provider = {
41
41
  }
42
42
  };
43
43
 
44
- function _templateObject() {
45
- var data = _taggedTemplateLiteralLoose(["\n\tfont-family: ", ";\n\tfont-size: ", ";\n\tcolor: ", ";\n\twidth: 100%;\n\n\tinput,\n\tbutton,\n\ttextarea,\n\tselect {\n\t\tfont-family: ", ";\n\t}\n\n\t*,\n\t*:before,\n\t*:after {\n\t\tbox-sizing: border-box;\n\t}\n"]);
46
-
47
- _templateObject = function _templateObject() {
48
- return data;
49
- };
50
-
51
- return data;
52
- }
44
+ var _templateObject;
53
45
  var Base = {
54
46
  functional: true,
55
47
  render: function render(h, _ref) {
@@ -61,7 +53,7 @@ var Base = {
61
53
  return h(T, _mergeJSXProps([{}, props]), [children]);
62
54
  }
63
55
  };
64
- var Base$1 = styled(Base)(_templateObject(), function (_ref2) {
56
+ var Base$1 = styled(Base)(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n\tfont-family: ", ";\n\tfont-size: ", ";\n\tcolor: ", ";\n\twidth: 100%;\n\n\tinput,\n\tbutton,\n\ttextarea,\n\tselect {\n\t\tfont-family: ", ";\n\t}\n\n\t*,\n\t*:before,\n\t*:after {\n\t\tbox-sizing: border-box;\n\t}\n"])), function (_ref2) {
65
57
  var theme = _ref2.theme;
66
58
  return theme.typography.fontFamily;
67
59
  }, function (_ref3) {
@@ -85,7 +77,7 @@ var URLParamsProvider = {
85
77
  headers: types.headers,
86
78
  getSearchParams: types.func,
87
79
  setSearchParams: types.func,
88
- as: types.string.def('div')
80
+ as: VueTypes.string.def('div')
89
81
  },
90
82
  mounted: function mounted() {
91
83
  var _this = this;
@@ -233,7 +225,9 @@ var URLParamsProvider = {
233
225
  return value.map(function (item) {
234
226
  return _this3.getValue(item);
235
227
  });
236
- } else if (value && typeof value === 'object') {
228
+ }
229
+
230
+ if (value && typeof value === 'object') {
237
231
  // TODO: support for NestedList
238
232
  if (value.location) return value;
239
233
  if (value.category) return value;
@@ -358,11 +352,11 @@ var ReactiveBase = {
358
352
  }
359
353
  },
360
354
  props: {
361
- app: types.stringRequired,
355
+ app: types.string,
362
356
  analytics: VueTypes.bool,
363
357
  analyticsConfig: types.analyticsConfig,
364
358
  appbaseConfig: types.appbaseConfig,
365
- enableAppbase: types.bool.def(false),
359
+ enableAppbase: VueTypes.bool.def(false),
366
360
  credentials: types.string,
367
361
  headers: types.headers,
368
362
  queryParams: types.string,
@@ -371,13 +365,15 @@ var ReactiveBase = {
371
365
  type: types.string,
372
366
  url: types.string,
373
367
  mapKey: types.string,
368
+ initialQueriesSyncTime: types.number,
374
369
  className: types.string,
375
370
  initialState: VueTypes.object.def({}),
376
371
  transformRequest: types.func,
377
372
  transformResponse: types.func,
378
373
  as: VueTypes.string.def('div'),
379
374
  getSearchParams: types.func,
380
- setSearchParams: types.func
375
+ setSearchParams: types.func,
376
+ mongodb: types.mongodb
381
377
  },
382
378
  provide: function provide() {
383
379
  return {
@@ -417,6 +413,27 @@ var ReactiveBase = {
417
413
  this.store.dispatch(updateAnalyticsConfig(newVal));
418
414
  }
419
415
  }
416
+ },
417
+ mongodb: function mongodb() {
418
+ this.updateState(this.$props);
419
+ }
420
+ },
421
+ computed: {
422
+ getHeaders: function getHeaders() {
423
+ var _this$$props = this.$props,
424
+ enableAppbase = _this$$props.enableAppbase,
425
+ headers = _this$$props.headers,
426
+ appbaseConfig = _this$$props.appbaseConfig,
427
+ mongodb = _this$$props.mongodb;
428
+
429
+ var _ref = appbaseConfig || {},
430
+ enableTelemetry = _ref.enableTelemetry;
431
+
432
+ return _extends({}, enableAppbase && !mongodb && _extends({
433
+ 'X-Search-Client': X_SEARCH_CLIENT
434
+ }, enableTelemetry === false && {
435
+ 'X-Enable-Telemetry': false
436
+ }), headers);
420
437
  }
421
438
  },
422
439
  methods: {
@@ -427,10 +444,10 @@ var ReactiveBase = {
427
444
  setStore: function setStore(props) {
428
445
  var credentials = props.url && props.url.trim() !== '' && !props.credentials ? null : props.credentials;
429
446
 
430
- var appbaseConfig = _extends(_extends({}, props.analyticsConfig), props.appbaseConfig);
447
+ var appbaseConfig = _extends({}, props.analyticsConfig, props.appbaseConfig);
431
448
 
432
449
  var config = {
433
- url: props.url && props.url.trim() !== '' ? props.url : 'https://scalr.api.appbase.io',
450
+ url: props.url && props.url.trim() !== '' ? props.url : '',
434
451
  app: props.app,
435
452
  credentials: credentials,
436
453
  type: props.type ? props.type : '*',
@@ -438,7 +455,8 @@ var ReactiveBase = {
438
455
  transformResponse: props.transformResponse,
439
456
  enableAppbase: props.enableAppbase,
440
457
  analytics: props.appbaseConfig ? props.appbaseConfig.recordAnalytics : props.analytics,
441
- analyticsConfig: appbaseConfig
458
+ analyticsConfig: appbaseConfig,
459
+ mongodb: props.mongodb
442
460
  };
443
461
  var queryParams = '';
444
462
 
@@ -450,9 +468,10 @@ var ReactiveBase = {
450
468
 
451
469
  var params = new URLSearchParams(queryParams);
452
470
  var selectedValues = {};
471
+ var urlValues = {};
453
472
  Array.from(params.keys()).forEach(function (key) {
454
473
  try {
455
- var _extends2;
474
+ var _extends2, _extends3;
456
475
 
457
476
  var parsedParams = JSON.parse(params.get(key));
458
477
  var selectedValue = {};
@@ -464,13 +483,13 @@ var ReactiveBase = {
464
483
  }
465
484
 
466
485
  if (parsedParams.category) selectedValue.category = parsedParams.category;
467
- selectedValues = _extends(_extends({}, selectedValues), {}, (_extends2 = {}, _extends2[key] = selectedValue, _extends2));
486
+ selectedValue.reference = 'URL';
487
+ selectedValues = _extends({}, selectedValues, (_extends2 = {}, _extends2[key] = selectedValue, _extends2));
488
+ urlValues = _extends({}, urlValues, (_extends3 = {}, _extends3[key] = selectedValue.value, _extends3));
468
489
  } catch (e) {// Do not add to selectedValues if JSON parsing fails.
469
490
  }
470
491
  });
471
- var _props$headers = props.headers,
472
- headers = _props$headers === void 0 ? {} : _props$headers,
473
- themePreset = props.themePreset;
492
+ var themePreset = props.themePreset;
474
493
  var appbaseRef = Appbase(config);
475
494
 
476
495
  if (this.$props.transformRequest) {
@@ -482,13 +501,16 @@ var ReactiveBase = {
482
501
  }
483
502
 
484
503
  var initialState = _extends({
485
- config: _extends(_extends({}, config), {}, {
504
+ config: _extends({}, config, {
505
+ initialQueriesSyncTime: props.initialQueriesSyncTime,
506
+ initialTimestamp: new Date().getTime(),
486
507
  mapKey: props.mapKey,
487
508
  themePreset: themePreset
488
509
  }),
489
510
  appbaseRef: appbaseRef,
490
511
  selectedValues: selectedValues,
491
- headers: headers
512
+ urlValues: urlValues,
513
+ headers: this.getHeaders
492
514
  }, this.$props.initialState);
493
515
 
494
516
  this.store = configureStore(initialState);
@@ -497,10 +519,9 @@ var ReactiveBase = {
497
519
  render: function render() {
498
520
  var h = arguments[0];
499
521
  var children = this.$slots["default"];
500
- var _this$$props = this.$props,
501
- headers = _this$$props.headers,
502
- style = _this$$props.style,
503
- className = _this$$props.className;
522
+ var _this$$props2 = this.$props,
523
+ style = _this$$props2.style,
524
+ className = _this$$props2.className;
504
525
  return h(Provider, {
505
526
  "attrs": {
506
527
  "store": this.store
@@ -508,7 +529,7 @@ var ReactiveBase = {
508
529
  }, [h(URLParamsProvider$1, {
509
530
  "attrs": {
510
531
  "as": this.$props.as,
511
- "headers": headers,
532
+ "headers": this.getHeaders,
512
533
  "className": className,
513
534
  "getSearchParams": this.getSearchParams,
514
535
  "setSearchParams": this.setSearchParams
@@ -1,13 +1,14 @@
1
1
  import { Actions, helper } from '@appbaseio/reactivecore';
2
- import { a as _extends, b as _objectWithoutPropertiesLoose } from './_rollupPluginBabelHelpers-c9fbe19f.js';
2
+ import { a as _extends, b as _objectWithoutPropertiesLoose } from './_rollupPluginBabelHelpers-ecf6c03c.js';
3
3
  import VueTypes from 'vue-types';
4
4
  import { componentTypes } from '@appbaseio/reactivecore/lib/utils/constants';
5
- import { t as types } from './vueTypes-98d938a9.js';
5
+ import { t as types } from './vueTypes-9326e0be.js';
6
6
  import '@appbaseio/reactivecore/lib/utils/transform';
7
7
  import 'redux';
8
- import { f as updateCustomQuery, u as updateDefaultQuery, i as isQueryIdentical, c as connect } from './index-1fe91a0a.js';
9
- import { C as ComponentWrapper } from './ComponentWrapper-d0b21b95.js';
8
+ import { f as updateCustomQuery, u as updateDefaultQuery, i as isQueryIdentical, c as connect } from './index-5daa8276.js';
9
+ import { C as ComponentWrapper } from './ComponentWrapper-bbb717bc.js';
10
10
 
11
+ var _excluded = ["options"];
11
12
  var updateQuery = Actions.updateQuery,
12
13
  setQueryOptions = Actions.setQueryOptions,
13
14
  setCustomQuery = Actions.setCustomQuery,
@@ -15,15 +16,16 @@ var updateQuery = Actions.updateQuery,
15
16
  var parseHits = helper.parseHits,
16
17
  isEqual = helper.isEqual,
17
18
  getCompositeAggsQuery = helper.getCompositeAggsQuery,
18
- getOptionsFromQuery = helper.getOptionsFromQuery,
19
- getResultStats = helper.getResultStats;
19
+ getResultStats = helper.getResultStats,
20
+ extractQueryFromCustomQuery = helper.extractQueryFromCustomQuery,
21
+ getOptionsForCustomQuery = helper.getOptionsForCustomQuery;
20
22
  var ReactiveComponent = {
21
23
  name: 'ReactiveComponent',
22
24
  props: {
23
25
  componentId: types.stringRequired,
24
26
  aggregationField: types.string,
25
27
  aggregationSize: VueTypes.number,
26
- size: VueTypes.number.def(20),
28
+ size: VueTypes.number,
27
29
  defaultQuery: types.func,
28
30
  customQuery: types.func,
29
31
  filterLabel: types.string,
@@ -31,7 +33,8 @@ var ReactiveComponent = {
31
33
  showFilter: VueTypes.bool.def(true),
32
34
  URLParams: VueTypes.bool.def(false),
33
35
  distinctField: types.string,
34
- distinctFieldConfig: types.props
36
+ distinctFieldConfig: types.props,
37
+ index: VueTypes.string
35
38
  },
36
39
  created: function created() {
37
40
  var _this = this;
@@ -40,33 +43,35 @@ var ReactiveComponent = {
40
43
  this.internalComponent = null;
41
44
  this.$defaultQuery = null; // Set custom query in store
42
45
 
43
- updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, undefined);
46
+ updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, this.selectedValue);
44
47
  var customQuery = props.customQuery,
45
48
  componentId = props.componentId,
46
49
  filterLabel = props.filterLabel,
47
50
  showFilter = props.showFilter,
48
51
  URLParams = props.URLParams,
49
52
  distinctField = props.distinctField,
50
- distinctFieldConfig = props.distinctFieldConfig;
53
+ distinctFieldConfig = props.distinctFieldConfig,
54
+ index = props.index;
51
55
 
52
- if (this.config.enableAppbase && this.aggregationField && this.aggregationField !== '') {
56
+ if (this.enableAppbase && this.aggregationField && this.aggregationField !== '') {
53
57
  console.warn('Warning(ReactiveSearch): The `aggregationField` prop has been marked as deprecated, please use the `distinctField` prop instead.');
54
58
  }
55
59
 
56
- if (!this.config.enableAppbase && (distinctField || distinctFieldConfig)) {
60
+ if (!this.enableAppbase && (distinctField || distinctFieldConfig)) {
57
61
  console.warn('Warning(ReactiveSearch): In order to use the `distinctField` and `distinctFieldConfig` props, the `enableAppbase` prop must be set to true in `ReactiveBase`.');
58
62
  }
59
63
 
60
- if (customQuery) {
61
- var calcCustomQuery = customQuery(props);
62
-
63
- var _ref = calcCustomQuery || {},
64
- query = _ref.query;
64
+ if (!this.enableAppbase && index) {
65
+ console.warn('Warning(ReactiveSearch): In order to use the `index` prop, the `enableAppbase` prop must be set to true in `ReactiveBase`.');
66
+ }
65
67
 
66
- var customQueryOptions = calcCustomQuery ? getOptionsFromQuery(calcCustomQuery) : null;
68
+ if (customQuery) {
69
+ var calcCustomQuery = customQuery(this.selectedValue, props);
70
+ var query = extractQueryFromCustomQuery(calcCustomQuery);
71
+ var customQueryOptions = calcCustomQuery ? getOptionsForCustomQuery(calcCustomQuery) : null;
67
72
 
68
73
  if (customQueryOptions) {
69
- this.setQueryOptions(componentId, _extends(_extends({}, customQueryOptions), this.getAggsQuery()), false);
74
+ this.setQueryOptions(componentId, _extends({}, customQueryOptions, this.getAggsQuery()), false);
70
75
  } else this.setQueryOptions(componentId, this.getAggsQuery(), false);
71
76
 
72
77
  this.updateQuery({
@@ -79,26 +84,29 @@ var ReactiveComponent = {
79
84
  });
80
85
  }
81
86
 
82
- this.setQuery = function (_ref2) {
83
- var options = _ref2.options,
84
- obj = _objectWithoutPropertiesLoose(_ref2, ["options"]);
87
+ this.setQuery = function (_ref) {
88
+ var options = _ref.options,
89
+ obj = _objectWithoutPropertiesLoose(_ref, _excluded);
85
90
 
86
- if (options) {
87
- _this.setQueryOptions(props.componentId, _extends(_extends({}, options), _this.getAggsQuery()), false);
88
- } // Update customQuery field for RS API
91
+ var queryToBeSet = obj.query; // when enableAppbase is true, Backend throws error because of repeated query in request body
92
+
93
+ if (queryToBeSet && queryToBeSet.query) {
94
+ queryToBeSet = queryToBeSet.query;
95
+ }
89
96
 
97
+ var customQueryCalc = _extends({}, options, {
98
+ query: customQueryCalc
99
+ }); // Update customQuery field for RS API
90
100
 
91
- if (obj && obj.query || options) {
92
- var customQueryCalc = _extends({}, options);
93
101
 
94
- if (obj && obj.query) {
95
- customQueryCalc.query = obj.query;
96
- }
102
+ _this.setCustomQuery(props.componentId, customQueryCalc);
97
103
 
98
- _this.setCustomQuery(props.componentId, customQueryCalc);
104
+ if (options) {
105
+ _this.setQueryOptions(props.componentId, _extends({}, _this.getAggsQuery(), options), false);
99
106
  }
100
107
 
101
- _this.updateQuery(_extends(_extends({}, obj), {}, {
108
+ _this.updateQuery(_extends({}, obj, {
109
+ query: customQueryCalc.query,
102
110
  componentId: props.componentId,
103
111
  label: props.filterLabel,
104
112
  showFilter: props.showFilter,
@@ -109,23 +117,22 @@ var ReactiveComponent = {
109
117
  if (props.defaultQuery) {
110
118
  this.internalComponent = props.componentId + "__internal";
111
119
  }
112
- },
113
- beforeMount: function beforeMount() {
120
+
114
121
  if (this.internalComponent && this.$props.defaultQuery) {
115
- updateDefaultQuery(this.componentId, this.setDefaultQuery, this.$props, undefined);
116
- this.$defaultQuery = this.$props.defaultQuery();
122
+ updateDefaultQuery(this.componentId, this.setDefaultQuery, this.$props, this.selectedValue);
123
+ this.$defaultQuery = this.$props.defaultQuery(this.selectedValue, this.$props);
124
+
125
+ var _query = extractQueryFromCustomQuery(this.$defaultQuery);
117
126
 
118
- var _ref3 = this.$defaultQuery || {},
119
- query = _ref3.query,
120
- queryOptions = _objectWithoutPropertiesLoose(_ref3, ["query"]);
127
+ var queryOptions = getOptionsForCustomQuery(this.$defaultQuery);
121
128
 
122
129
  if (queryOptions) {
123
- this.setQueryOptions(this.internalComponent, _extends(_extends({}, queryOptions), this.getAggsQuery()), false);
130
+ this.setQueryOptions(this.internalComponent, _extends({}, queryOptions, this.getAggsQuery()), false);
124
131
  } else this.setQueryOptions(this.internalComponent, this.getAggsQuery(), false);
125
132
 
126
133
  this.updateQuery({
127
134
  componentId: this.internalComponent,
128
- query: query || null
135
+ query: _query
129
136
  });
130
137
  }
131
138
  },
@@ -171,43 +178,39 @@ var ReactiveComponent = {
171
178
  }
172
179
  },
173
180
  defaultQuery: function defaultQuery(newVal, oldVal) {
174
- if (newVal && !isQueryIdentical(newVal, oldVal, undefined, this.$props)) {
175
- this.$defaultQuery = newVal();
176
-
177
- var _ref4 = this.$defaultQuery || {},
178
- query = _ref4.query,
179
- queryOptions = _objectWithoutPropertiesLoose(_ref4, ["query"]);
181
+ if (newVal && !isQueryIdentical(newVal, oldVal, this.selectedValue, this.$props)) {
182
+ this.$defaultQuery = newVal(this.selectedValue, this.$props);
183
+ var query = extractQueryFromCustomQuery(this.$defaultQuery);
184
+ var queryOptions = getOptionsForCustomQuery(this.$defaultQuery);
180
185
 
181
186
  if (queryOptions) {
182
- this.setQueryOptions(this.internalComponent, _extends(_extends({}, queryOptions), this.getAggsQuery()), false);
187
+ this.setQueryOptions(this.internalComponent, _extends({}, queryOptions, this.getAggsQuery()), false);
183
188
  } else this.setQueryOptions(this.internalComponent, this.getAggsQuery(), false); // Update default query for RS API
184
189
 
185
190
 
186
- updateDefaultQuery(this.componentId, this.setDefaultQuery, this.$props, undefined);
191
+ updateDefaultQuery(this.componentId, this.setDefaultQuery, this.$props, this.selectedValue);
187
192
  this.updateQuery({
188
193
  componentId: this.internalComponent,
189
- query: query || null
194
+ query: query
190
195
  });
191
196
  }
192
197
  },
193
198
  customQuery: function customQuery(newVal, oldVal) {
194
- if (newVal && !isQueryIdentical(newVal, oldVal, undefined, this.$props)) {
199
+ if (newVal && !isQueryIdentical(newVal, oldVal, this.selectedValue, this.$props)) {
195
200
  var componentId = this.$props.componentId;
196
- this.$customQuery = newVal(this.$props);
197
-
198
- var _ref5 = this.$customQuery || {},
199
- query = _ref5.query,
200
- queryOptions = _objectWithoutPropertiesLoose(_ref5, ["query"]);
201
+ this.$customQuery = newVal(this.selectedValue, this.$props);
202
+ var query = extractQueryFromCustomQuery(this.$customQuery);
203
+ var queryOptions = getOptionsForCustomQuery(this.$customQuery);
201
204
 
202
205
  if (queryOptions) {
203
- this.setQueryOptions(componentId, _extends(_extends({}, queryOptions), this.getAggsQuery()), false);
206
+ this.setQueryOptions(componentId, _extends({}, queryOptions, this.getAggsQuery()), false);
204
207
  } else this.setQueryOptions(componentId, this.getAggsQuery(), false); // Update custom query for RS API
205
208
 
206
209
 
207
- updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, undefined);
210
+ updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, this.selectedValue);
208
211
  this.updateQuery({
209
212
  componentId: componentId,
210
- query: query || null
213
+ query: query
211
214
  });
212
215
  }
213
216
  }
@@ -221,10 +224,10 @@ var ReactiveComponent = {
221
224
  isLoading = this.isLoading,
222
225
  selectedValue = this.selectedValue;
223
226
 
224
- var propsToBePassed = _extends(_extends({
227
+ var propsToBePassed = _extends({
225
228
  error: error,
226
229
  loading: isLoading
227
- }, this.getData()), {}, {
230
+ }, this.getData(), {
228
231
  value: selectedValue,
229
232
  setQuery: this.setQuery
230
233
  });
@@ -287,6 +290,10 @@ var ReactiveComponent = {
287
290
  }
288
291
  };
289
292
 
293
+ ReactiveComponent.hasInternalComponent = function (props) {
294
+ return !!props.defaultQuery;
295
+ };
296
+
290
297
  var mapStateToProps = function mapStateToProps(state, props) {
291
298
  return {
292
299
  aggregations: state.aggregations[props.componentId] && state.aggregations[props.componentId] || null,
@@ -301,7 +308,7 @@ var mapStateToProps = function mapStateToProps(state, props) {
301
308
  total: state.hits[props.componentId] && state.hits[props.componentId].total,
302
309
  hidden: state.hits[props.componentId] && state.hits[props.componentId].hidden,
303
310
  componentProps: state.props[props.componentId],
304
- config: state.config
311
+ enableAppbase: state.config.enableAppbase
305
312
  };
306
313
  };
307
314