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

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 +8107 -7501
  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 +72 -58
  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 +187 -104
  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 +72 -58
  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 +188 -105
  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,37 @@ 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
91
  if (options) {
87
- _this.setQueryOptions(props.componentId, _extends(_extends({}, options), _this.getAggsQuery()), false);
88
- } // Update customQuery field for RS API
92
+ _this.setQueryOptions(props.componentId, _extends({}, options, _this.getAggsQuery()), false);
93
+ }
94
+
95
+ var queryToBeSet = obj.query; // when enableAppbase is true, Backend throws error because of repeated query in request body
89
96
 
97
+ if (obj && obj.query && obj.query.query) {
98
+ queryToBeSet = obj.query.query;
99
+ }
90
100
 
91
- if (obj && obj.query || options) {
92
- var customQueryCalc = _extends({}, options);
101
+ var customQueryCalc = _extends({}, options); // Update customQuery field for RS API
93
102
 
94
- if (obj && obj.query) {
95
- customQueryCalc.query = obj.query;
103
+
104
+ if (queryToBeSet || options) {
105
+ if (queryToBeSet.query) {
106
+ if (queryToBeSet.id) {
107
+ customQueryCalc = queryToBeSet;
108
+ } else {
109
+ customQueryCalc.query = queryToBeSet;
110
+ }
96
111
  }
97
112
 
98
113
  _this.setCustomQuery(props.componentId, customQueryCalc);
99
114
  }
100
115
 
101
- _this.updateQuery(_extends(_extends({}, obj), {}, {
116
+ _this.updateQuery(_extends({}, obj, {
117
+ query: customQueryCalc,
102
118
  componentId: props.componentId,
103
119
  label: props.filterLabel,
104
120
  showFilter: props.showFilter,
@@ -112,20 +128,18 @@ var ReactiveComponent = {
112
128
  },
113
129
  beforeMount: function beforeMount() {
114
130
  if (this.internalComponent && this.$props.defaultQuery) {
115
- updateDefaultQuery(this.componentId, this.setDefaultQuery, this.$props, undefined);
116
- this.$defaultQuery = this.$props.defaultQuery();
117
-
118
- var _ref3 = this.$defaultQuery || {},
119
- query = _ref3.query,
120
- queryOptions = _objectWithoutPropertiesLoose(_ref3, ["query"]);
131
+ updateDefaultQuery(this.componentId, this.setDefaultQuery, this.$props, this.selectedValue);
132
+ this.$defaultQuery = this.$props.defaultQuery(this.selectedValue, this.$props);
133
+ var query = extractQueryFromCustomQuery(this.$defaultQuery);
134
+ var queryOptions = getOptionsForCustomQuery(this.$defaultQuery);
121
135
 
122
136
  if (queryOptions) {
123
- this.setQueryOptions(this.internalComponent, _extends(_extends({}, queryOptions), this.getAggsQuery()), false);
137
+ this.setQueryOptions(this.internalComponent, _extends({}, queryOptions, this.getAggsQuery()), false);
124
138
  } else this.setQueryOptions(this.internalComponent, this.getAggsQuery(), false);
125
139
 
126
140
  this.updateQuery({
127
141
  componentId: this.internalComponent,
128
- query: query || null
142
+ query: query
129
143
  });
130
144
  }
131
145
  },
@@ -171,43 +185,39 @@ var ReactiveComponent = {
171
185
  }
172
186
  },
173
187
  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"]);
188
+ if (newVal && !isQueryIdentical(newVal, oldVal, this.selectedValue, this.$props)) {
189
+ this.$defaultQuery = newVal(this.selectedValue, this.$props);
190
+ var query = extractQueryFromCustomQuery(this.$defaultQuery);
191
+ var queryOptions = getOptionsForCustomQuery(this.$defaultQuery);
180
192
 
181
193
  if (queryOptions) {
182
- this.setQueryOptions(this.internalComponent, _extends(_extends({}, queryOptions), this.getAggsQuery()), false);
194
+ this.setQueryOptions(this.internalComponent, _extends({}, queryOptions, this.getAggsQuery()), false);
183
195
  } else this.setQueryOptions(this.internalComponent, this.getAggsQuery(), false); // Update default query for RS API
184
196
 
185
197
 
186
- updateDefaultQuery(this.componentId, this.setDefaultQuery, this.$props, undefined);
198
+ updateDefaultQuery(this.componentId, this.setDefaultQuery, this.$props, this.selectedValue);
187
199
  this.updateQuery({
188
200
  componentId: this.internalComponent,
189
- query: query || null
201
+ query: query
190
202
  });
191
203
  }
192
204
  },
193
205
  customQuery: function customQuery(newVal, oldVal) {
194
- if (newVal && !isQueryIdentical(newVal, oldVal, undefined, this.$props)) {
206
+ if (newVal && !isQueryIdentical(newVal, oldVal, this.selectedValue, this.$props)) {
195
207
  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"]);
208
+ this.$customQuery = newVal(this.selectedValue, this.$props);
209
+ var query = extractQueryFromCustomQuery(this.$customQuery);
210
+ var queryOptions = getOptionsForCustomQuery(this.$customQuery);
201
211
 
202
212
  if (queryOptions) {
203
- this.setQueryOptions(componentId, _extends(_extends({}, queryOptions), this.getAggsQuery()), false);
213
+ this.setQueryOptions(componentId, _extends({}, queryOptions, this.getAggsQuery()), false);
204
214
  } else this.setQueryOptions(componentId, this.getAggsQuery(), false); // Update custom query for RS API
205
215
 
206
216
 
207
- updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, undefined);
217
+ updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, this.selectedValue);
208
218
  this.updateQuery({
209
219
  componentId: componentId,
210
- query: query || null
220
+ query: query
211
221
  });
212
222
  }
213
223
  }
@@ -221,10 +231,10 @@ var ReactiveComponent = {
221
231
  isLoading = this.isLoading,
222
232
  selectedValue = this.selectedValue;
223
233
 
224
- var propsToBePassed = _extends(_extends({
234
+ var propsToBePassed = _extends({
225
235
  error: error,
226
236
  loading: isLoading
227
- }, this.getData()), {}, {
237
+ }, this.getData(), {
228
238
  value: selectedValue,
229
239
  setQuery: this.setQuery
230
240
  });
@@ -287,6 +297,10 @@ var ReactiveComponent = {
287
297
  }
288
298
  };
289
299
 
300
+ ReactiveComponent.hasInternalComponent = function (props) {
301
+ return !!props.defaultQuery;
302
+ };
303
+
290
304
  var mapStateToProps = function mapStateToProps(state, props) {
291
305
  return {
292
306
  aggregations: state.aggregations[props.componentId] && state.aggregations[props.componentId] || null,
@@ -301,7 +315,7 @@ var mapStateToProps = function mapStateToProps(state, props) {
301
315
  total: state.hits[props.componentId] && state.hits[props.componentId].total,
302
316
  hidden: state.hits[props.componentId] && state.hits[props.componentId].hidden,
303
317
  componentProps: state.props[props.componentId],
304
- config: state.config
318
+ enableAppbase: state.config.enableAppbase
305
319
  };
306
320
  };
307
321