@appbaseio/reactivesearch-vue 1.25.0 → 1.27.0-gamma.2

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 (67) hide show
  1. package/dist/@appbaseio/reactivesearch-vue.umd.js +1822 -512
  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/{CancelSvg-62d42af4.js → CancelSvg-4aa35935.js} +1 -14
  6. package/dist/cjs/{ComponentWrapper-32481890.js → ComponentWrapper-10bad289.js} +1 -1
  7. package/dist/cjs/DataSearch-37dfdf39.js +2154 -0
  8. package/dist/cjs/DataSearch.js +18 -2101
  9. package/dist/cjs/{DropDown-5847d6e4.js → DropDown-0076babc.js} +18 -13
  10. package/dist/cjs/DynamicRangeSlider.js +48 -12
  11. package/dist/cjs/{Input-3cc3fa59.js → Input-a9ee53ed.js} +1 -1
  12. package/dist/cjs/MultiDropdownList.js +10 -9
  13. package/dist/cjs/MultiList.js +19 -14
  14. package/dist/cjs/MultiRange.js +4 -4
  15. package/dist/cjs/RangeInput.js +10 -6
  16. package/dist/cjs/RangeSlider.js +19 -22
  17. package/dist/cjs/ReactiveBase.js +2 -2
  18. package/dist/cjs/ReactiveComponent.js +3 -3
  19. package/dist/cjs/ReactiveList.js +14 -4
  20. package/dist/cjs/ResultCard.js +1 -1
  21. package/dist/cjs/ResultList.js +1 -1
  22. package/dist/cjs/SelectedFilters.js +8 -6
  23. package/dist/cjs/SingleDropdownList.js +9 -8
  24. package/dist/cjs/SingleList.js +6 -6
  25. package/dist/cjs/SingleRange.js +4 -4
  26. package/dist/cjs/StateProvider.js +7 -3
  27. package/dist/cjs/ToggleButton.js +4 -4
  28. package/dist/cjs/{index-89c39a9e.js → index-4509aa45.js} +10 -4
  29. package/dist/cjs/index.js +14 -13
  30. package/dist/cjs/install-d95c7185.js +1204 -0
  31. package/dist/cjs/install.js +28 -33
  32. package/dist/cjs/ssr-0ee35a09.js +39 -0
  33. package/dist/cjs/version.js +1 -1
  34. package/dist/cjs/{vueTypes-4c19b4c8.js → vueTypes-57d01f18.js} +3 -3
  35. package/dist/es/{CancelSvg-e0cace2d.js → CancelSvg-c2c03a35.js} +1 -14
  36. package/dist/es/{ComponentWrapper-4f85a67e.js → ComponentWrapper-0f3431d1.js} +1 -1
  37. package/dist/es/DataSearch-77325036.js +2141 -0
  38. package/dist/es/DataSearch.js +17 -2100
  39. package/dist/es/{DropDown-1ee01031.js → DropDown-0dd8f2a3.js} +18 -13
  40. package/dist/es/DynamicRangeSlider.js +48 -12
  41. package/dist/es/{Input-08bb1bcf.js → Input-10b1d62d.js} +1 -1
  42. package/dist/es/MultiDropdownList.js +10 -9
  43. package/dist/es/MultiList.js +19 -14
  44. package/dist/es/MultiRange.js +4 -4
  45. package/dist/es/RangeInput.js +10 -6
  46. package/dist/es/RangeSlider.js +19 -22
  47. package/dist/es/ReactiveBase.js +2 -2
  48. package/dist/es/ReactiveComponent.js +3 -3
  49. package/dist/es/ReactiveList.js +14 -4
  50. package/dist/es/ResultCard.js +1 -1
  51. package/dist/es/ResultList.js +1 -1
  52. package/dist/es/SelectedFilters.js +8 -6
  53. package/dist/es/SingleDropdownList.js +9 -8
  54. package/dist/es/SingleList.js +6 -6
  55. package/dist/es/SingleRange.js +4 -4
  56. package/dist/es/StateProvider.js +7 -3
  57. package/dist/es/ToggleButton.js +4 -4
  58. package/dist/es/{index-cb1950b6.js → index-78920565.js} +10 -4
  59. package/dist/es/index.js +10 -10
  60. package/dist/es/install-432674ef.js +1197 -0
  61. package/dist/es/install.js +26 -35
  62. package/dist/es/ssr-a41dfea9.js +33 -0
  63. package/dist/es/version.js +1 -1
  64. package/dist/es/{vueTypes-fb61bb7b.js → vueTypes-687b2304.js} +3 -3
  65. package/package.json +5 -5
  66. package/dist/cjs/ssr-08e95ede.js +0 -39
  67. package/dist/es/ssr-5d255b08.js +0 -33
@@ -9,10 +9,11 @@ var VueTypes = _interopDefault(require('vue-types'));
9
9
  var emotion = require('emotion');
10
10
  var styled = require('@appbaseio/vue-emotion');
11
11
  var styled__default = _interopDefault(styled);
12
- var vueTypes = require('./vueTypes-4c19b4c8.js');
13
- var index = require('./index-89c39a9e.js');
14
- var CancelSvg = require('./CancelSvg-62d42af4.js');
15
- var Input = require('./Input-3cc3fa59.js');
12
+ var vueTypes = require('./vueTypes-57d01f18.js');
13
+ var index = require('./index-4509aa45.js');
14
+ var _mergeJSXProps = _interopDefault(require('@vue/babel-helper-vue-jsx-merge-props'));
15
+ var CancelSvg = require('./CancelSvg-4aa35935.js');
16
+ var Input = require('./Input-a9ee53ed.js');
16
17
  var suggestions = require('@appbaseio/reactivecore/lib/utils/suggestions');
17
18
 
18
19
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
@@ -126,7 +127,8 @@ var Dropdown = {
126
127
  isOpen = _ref.isOpen,
127
128
  highlightedIndex = _ref.highlightedIndex,
128
129
  getButtonProps = _ref.getButtonProps,
129
- getItemEvents = _ref.getItemEvents;
130
+ getItemEvents = _ref.getItemEvents,
131
+ getInputEvents = _ref.getInputEvents;
130
132
  return h("div", {
131
133
  "class": Input.suggestionsContainer
132
134
  }, [h(Select, {
@@ -151,7 +153,13 @@ var Dropdown = {
151
153
  getItemEvents: getItemEvents
152
154
  }) : isOpen && itemsToRender.length ? h("ul", {
153
155
  "class": Input.suggestions(themePreset, _this.theme) + " " + (_this.$props.small ? 'small' : '') + " " + getClassName(_this.$props.innerClass, 'list')
154
- }, [_this.$props.showSearch ? _this.renderSearchbox() : null, !hasCustomRenderer && filteredItemsToRender.length === 0 ? _this.renderNoResult() : filteredItemsToRender.map(function (item, index) {
156
+ }, [_this.$props.showSearch ? _this.renderSearchbox({
157
+ on: {
158
+ input: getInputEvents({
159
+ onInput: _this.handleInputChange
160
+ }).input
161
+ }
162
+ }) : null, !hasCustomRenderer && filteredItemsToRender.length === 0 ? _this.renderNoResult() : filteredItemsToRender.map(function (item, index) {
155
163
  var selected = _this.$props.multi // MultiDropdownList
156
164
  && (selectedItem && !!selectedItem[item[keyField]] // MultiDropdownRange
157
165
  || Array.isArray(selectedItem) && selectedItem.find(function (value) {
@@ -272,7 +280,7 @@ var Dropdown = {
272
280
  "class": getClassName(this.$props.innerClass, 'noResults') || null
273
281
  }, [index.isFunction(renderNoResults) ? renderNoResults() : renderNoResults]);
274
282
  },
275
- renderSearchbox: function renderSearchbox() {
283
+ renderSearchbox: function renderSearchbox(eventObject) {
276
284
  var h = this.$createElement;
277
285
  var _this$$props2 = this.$props,
278
286
  componentId = _this$$props2.componentId,
@@ -280,7 +288,7 @@ var Dropdown = {
280
288
  showClear = _this$$props2.showClear,
281
289
  themePreset = _this$$props2.themePreset,
282
290
  innerClass = _this$$props2.innerClass;
283
- var InputComponent = h(Input.Input, {
291
+ var InputComponent = h(Input.Input, _mergeJSXProps([{
284
292
  "attrs": {
285
293
  "id": componentId + "-input",
286
294
  "showIcon": false,
@@ -293,11 +301,8 @@ var Dropdown = {
293
301
  border: 0,
294
302
  borderBottom: '1px solid #ddd'
295
303
  },
296
- "class": getClassName(innerClass, 'input'),
297
- "on": {
298
- "change": this.handleInputChange
299
- }
300
- });
304
+ "class": getClassName(innerClass, 'input')
305
+ }, eventObject]));
301
306
 
302
307
  if (showClear) {
303
308
  return h(CancelSvg.InputWrapper, [InputComponent, this.searchTerm && h(CancelSvg.IconGroup, {
@@ -10,13 +10,13 @@ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-f127c8b7.js
10
10
  var VueTypes = _interopDefault(require('vue-types'));
11
11
  var constants = require('@appbaseio/reactivecore/lib/utils/constants');
12
12
  require('@appbaseio/vue-emotion');
13
- var vueTypes = require('./vueTypes-4c19b4c8.js');
13
+ var vueTypes = require('./vueTypes-57d01f18.js');
14
14
  require('redux');
15
- var index = require('./index-89c39a9e.js');
15
+ var index = require('./index-4509aa45.js');
16
16
  var Title = require('./Title-584a8cc8.js');
17
17
  var Container = require('./Container-526efa6a.js');
18
18
  var NoSSR = _interopDefault(require('vue-no-ssr'));
19
- var ssr = require('./ssr-08e95ede.js');
19
+ var ssr = require('./ssr-0ee35a09.js');
20
20
 
21
21
  var addComponent = configureStore.Actions.addComponent,
22
22
  removeComponent = configureStore.Actions.removeComponent,
@@ -54,7 +54,8 @@ var DynamicRangeSlider = {
54
54
  URLParams: VueTypes.bool.def(false),
55
55
  sliderOptions: VueTypes.object.def({}),
56
56
  nestedField: vueTypes.types.string,
57
- index: VueTypes.string
57
+ index: VueTypes.string,
58
+ value: vueTypes.types.range
58
59
  },
59
60
  data: function data() {
60
61
  this.internalRangeComponent = this.$props.componentId + "__range__internal";
@@ -100,6 +101,8 @@ var DynamicRangeSlider = {
100
101
  components = _this$$$store$getStat.components;
101
102
  }
102
103
 
104
+ var value = this.$props.value;
105
+
103
106
  if (this.destroyOnUnmount || components.indexOf(this.componentId) === -1) {
104
107
  this.addComponent(this.componentId);
105
108
  this.addComponent(this.internalRangeComponent);
@@ -108,6 +111,8 @@ var DynamicRangeSlider = {
108
111
  this.handleChange(this.selectedValue);
109
112
  } else if (this.selectedValue) {
110
113
  this.handleChange(DynamicRangeSlider.parseValue(this.selectedValue, this.$props));
114
+ } else if (value) {
115
+ this.handleChange(DynamicRangeSlider.parseValue(value, this.$props));
111
116
  } // get range before executing other queries
112
117
 
113
118
 
@@ -126,6 +131,13 @@ var DynamicRangeSlider = {
126
131
  }
127
132
  },
128
133
  methods: {
134
+ isControlled: function isControlled() {
135
+ if (this.$props.value && this.$listeners) {
136
+ return true;
137
+ }
138
+
139
+ return false;
140
+ },
129
141
  setDefaultValue: function setDefaultValue(_ref) {
130
142
  var start = _ref.start,
131
143
  end = _ref.end;
@@ -136,6 +148,8 @@ var DynamicRangeSlider = {
136
148
  defaultEnd = _this$$props$defaultV.end;
137
149
 
138
150
  this.handleChange([defaultStart, defaultEnd]);
151
+ } else if (this.isControlled()) {
152
+ this.handleChange(DynamicRangeSlider.parseValue(this.$props.value), 'change');
139
153
  } else {
140
154
  this.currentValue = [start, end];
141
155
  }
@@ -183,8 +197,18 @@ var DynamicRangeSlider = {
183
197
  aggs: aggs
184
198
  });
185
199
  },
186
- handleSlider: function handleSlider(values) {
187
- this.handleChange(values.currentValue);
200
+ handleSlider: function handleSlider() {
201
+ var sliderValues = this.$refs.slider.getValue();
202
+ var value = this.$props.value;
203
+
204
+ if (value === undefined) {
205
+ this.handleChange(sliderValues);
206
+ } else {
207
+ this.$emit('change', {
208
+ start: sliderValues[0],
209
+ end: sliderValues[1]
210
+ });
211
+ }
188
212
  },
189
213
  handleChange: function handleChange(currentValue) {
190
214
  var _this2 = this;
@@ -236,7 +260,7 @@ var DynamicRangeSlider = {
236
260
  currentEnd = value[1]; // check if the slider is at its initial position
237
261
 
238
262
  var isInitialValue = currentStart === start && currentEnd === end;
239
- this.setQueryOptions(this.$props.componentId, customQueryOptions);
263
+ this.setQueryOptions(this.$props.componentId, customQueryOptions, false);
240
264
  this.updateQuery({
241
265
  componentId: this.$props.componentId,
242
266
  query: query,
@@ -277,6 +301,7 @@ var DynamicRangeSlider = {
277
301
  start: this.range.start,
278
302
  end: this.range.end
279
303
  };
304
+ this.$emit('change', value);
280
305
  this.handleChange(DynamicRangeSlider.parseValue(value, this.$props));
281
306
  },
282
307
  range: function range(newValue, oldValue) {
@@ -298,6 +323,11 @@ var DynamicRangeSlider = {
298
323
  if (!index.isQueryIdentical(newVal, oldVal, this.$data.currentValue, this.$props)) {
299
324
  this.updateQueryHandler(this.$data.currentValue);
300
325
  }
326
+ },
327
+ value: function value(newVal, oldVal) {
328
+ if (!isEqual(newVal, oldVal)) {
329
+ this.handleChange(DynamicRangeSlider.parseValue(newVal, this.$props));
330
+ }
301
331
  }
302
332
  },
303
333
  render: function render() {
@@ -317,13 +347,15 @@ var DynamicRangeSlider = {
317
347
  }, [this.$props.title]), h(NoSSR, [h(ssr.Slider, {
318
348
  "class": getClassName(this.$props.innerClass, 'slider')
319
349
  }, [h("vue-slider-component", {
350
+ "ref": "slider",
320
351
  "attrs": {
321
- "value": [Math.max(start, this.currentValue[0]), Math.min(end, this.currentValue[1])],
322
- "min": Math.min(start, this.currentValue[0]),
323
- "max": Math.max(end, this.currentValue[1]),
352
+ "value": [Math.floor(Math.max(start, this.currentValue[0])), Math.ceil(Math.min(end, this.currentValue[1]))],
353
+ "min": Math.floor(Math.min(start, this.currentValue[0])),
354
+ "max": Math.ceil(Math.max(end, this.currentValue[1])),
324
355
  "dotSize": 20,
325
356
  "height": 4,
326
- "enable-cross": false
357
+ "enable-cross": false,
358
+ "tooltip": "always"
327
359
  },
328
360
  "on": {
329
361
  "drag-end": this.handleSlider
@@ -369,7 +401,11 @@ DynamicRangeSlider.defaultQuery = function (values, props) {
369
401
  };
370
402
 
371
403
  DynamicRangeSlider.parseValue = function (value) {
372
- return [value.start, value.end];
404
+ if (value) {
405
+ return Array.isArray(value) ? value : [value.start, value.end];
406
+ }
407
+
408
+ return [];
373
409
  };
374
410
 
375
411
  var mapStateToProps = function mapStateToProps(state, props) {
@@ -64,7 +64,7 @@ var Input = styled__default('input')(_templateObject5 || (_templateObject5 = _ro
64
64
  });
65
65
 
66
66
  var suggestions = function suggestions(themePreset, theme) {
67
- return emotion.css(_templateObject14 || (_templateObject14 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tdisplay: block;\n\twidth: 100%;\n\tborder: 1px solid #ccc;\n\tborder-top: none;\n\tbackground-color: #fff;\n\tfont-size: 0.9rem;\n\tz-index: 3;\n\tposition: absolute;\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n\tmax-height: 395px;\n\toverflow-y: auto;\n\n\t&.small {\n\t\ttop: 30px;\n\t}\n\n\tli {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tcursor: pointer;\n\t\tpadding: 10px;\n\t\tuser-select: none;\n\n\t\t& > .trim {\n\t\t\tdisplay: -webkit-box;\n\t\t\tdisplay: block;\n\t\t\twidth: 100%;\n\t\t\tmax-height: 2.3rem;\n\t\t\tline-height: 1.2rem;\n\t\t\t-webkit-line-clamp: 2;\n\t\t\t-webkit-box-orient: vertical;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\tbackground-color: #eee;\n\t\t}\n\t}\n\n\t", ";\n"])), themePreset === 'dark' && theme && dark(theme));
67
+ return emotion.css(_templateObject14 || (_templateObject14 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tdisplay: block;\n\twidth: 100%;\n\tborder: 1px solid #ccc;\n\tborder-top: none;\n\tbackground-color: #fff;\n\tfont-size: 0.9rem;\n\tz-index: 3;\n\tposition: absolute;\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n\tmax-height: min(100vh, 395px);\n\toverflow-y: auto;\n\n\t&.small {\n\t\ttop: 30px;\n\t}\n\n\tli {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tcursor: pointer;\n\t\tpadding: 10px;\n\t\tuser-select: none;\n\n\t\t& > .trim {\n\t\t\tdisplay: -webkit-box;\n\t\t\tdisplay: block;\n\t\t\twidth: 100%;\n\t\t\tmax-height: 2.3rem;\n\t\t\tline-height: 1.2rem;\n\t\t\t-webkit-line-clamp: 2;\n\t\t\t-webkit-box-orient: vertical;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\tbackground-color: #eee;\n\t\t}\n\t}\n\n\t", ";\n"])), themePreset === 'dark' && theme && dark(theme));
68
68
  };
69
69
 
70
70
  var suggestionsContainer = emotion.css(_templateObject15 || (_templateObject15 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tposition: relative;\n\t.cancel-icon {\n\t\tcursor: pointer;\n\t}\n"])));
@@ -13,19 +13,20 @@ require('emotion');
13
13
  require('@appbaseio/vue-emotion');
14
14
  require('polished');
15
15
  var Button = require('./Button-11307285.js');
16
- var vueTypes = require('./vueTypes-4c19b4c8.js');
16
+ var vueTypes = require('./vueTypes-57d01f18.js');
17
17
  require('@appbaseio/reactivecore/lib/utils/transform');
18
18
  require('redux');
19
- var index = require('./index-89c39a9e.js');
20
- var ComponentWrapper = require('./ComponentWrapper-32481890.js');
19
+ var index = require('./index-4509aa45.js');
20
+ var ComponentWrapper = require('./ComponentWrapper-10bad289.js');
21
+ require('@vue/babel-helper-vue-jsx-merge-props');
21
22
  var Title = require('./Title-584a8cc8.js');
22
- require('./CancelSvg-62d42af4.js');
23
- require('./Input-3cc3fa59.js');
23
+ require('./CancelSvg-4aa35935.js');
24
+ require('./Input-a9ee53ed.js');
24
25
  require('compute-scroll-into-view');
25
26
  var Container = require('./Container-526efa6a.js');
26
27
  require('@appbaseio/reactivecore/lib/utils/suggestions');
27
28
  var utils = require('./utils-1219e1fe.js');
28
- var DropDown = require('./DropDown-5847d6e4.js');
29
+ var DropDown = require('./DropDown-0076babc.js');
29
30
 
30
31
  var updateQuery = configureStore.Actions.updateQuery,
31
32
  setQueryOptions = configureStore.Actions.setQueryOptions,
@@ -349,7 +350,7 @@ var MultiDropdownList = {
349
350
  }
350
351
 
351
352
  var performUpdate = function performUpdate() {
352
- _this3.currentValue = currentValue;
353
+ _this3.currentValue = _rollupPluginBabelHelpers._extends({}, currentValue);
353
354
 
354
355
  _this3.updateQueryHandler(finalValues, props);
355
356
 
@@ -376,7 +377,7 @@ var MultiDropdownList = {
376
377
  index.updateDefaultQuery(props.componentId, this.setDefaultQuery, props, value);
377
378
  }
378
379
 
379
- this.setQueryOptions(this.internalComponent, defaultQueryOptions);
380
+ this.setQueryOptions(this.internalComponent, defaultQueryOptions, false);
380
381
  this.updateQuery({
381
382
  componentId: this.internalComponent,
382
383
  query: query,
@@ -397,7 +398,7 @@ var MultiDropdownList = {
397
398
  index.updateCustomQuery(props.componentId, this.setCustomQuery, props, value);
398
399
  }
399
400
 
400
- this.setQueryOptions(props.componentId, customQueryOptions);
401
+ this.setQueryOptions(props.componentId, customQueryOptions, false);
401
402
  this.updateQuery({
402
403
  componentId: props.componentId,
403
404
  query: query,
@@ -12,13 +12,13 @@ var constants = require('@appbaseio/reactivecore/lib/utils/constants');
12
12
  require('emotion');
13
13
  require('@appbaseio/vue-emotion');
14
14
  require('polished');
15
- var vueTypes = require('./vueTypes-4c19b4c8.js');
15
+ var vueTypes = require('./vueTypes-57d01f18.js');
16
16
  require('@appbaseio/reactivecore/lib/utils/transform');
17
17
  require('redux');
18
- var index = require('./index-89c39a9e.js');
19
- var ComponentWrapper = require('./ComponentWrapper-32481890.js');
18
+ var index = require('./index-4509aa45.js');
19
+ var ComponentWrapper = require('./ComponentWrapper-10bad289.js');
20
20
  var Title = require('./Title-584a8cc8.js');
21
- var Input = require('./Input-3cc3fa59.js');
21
+ var Input = require('./Input-a9ee53ed.js');
22
22
  var Container = require('./Container-526efa6a.js');
23
23
  var suggestions = require('@appbaseio/reactivecore/lib/utils/suggestions');
24
24
  var FormControlList = require('./FormControlList-808dbcef.js');
@@ -91,13 +91,14 @@ var MultiList = {
91
91
  },
92
92
  beforeMount: function beforeMount() {
93
93
  this.updateQueryHandlerOptions(this.$props);
94
+ var value = this.selectedValue || this.$props.value || this.$props.defaultValue;
95
+ this.setValue(value, !this.selectedValue);
96
+ },
97
+ mounted: function mounted() {
98
+ var currentValue = Object.keys(this.$data.currentValue);
94
99
 
95
- if (this.selectedValue) {
96
- this.setValue(this.selectedValue);
97
- } else if (this.$props.value) {
98
- this.setValue(this.$props.value, true);
99
- } else if (this.$props.defaultValue) {
100
- this.setValue(this.$props.defaultValue, true);
100
+ if (this.$props.value !== undefined && !isEqual(this.$props.value, currentValue)) {
101
+ this.$emit('change', currentValue);
101
102
  }
102
103
  },
103
104
  watch: {
@@ -142,7 +143,11 @@ var MultiList = {
142
143
  }
143
144
 
144
145
  if (!isEqual(selectedValue, newVal)) {
145
- this.setValue(newVal || [], true);
146
+ if (this.value === undefined) {
147
+ this.setValue(newVal, true);
148
+ } else {
149
+ this.$emit('change', newVal);
150
+ }
146
151
  }
147
152
  },
148
153
  defaultQuery: function defaultQuery(newVal, oldVal) {
@@ -356,7 +361,7 @@ var MultiList = {
356
361
  index.updateDefaultQuery(props.componentId, this.setDefaultQuery, props, value);
357
362
  }
358
363
 
359
- this.setQueryOptions(this.internalComponent, defaultQueryOptions);
364
+ this.setQueryOptions(this.internalComponent, defaultQueryOptions, false);
360
365
  this.updateQuery({
361
366
  componentId: this.internalComponent,
362
367
  query: query,
@@ -377,7 +382,7 @@ var MultiList = {
377
382
  index.updateCustomQuery(props.componentId, this.setCustomQuery, props, value);
378
383
  }
379
384
 
380
- this.setQueryOptions(props.componentId, customQueryOptions);
385
+ this.setQueryOptions(props.componentId, customQueryOptions, false);
381
386
  this.updateQuery({
382
387
  componentId: props.componentId,
383
388
  query: query,
@@ -441,7 +446,7 @@ var MultiList = {
441
446
  if (value === undefined) {
442
447
  this.setValue(currentValue);
443
448
  } else {
444
- var values = index.parseValueArray(value, currentValue);
449
+ var values = index.parseValueArray(value || [], currentValue);
445
450
  this.$emit('change', values);
446
451
  }
447
452
  },
@@ -12,11 +12,11 @@ var constants = require('@appbaseio/reactivecore/lib/utils/constants');
12
12
  require('emotion');
13
13
  require('@appbaseio/vue-emotion');
14
14
  require('polished');
15
- var vueTypes = require('./vueTypes-4c19b4c8.js');
15
+ var vueTypes = require('./vueTypes-57d01f18.js');
16
16
  require('@appbaseio/reactivecore/lib/utils/transform');
17
17
  require('redux');
18
- var index = require('./index-89c39a9e.js');
19
- var ComponentWrapper = require('./ComponentWrapper-32481890.js');
18
+ var index = require('./index-4509aa45.js');
19
+ var ComponentWrapper = require('./ComponentWrapper-10bad289.js');
20
20
  var Title = require('./Title-584a8cc8.js');
21
21
  var Container = require('./Container-526efa6a.js');
22
22
  var FormControlList = require('./FormControlList-808dbcef.js');
@@ -148,7 +148,7 @@ var MultiRange = {
148
148
  index.updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, this.currentValue);
149
149
  }
150
150
 
151
- this.setQueryOptions(props.componentId, customQueryOptions);
151
+ this.setQueryOptions(props.componentId, customQueryOptions, false);
152
152
  this.updateQuery({
153
153
  componentId: props.componentId,
154
154
  query: query,
@@ -13,17 +13,17 @@ var emotion = require('emotion');
13
13
  var styled = require('@appbaseio/vue-emotion');
14
14
  var styled__default = _interopDefault(styled);
15
15
  require('polished');
16
- var vueTypes = require('./vueTypes-4c19b4c8.js');
16
+ var vueTypes = require('./vueTypes-57d01f18.js');
17
17
  require('@appbaseio/reactivecore/lib/utils/transform');
18
18
  require('redux');
19
- var index = require('./index-89c39a9e.js');
20
- var ComponentWrapper = require('./ComponentWrapper-32481890.js');
19
+ var index = require('./index-4509aa45.js');
20
+ var ComponentWrapper = require('./ComponentWrapper-10bad289.js');
21
21
  require('./Title-584a8cc8.js');
22
22
  var Flex = require('./Flex-f146cdad.js');
23
- var Input = require('./Input-3cc3fa59.js');
23
+ var Input = require('./Input-a9ee53ed.js');
24
24
  var Container = require('./Container-526efa6a.js');
25
25
  require('vue-no-ssr');
26
- require('./ssr-08e95ede.js');
26
+ require('./ssr-0ee35a09.js');
27
27
  var RangeSlider = require('./RangeSlider.js');
28
28
 
29
29
  var _templateObject, _templateObject2;
@@ -146,7 +146,7 @@ var RangeInput = {
146
146
  }
147
147
  },
148
148
  handleOnChange: function handleOnChange(value) {
149
- this.handleChange(value, 'change');
149
+ this.handleChange(value || this.$props.range, 'change');
150
150
  },
151
151
  handleValueChange: function handleValueChange(value) {
152
152
  this.handleChange(value, 'value-change');
@@ -201,6 +201,10 @@ var RangeInput = {
201
201
  if (this.$props.defaultValue && this.$props.defaultValue.start && this.$props.defaultValue.end) {
202
202
  this.handleChange(this.$props.defaultValue);
203
203
  }
204
+
205
+ if (this.isControlled()) {
206
+ this.handleChange(this.$props.value, 'change');
207
+ }
204
208
  },
205
209
  render: function render() {
206
210
  var h = arguments[0];
@@ -10,15 +10,15 @@ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-f127c8b7.js
10
10
  var VueTypes = _interopDefault(require('vue-types'));
11
11
  var constants = require('@appbaseio/reactivecore/lib/utils/constants');
12
12
  require('@appbaseio/vue-emotion');
13
- var vueTypes = require('./vueTypes-4c19b4c8.js');
13
+ var vueTypes = require('./vueTypes-57d01f18.js');
14
14
  require('@appbaseio/reactivecore/lib/utils/transform');
15
15
  require('redux');
16
- var index = require('./index-89c39a9e.js');
17
- var ComponentWrapper = require('./ComponentWrapper-32481890.js');
16
+ var index = require('./index-4509aa45.js');
17
+ var ComponentWrapper = require('./ComponentWrapper-10bad289.js');
18
18
  var Title = require('./Title-584a8cc8.js');
19
19
  var Container = require('./Container-526efa6a.js');
20
20
  var NoSSR = _interopDefault(require('vue-no-ssr'));
21
- var ssr = require('./ssr-08e95ede.js');
21
+ var ssr = require('./ssr-0ee35a09.js');
22
22
 
23
23
  var updateQuery = configureStore.Actions.updateQuery,
24
24
  setQueryOptions = configureStore.Actions.setQueryOptions,
@@ -80,32 +80,28 @@ var RangeSlider = {
80
80
  });
81
81
  }
82
82
  },
83
- handleSlider: function handleSlider(values) {
84
- var _this = this;
85
-
86
- clearTimeout(this.handleSliderChange._tId);
87
- this.handleSliderChange._tId = setTimeout(function () {
88
- _this.handleSliderChange(values);
89
- }, 100);
83
+ handleSlider: function handleSlider() {
84
+ var sliderValues = this.$refs.slider.getValue();
85
+ this.handleSliderChange(sliderValues);
90
86
  },
91
87
  handleChange: function handleChange(currentValue, props) {
92
- var _this2 = this;
88
+ var _this = this;
93
89
 
94
90
  if (props === void 0) {
95
91
  props = this.$props;
96
92
  }
97
93
 
98
94
  var performUpdate = function performUpdate() {
99
- _this2.currentValue = currentValue;
95
+ _this.currentValue = currentValue;
100
96
 
101
- _this2.updateQueryHandler([currentValue[0], currentValue[1]], props);
97
+ _this.updateQueryHandler([currentValue[0], currentValue[1]], props);
102
98
 
103
- _this2.$emit('valueChange', {
99
+ _this.$emit('valueChange', {
104
100
  start: currentValue[0],
105
101
  end: currentValue[1]
106
102
  });
107
103
 
108
- _this2.$emit('value-change', {
104
+ _this.$emit('value-change', {
109
105
  start: currentValue[0],
110
106
  end: currentValue[1]
111
107
  });
@@ -137,7 +133,7 @@ var RangeSlider = {
137
133
  currentEnd = value[1]; // check if the slider is at its initial position
138
134
 
139
135
  var isInitialValue = currentStart === start && currentEnd === end;
140
- this.setQueryOptions(props.componentId, customQueryOptions);
136
+ this.setQueryOptions(props.componentId, customQueryOptions, false);
141
137
  this.updateQuery({
142
138
  componentId: props.componentId,
143
139
  query: query,
@@ -216,12 +212,13 @@ var RangeSlider = {
216
212
  "max": this.$props.range.end,
217
213
  "dotSize": 20,
218
214
  "height": 4,
219
- "enable-cross": false
215
+ "enable-cross": false,
216
+ "tooltip": "always"
217
+ },
218
+ "on": {
219
+ "drag-end": this.handleSlider
220
220
  },
221
- "props": _rollupPluginBabelHelpers._extends({}, this.$props.sliderOptions),
222
- "on": _rollupPluginBabelHelpers._extends({}, {
223
- input: this.handleSlider
224
- })
221
+ "props": _rollupPluginBabelHelpers._extends({}, this.$props.sliderOptions)
225
222
  }), this.$props.rangeLabels && h("div", {
226
223
  "class": "label-container"
227
224
  }, [h("label", {
@@ -12,9 +12,9 @@ require('@appbaseio/reactivecore/lib/utils/constants');
12
12
  var helper = require('@appbaseio/reactivecore/lib/utils/helper');
13
13
  var styled = require('@appbaseio/vue-emotion');
14
14
  var styled__default = _interopDefault(styled);
15
- var vueTypes = require('./vueTypes-4c19b4c8.js');
15
+ var vueTypes = require('./vueTypes-57d01f18.js');
16
16
  require('redux');
17
- var index = require('./index-89c39a9e.js');
17
+ var index = require('./index-4509aa45.js');
18
18
  var _mergeJSXProps = _interopDefault(require('@vue/babel-helper-vue-jsx-merge-props'));
19
19
  var analytics = require('@appbaseio/reactivecore/lib/actions/analytics');
20
20
  var Appbase = _interopDefault(require('appbase-js'));
@@ -9,11 +9,11 @@ var configureStore__default = _interopDefault(configureStore);
9
9
  var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-f127c8b7.js');
10
10
  var VueTypes = _interopDefault(require('vue-types'));
11
11
  var constants = require('@appbaseio/reactivecore/lib/utils/constants');
12
- var vueTypes = require('./vueTypes-4c19b4c8.js');
12
+ var vueTypes = require('./vueTypes-57d01f18.js');
13
13
  require('@appbaseio/reactivecore/lib/utils/transform');
14
14
  require('redux');
15
- var index = require('./index-89c39a9e.js');
16
- var ComponentWrapper = require('./ComponentWrapper-32481890.js');
15
+ var index = require('./index-4509aa45.js');
16
+ var ComponentWrapper = require('./ComponentWrapper-10bad289.js');
17
17
 
18
18
  var _excluded = ["options"],
19
19
  _excluded2 = ["query"],
@@ -15,11 +15,11 @@ var styled = require('@appbaseio/vue-emotion');
15
15
  var styled__default = _interopDefault(styled);
16
16
  require('polished');
17
17
  var Button = require('./Button-11307285.js');
18
- var vueTypes = require('./vueTypes-4c19b4c8.js');
18
+ var vueTypes = require('./vueTypes-57d01f18.js');
19
19
  require('@appbaseio/reactivecore/lib/utils/transform');
20
20
  require('redux');
21
- var index = require('./index-89c39a9e.js');
22
- var ComponentWrapper = require('./ComponentWrapper-32481890.js');
21
+ var index = require('./index-4509aa45.js');
22
+ var ComponentWrapper = require('./ComponentWrapper-10bad289.js');
23
23
  var _mergeJSXProps = _interopDefault(require('@vue/babel-helper-vue-jsx-merge-props'));
24
24
  require('./Title-584a8cc8.js');
25
25
  var ListItem = require('./ListItem-b40adb04.js');
@@ -502,6 +502,12 @@ var ReactiveList = {
502
502
  });
503
503
  }
504
504
 
505
+ if (this.urlSortOption) {
506
+ this.sortOptionIndex = this.$props.sortOptions.findIndex(function (s) {
507
+ return s.label === _this.urlSortOption;
508
+ }) || 0;
509
+ }
510
+
505
511
  this.updateComponentProps(this.componentId, {
506
512
  from: this.from
507
513
  }, constants.componentTypes.reactiveList);
@@ -810,7 +816,7 @@ var ReactiveList = {
810
816
  "labelPosition": this.sortOptions ? 'right' : 'left'
811
817
  },
812
818
  "class": getClassName$1(this.$props.innerClass, 'resultsInfo')
813
- }, [this.sortOptions ? this.renderSortOptions() : null, this.$props.showResultStats && results.length ? this.renderStats() : null]), !this.isLoading && results.length === 0 ? this.renderNoResult() : null, this.shouldRenderPagination && (this.$props.paginationAt === 'top' || this.$props.paginationAt === 'both') ? h(Pagination, {
819
+ }, [this.sortOptions ? this.renderSortOptions() : null, this.$props.showResultStats && results.length ? this.renderStats() : null]), !this.isLoading && hits && hits.length === 0 ? this.renderNoResult() : null, this.shouldRenderPagination && (this.$props.paginationAt === 'top' || this.$props.paginationAt === 'both') ? h(Pagination, {
814
820
  "attrs": {
815
821
  "pages": this.$props.pages,
816
822
  "totalPages": this.totalPages,
@@ -1018,8 +1024,11 @@ var ReactiveList = {
1018
1024
  sortBy: sortBy
1019
1025
  }, constants.componentTypes.reactiveList);
1020
1026
  this.setQueryOptions(this.$props.componentId, options, true);
1027
+ this.setPage(0);
1021
1028
  this.currentPageState = 0;
1022
1029
  this.from = 0;
1030
+ var sortOption = this.$props.sortOptions[this.sortOptionIndex] ? this.$props.sortOptions[this.sortOptionIndex].label : null;
1031
+ this.setPageURL(this.$props.componentId + "sortOption", sortOption, this.$props.componentId + "sortOption", false, this.$props.URLParams);
1023
1032
  }
1024
1033
  },
1025
1034
  triggerClickAnalytics: function triggerClickAnalytics(searchPosition, documentId) {
@@ -1131,6 +1140,7 @@ var ReactiveList = {
1131
1140
  var mapStateToProps = function mapStateToProps(state, props) {
1132
1141
  return {
1133
1142
  defaultPage: state.selectedValues[props.componentId] && state.selectedValues[props.componentId].value - 1,
1143
+ urlSortOption: state.selectedValues[props.componentId + "sortOption"] && state.selectedValues[props.componentId + "sortOption"].value,
1134
1144
  hits: state.hits[props.componentId] && state.hits[props.componentId].hits,
1135
1145
  rawData: state.rawData[props.componentId],
1136
1146
  aggregationData: state.compositeAggregations[props.componentId],
@@ -9,7 +9,7 @@ var VueTypes = _interopDefault(require('vue-types'));
9
9
  require('emotion');
10
10
  require('@appbaseio/vue-emotion');
11
11
  require('polished');
12
- var vueTypes = require('./vueTypes-4c19b4c8.js');
12
+ var vueTypes = require('./vueTypes-57d01f18.js');
13
13
  var _mergeJSXProps = _interopDefault(require('@vue/babel-helper-vue-jsx-merge-props'));
14
14
  var Title = require('./Title-584a8cc8.js');
15
15
  var Card = require('./Card-fd94ef07.js');
@@ -9,7 +9,7 @@ var VueTypes = _interopDefault(require('vue-types'));
9
9
  require('emotion');
10
10
  require('@appbaseio/vue-emotion');
11
11
  require('polished');
12
- var vueTypes = require('./vueTypes-4c19b4c8.js');
12
+ var vueTypes = require('./vueTypes-57d01f18.js');
13
13
  var _mergeJSXProps = _interopDefault(require('@vue/babel-helper-vue-jsx-merge-props'));
14
14
  var Title = require('./Title-584a8cc8.js');
15
15
  var ListItem = require('./ListItem-b40adb04.js');