@appbaseio/reactivesearch-vue 1.26.0 → 1.27.0-gamma.1

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 (55) hide show
  1. package/dist/@appbaseio/reactivesearch-vue.umd.js +1687 -436
  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/{ComponentWrapper-32481890.js → ComponentWrapper-10bad289.js} +1 -1
  6. package/dist/cjs/DataSearch-37dfdf39.js +2154 -0
  7. package/dist/cjs/DataSearch.js +18 -2101
  8. package/dist/cjs/{DropDown-cf9bfffc.js → DropDown-0076babc.js} +16 -11
  9. package/dist/cjs/DynamicRangeSlider.js +40 -7
  10. package/dist/cjs/{Input-3cc3fa59.js → Input-a9ee53ed.js} +1 -1
  11. package/dist/cjs/MultiDropdownList.js +6 -5
  12. package/dist/cjs/MultiList.js +16 -11
  13. package/dist/cjs/MultiRange.js +2 -2
  14. package/dist/cjs/RangeInput.js +7 -3
  15. package/dist/cjs/RangeSlider.js +2 -2
  16. package/dist/cjs/ReactiveBase.js +1 -1
  17. package/dist/cjs/ReactiveComponent.js +2 -2
  18. package/dist/cjs/ReactiveList.js +13 -3
  19. package/dist/cjs/SelectedFilters.js +1 -1
  20. package/dist/cjs/SingleDropdownList.js +5 -4
  21. package/dist/cjs/SingleList.js +3 -3
  22. package/dist/cjs/SingleRange.js +2 -2
  23. package/dist/cjs/StateProvider.js +1 -1
  24. package/dist/cjs/ToggleButton.js +2 -2
  25. package/dist/cjs/{index-89c39a9e.js → index-4509aa45.js} +10 -4
  26. package/dist/cjs/index.js +11 -10
  27. package/dist/cjs/install-b7a80fc1.js +1196 -0
  28. package/dist/cjs/install.js +25 -30
  29. package/dist/cjs/version.js +1 -1
  30. package/dist/es/{ComponentWrapper-4f85a67e.js → ComponentWrapper-0f3431d1.js} +1 -1
  31. package/dist/es/DataSearch-77325036.js +2141 -0
  32. package/dist/es/DataSearch.js +17 -2100
  33. package/dist/es/{DropDown-c8da0a2c.js → DropDown-0dd8f2a3.js} +16 -11
  34. package/dist/es/DynamicRangeSlider.js +40 -7
  35. package/dist/es/{Input-08bb1bcf.js → Input-10b1d62d.js} +1 -1
  36. package/dist/es/MultiDropdownList.js +6 -5
  37. package/dist/es/MultiList.js +16 -11
  38. package/dist/es/MultiRange.js +2 -2
  39. package/dist/es/RangeInput.js +7 -3
  40. package/dist/es/RangeSlider.js +2 -2
  41. package/dist/es/ReactiveBase.js +1 -1
  42. package/dist/es/ReactiveComponent.js +2 -2
  43. package/dist/es/ReactiveList.js +13 -3
  44. package/dist/es/SelectedFilters.js +1 -1
  45. package/dist/es/SingleDropdownList.js +5 -4
  46. package/dist/es/SingleList.js +3 -3
  47. package/dist/es/SingleRange.js +2 -2
  48. package/dist/es/StateProvider.js +1 -1
  49. package/dist/es/ToggleButton.js +2 -2
  50. package/dist/es/{index-cb1950b6.js → index-78920565.js} +10 -4
  51. package/dist/es/index.js +7 -7
  52. package/dist/es/install-86388b0e.js +1189 -0
  53. package/dist/es/install.js +23 -32
  54. package/dist/es/version.js +1 -1
  55. package/package.json +3 -3
@@ -4,9 +4,10 @@ import VueTypes from 'vue-types';
4
4
  import { css } from 'emotion';
5
5
  import styled from '@appbaseio/vue-emotion';
6
6
  import { t as types } from './vueTypes-687b2304.js';
7
- import { a as isFunction } from './index-cb1950b6.js';
7
+ import { a as isFunction } from './index-78920565.js';
8
+ import _mergeJSXProps from '@vue/babel-helper-vue-jsx-merge-props';
8
9
  import { D as Downshift, b as InputWrapper, a as IconGroup, I as IconWrapper, C as CancelSvg } from './CancelSvg-c2c03a35.js';
9
- import { s as suggestionsContainer, a as suggestions, I as Input } from './Input-08bb1bcf.js';
10
+ import { s as suggestionsContainer, a as suggestions, I as Input } from './Input-10b1d62d.js';
10
11
  import { replaceDiacritics } from '@appbaseio/reactivecore/lib/utils/suggestions';
11
12
 
12
13
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
@@ -120,7 +121,8 @@ var Dropdown = {
120
121
  isOpen = _ref.isOpen,
121
122
  highlightedIndex = _ref.highlightedIndex,
122
123
  getButtonProps = _ref.getButtonProps,
123
- getItemEvents = _ref.getItemEvents;
124
+ getItemEvents = _ref.getItemEvents,
125
+ getInputEvents = _ref.getInputEvents;
124
126
  return h("div", {
125
127
  "class": suggestionsContainer
126
128
  }, [h(Select, {
@@ -145,7 +147,13 @@ var Dropdown = {
145
147
  getItemEvents: getItemEvents
146
148
  }) : isOpen && itemsToRender.length ? h("ul", {
147
149
  "class": suggestions(themePreset, _this.theme) + " " + (_this.$props.small ? 'small' : '') + " " + getClassName(_this.$props.innerClass, 'list')
148
- }, [_this.$props.showSearch ? _this.renderSearchbox() : null, !hasCustomRenderer && filteredItemsToRender.length === 0 ? _this.renderNoResult() : filteredItemsToRender.map(function (item, index) {
150
+ }, [_this.$props.showSearch ? _this.renderSearchbox({
151
+ on: {
152
+ input: getInputEvents({
153
+ onInput: _this.handleInputChange
154
+ }).input
155
+ }
156
+ }) : null, !hasCustomRenderer && filteredItemsToRender.length === 0 ? _this.renderNoResult() : filteredItemsToRender.map(function (item, index) {
149
157
  var selected = _this.$props.multi // MultiDropdownList
150
158
  && (selectedItem && !!selectedItem[item[keyField]] // MultiDropdownRange
151
159
  || Array.isArray(selectedItem) && selectedItem.find(function (value) {
@@ -266,7 +274,7 @@ var Dropdown = {
266
274
  "class": getClassName(this.$props.innerClass, 'noResults') || null
267
275
  }, [isFunction(renderNoResults) ? renderNoResults() : renderNoResults]);
268
276
  },
269
- renderSearchbox: function renderSearchbox() {
277
+ renderSearchbox: function renderSearchbox(eventObject) {
270
278
  var h = this.$createElement;
271
279
  var _this$$props2 = this.$props,
272
280
  componentId = _this$$props2.componentId,
@@ -274,7 +282,7 @@ var Dropdown = {
274
282
  showClear = _this$$props2.showClear,
275
283
  themePreset = _this$$props2.themePreset,
276
284
  innerClass = _this$$props2.innerClass;
277
- var InputComponent = h(Input, {
285
+ var InputComponent = h(Input, _mergeJSXProps([{
278
286
  "attrs": {
279
287
  "id": componentId + "-input",
280
288
  "showIcon": false,
@@ -287,11 +295,8 @@ var Dropdown = {
287
295
  border: 0,
288
296
  borderBottom: '1px solid #ddd'
289
297
  },
290
- "class": getClassName(innerClass, 'input'),
291
- "on": {
292
- "change": this.handleInputChange
293
- }
294
- });
298
+ "class": getClassName(innerClass, 'input')
299
+ }, eventObject]));
295
300
 
296
301
  if (showClear) {
297
302
  return h(InputWrapper, [InputComponent, this.searchTerm && h(IconGroup, {
@@ -5,7 +5,7 @@ import { componentTypes } from '@appbaseio/reactivecore/lib/utils/constants';
5
5
  import '@appbaseio/vue-emotion';
6
6
  import { t as types } from './vueTypes-687b2304.js';
7
7
  import 'redux';
8
- import { f as updateCustomQuery, d as getValidPropsKeys, i as isQueryIdentical, c as connect } from './index-cb1950b6.js';
8
+ import { f as updateCustomQuery, d as getValidPropsKeys, i as isQueryIdentical, c as connect } from './index-78920565.js';
9
9
  import { T as Title } from './Title-3522ff56.js';
10
10
  import { C as Container } from './Container-18b03fde.js';
11
11
  import NoSSR from 'vue-no-ssr';
@@ -47,7 +47,8 @@ var DynamicRangeSlider = {
47
47
  URLParams: VueTypes.bool.def(false),
48
48
  sliderOptions: VueTypes.object.def({}),
49
49
  nestedField: types.string,
50
- index: VueTypes.string
50
+ index: VueTypes.string,
51
+ value: types.range
51
52
  },
52
53
  data: function data() {
53
54
  this.internalRangeComponent = this.$props.componentId + "__range__internal";
@@ -93,6 +94,8 @@ var DynamicRangeSlider = {
93
94
  components = _this$$$store$getStat.components;
94
95
  }
95
96
 
97
+ var value = this.$props.value;
98
+
96
99
  if (this.destroyOnUnmount || components.indexOf(this.componentId) === -1) {
97
100
  this.addComponent(this.componentId);
98
101
  this.addComponent(this.internalRangeComponent);
@@ -101,6 +104,8 @@ var DynamicRangeSlider = {
101
104
  this.handleChange(this.selectedValue);
102
105
  } else if (this.selectedValue) {
103
106
  this.handleChange(DynamicRangeSlider.parseValue(this.selectedValue, this.$props));
107
+ } else if (value) {
108
+ this.handleChange(DynamicRangeSlider.parseValue(value, this.$props));
104
109
  } // get range before executing other queries
105
110
 
106
111
 
@@ -119,6 +124,13 @@ var DynamicRangeSlider = {
119
124
  }
120
125
  },
121
126
  methods: {
127
+ isControlled: function isControlled() {
128
+ if (this.$props.value && this.$listeners) {
129
+ return true;
130
+ }
131
+
132
+ return false;
133
+ },
122
134
  setDefaultValue: function setDefaultValue(_ref) {
123
135
  var start = _ref.start,
124
136
  end = _ref.end;
@@ -129,6 +141,8 @@ var DynamicRangeSlider = {
129
141
  defaultEnd = _this$$props$defaultV.end;
130
142
 
131
143
  this.handleChange([defaultStart, defaultEnd]);
144
+ } else if (this.isControlled()) {
145
+ this.handleChange(DynamicRangeSlider.parseValue(this.$props.value), 'change');
132
146
  } else {
133
147
  this.currentValue = [start, end];
134
148
  }
@@ -178,7 +192,16 @@ var DynamicRangeSlider = {
178
192
  },
179
193
  handleSlider: function handleSlider() {
180
194
  var sliderValues = this.$refs.slider.getValue();
181
- this.handleChange(sliderValues);
195
+ var value = this.$props.value;
196
+
197
+ if (value === undefined) {
198
+ this.handleChange(sliderValues);
199
+ } else {
200
+ this.$emit('change', {
201
+ start: sliderValues[0],
202
+ end: sliderValues[1]
203
+ });
204
+ }
182
205
  },
183
206
  handleChange: function handleChange(currentValue) {
184
207
  var _this2 = this;
@@ -271,6 +294,7 @@ var DynamicRangeSlider = {
271
294
  start: this.range.start,
272
295
  end: this.range.end
273
296
  };
297
+ this.$emit('change', value);
274
298
  this.handleChange(DynamicRangeSlider.parseValue(value, this.$props));
275
299
  },
276
300
  range: function range(newValue, oldValue) {
@@ -292,6 +316,11 @@ var DynamicRangeSlider = {
292
316
  if (!isQueryIdentical(newVal, oldVal, this.$data.currentValue, this.$props)) {
293
317
  this.updateQueryHandler(this.$data.currentValue);
294
318
  }
319
+ },
320
+ value: function value(newVal, oldVal) {
321
+ if (!isEqual(newVal, oldVal)) {
322
+ this.handleChange(DynamicRangeSlider.parseValue(newVal, this.$props));
323
+ }
295
324
  }
296
325
  },
297
326
  render: function render() {
@@ -313,9 +342,9 @@ var DynamicRangeSlider = {
313
342
  }, [h("vue-slider-component", {
314
343
  "ref": "slider",
315
344
  "attrs": {
316
- "value": [Math.max(start, this.currentValue[0]), Math.min(end, this.currentValue[1])],
317
- "min": Math.min(start, this.currentValue[0]),
318
- "max": Math.max(end, this.currentValue[1]),
345
+ "value": [Math.floor(Math.max(start, this.currentValue[0])), Math.ceil(Math.min(end, this.currentValue[1]))],
346
+ "min": Math.floor(Math.min(start, this.currentValue[0])),
347
+ "max": Math.ceil(Math.max(end, this.currentValue[1])),
319
348
  "dotSize": 20,
320
349
  "height": 4,
321
350
  "enable-cross": false,
@@ -365,7 +394,11 @@ DynamicRangeSlider.defaultQuery = function (values, props) {
365
394
  };
366
395
 
367
396
  DynamicRangeSlider.parseValue = function (value) {
368
- return [value.start, value.end];
397
+ if (value) {
398
+ return Array.isArray(value) ? value : [value.start, value.end];
399
+ }
400
+
401
+ return [];
369
402
  };
370
403
 
371
404
  var mapStateToProps = function mapStateToProps(state, props) {
@@ -59,7 +59,7 @@ var Input = styled('input')(_templateObject5 || (_templateObject5 = _taggedTempl
59
59
  });
60
60
 
61
61
  var suggestions = function suggestions(themePreset, theme) {
62
- return css(_templateObject14 || (_templateObject14 = _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));
62
+ return css(_templateObject14 || (_templateObject14 = _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));
63
63
  };
64
64
 
65
65
  var suggestionsContainer = css(_templateObject15 || (_templateObject15 = _taggedTemplateLiteralLoose(["\n\tposition: relative;\n\t.cancel-icon {\n\t\tcursor: pointer;\n\t}\n"])));
@@ -9,16 +9,17 @@ import { l as loadMoreContainer, B as Button } from './Button-91561391.js';
9
9
  import { t as types } from './vueTypes-687b2304.js';
10
10
  import '@appbaseio/reactivecore/lib/utils/transform';
11
11
  import 'redux';
12
- import { f as updateCustomQuery, u as updateDefaultQuery, i as isQueryIdentical, a as isFunction, o as parseValueArray, g as getComponent, h as hasCustomRenderer, c as connect } from './index-cb1950b6.js';
13
- import { C as ComponentWrapper } from './ComponentWrapper-4f85a67e.js';
12
+ import { f as updateCustomQuery, u as updateDefaultQuery, i as isQueryIdentical, a as isFunction, o as parseValueArray, g as getComponent, h as hasCustomRenderer, c as connect } from './index-78920565.js';
13
+ import { C as ComponentWrapper } from './ComponentWrapper-0f3431d1.js';
14
+ import '@vue/babel-helper-vue-jsx-merge-props';
14
15
  import { T as Title } from './Title-3522ff56.js';
15
16
  import './CancelSvg-c2c03a35.js';
16
- import './Input-08bb1bcf.js';
17
+ import './Input-10b1d62d.js';
17
18
  import 'compute-scroll-into-view';
18
19
  import { C as Container } from './Container-18b03fde.js';
19
20
  import '@appbaseio/reactivecore/lib/utils/suggestions';
20
21
  import { g as getAggsQuery } from './utils-64a2e5f0.js';
21
- import { D as Dropdown } from './DropDown-c8da0a2c.js';
22
+ import { D as Dropdown } from './DropDown-0dd8f2a3.js';
22
23
 
23
24
  var updateQuery = Actions.updateQuery,
24
25
  setQueryOptions = Actions.setQueryOptions,
@@ -342,7 +343,7 @@ var MultiDropdownList = {
342
343
  }
343
344
 
344
345
  var performUpdate = function performUpdate() {
345
- _this3.currentValue = currentValue;
346
+ _this3.currentValue = _extends({}, currentValue);
346
347
 
347
348
  _this3.updateQueryHandler(finalValues, props);
348
349
 
@@ -8,10 +8,10 @@ import 'polished';
8
8
  import { t as types } from './vueTypes-687b2304.js';
9
9
  import '@appbaseio/reactivecore/lib/utils/transform';
10
10
  import 'redux';
11
- import { f as updateCustomQuery, u as updateDefaultQuery, i as isQueryIdentical, a as isFunction, n as isEvent, o as parseValueArray, g as getComponent, h as hasCustomRenderer, c as connect } from './index-cb1950b6.js';
12
- import { C as ComponentWrapper } from './ComponentWrapper-4f85a67e.js';
11
+ import { f as updateCustomQuery, u as updateDefaultQuery, i as isQueryIdentical, a as isFunction, n as isEvent, o as parseValueArray, g as getComponent, h as hasCustomRenderer, c as connect } from './index-78920565.js';
12
+ import { C as ComponentWrapper } from './ComponentWrapper-0f3431d1.js';
13
13
  import { T as Title } from './Title-3522ff56.js';
14
- import { I as Input } from './Input-08bb1bcf.js';
14
+ import { I as Input } from './Input-10b1d62d.js';
15
15
  import { C as Container } from './Container-18b03fde.js';
16
16
  import { replaceDiacritics } from '@appbaseio/reactivecore/lib/utils/suggestions';
17
17
  import { U as UL, C as Checkbox } from './FormControlList-704f8dee.js';
@@ -84,13 +84,14 @@ var MultiList = {
84
84
  },
85
85
  beforeMount: function beforeMount() {
86
86
  this.updateQueryHandlerOptions(this.$props);
87
+ var value = this.selectedValue || this.$props.value || this.$props.defaultValue;
88
+ this.setValue(value, !this.selectedValue);
89
+ },
90
+ mounted: function mounted() {
91
+ var currentValue = Object.keys(this.$data.currentValue);
87
92
 
88
- if (this.selectedValue) {
89
- this.setValue(this.selectedValue);
90
- } else if (this.$props.value) {
91
- this.setValue(this.$props.value, true);
92
- } else if (this.$props.defaultValue) {
93
- this.setValue(this.$props.defaultValue, true);
93
+ if (this.$props.value !== undefined && !isEqual(this.$props.value, currentValue)) {
94
+ this.$emit('change', currentValue);
94
95
  }
95
96
  },
96
97
  watch: {
@@ -135,7 +136,11 @@ var MultiList = {
135
136
  }
136
137
 
137
138
  if (!isEqual(selectedValue, newVal)) {
138
- this.setValue(newVal || [], true);
139
+ if (this.value === undefined) {
140
+ this.setValue(newVal, true);
141
+ } else {
142
+ this.$emit('change', newVal);
143
+ }
139
144
  }
140
145
  },
141
146
  defaultQuery: function defaultQuery(newVal, oldVal) {
@@ -434,7 +439,7 @@ var MultiList = {
434
439
  if (value === undefined) {
435
440
  this.setValue(currentValue);
436
441
  } else {
437
- var values = parseValueArray(value, currentValue);
442
+ var values = parseValueArray(value || [], currentValue);
438
443
  this.$emit('change', values);
439
444
  }
440
445
  },
@@ -8,8 +8,8 @@ import 'polished';
8
8
  import { t as types } from './vueTypes-687b2304.js';
9
9
  import '@appbaseio/reactivecore/lib/utils/transform';
10
10
  import 'redux';
11
- import { o as parseValueArray, f as updateCustomQuery, i as isQueryIdentical, c as connect } from './index-cb1950b6.js';
12
- import { C as ComponentWrapper } from './ComponentWrapper-4f85a67e.js';
11
+ import { o as parseValueArray, f as updateCustomQuery, i as isQueryIdentical, c as connect } from './index-78920565.js';
12
+ import { C as ComponentWrapper } from './ComponentWrapper-0f3431d1.js';
13
13
  import { T as Title } from './Title-3522ff56.js';
14
14
  import { C as Container } from './Container-18b03fde.js';
15
15
  import { U as UL, C as Checkbox } from './FormControlList-704f8dee.js';
@@ -8,11 +8,11 @@ import 'polished';
8
8
  import { t as types } from './vueTypes-687b2304.js';
9
9
  import '@appbaseio/reactivecore/lib/utils/transform';
10
10
  import 'redux';
11
- import { c as connect } from './index-cb1950b6.js';
12
- import { C as ComponentWrapper } from './ComponentWrapper-4f85a67e.js';
11
+ import { c as connect } from './index-78920565.js';
12
+ import { C as ComponentWrapper } from './ComponentWrapper-0f3431d1.js';
13
13
  import './Title-3522ff56.js';
14
14
  import { F as Flex } from './Flex-8770345d.js';
15
- import { I as Input } from './Input-08bb1bcf.js';
15
+ import { I as Input } from './Input-10b1d62d.js';
16
16
  import { C as Container } from './Container-18b03fde.js';
17
17
  import 'vue-no-ssr';
18
18
  import './ssr-a41dfea9.js';
@@ -193,6 +193,10 @@ var RangeInput = {
193
193
  if (this.$props.defaultValue && this.$props.defaultValue.start && this.$props.defaultValue.end) {
194
194
  this.handleChange(this.$props.defaultValue);
195
195
  }
196
+
197
+ if (this.isControlled()) {
198
+ this.handleChange(this.$props.value, 'change');
199
+ }
196
200
  },
197
201
  render: function render() {
198
202
  var h = arguments[0];
@@ -6,8 +6,8 @@ import '@appbaseio/vue-emotion';
6
6
  import { t as types } from './vueTypes-687b2304.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-cb1950b6.js';
10
- import { C as ComponentWrapper } from './ComponentWrapper-4f85a67e.js';
9
+ import { f as updateCustomQuery, i as isQueryIdentical, c as connect } from './index-78920565.js';
10
+ import { C as ComponentWrapper } from './ComponentWrapper-0f3431d1.js';
11
11
  import { T as Title } from './Title-3522ff56.js';
12
12
  import { C as Container } from './Container-18b03fde.js';
13
13
  import NoSSR from 'vue-no-ssr';
@@ -6,7 +6,7 @@ import { isEqual as isEqual$1 } from '@appbaseio/reactivecore/lib/utils/helper';
6
6
  import styled from '@appbaseio/vue-emotion';
7
7
  import { t as types } from './vueTypes-687b2304.js';
8
8
  import 'redux';
9
- import { c as connect, e as composeThemeObject, X as X_SEARCH_CLIENT } from './index-cb1950b6.js';
9
+ import { c as connect, e as composeThemeObject, X as X_SEARCH_CLIENT } from './index-78920565.js';
10
10
  import _mergeJSXProps from '@vue/babel-helper-vue-jsx-merge-props';
11
11
  import { updateAnalyticsConfig } from '@appbaseio/reactivecore/lib/actions/analytics';
12
12
  import Appbase from 'appbase-js';
@@ -5,8 +5,8 @@ import { componentTypes } from '@appbaseio/reactivecore/lib/utils/constants';
5
5
  import { t as types } from './vueTypes-687b2304.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-cb1950b6.js';
9
- import { C as ComponentWrapper } from './ComponentWrapper-4f85a67e.js';
8
+ import { f as updateCustomQuery, u as updateDefaultQuery, i as isQueryIdentical, c as connect } from './index-78920565.js';
9
+ import { C as ComponentWrapper } from './ComponentWrapper-0f3431d1.js';
10
10
 
11
11
  var _excluded = ["options"],
12
12
  _excluded2 = ["query"],
@@ -10,8 +10,8 @@ import { p as pagination, B as Button } from './Button-91561391.js';
10
10
  import { t as types } from './vueTypes-687b2304.js';
11
11
  import '@appbaseio/reactivecore/lib/utils/transform';
12
12
  import 'redux';
13
- import { c as connect, h as hasCustomRenderer, i as isQueryIdentical, u as updateDefaultQuery, a as isFunction, g as getComponent } from './index-cb1950b6.js';
14
- import { C as ComponentWrapper } from './ComponentWrapper-4f85a67e.js';
13
+ import { c as connect, h as hasCustomRenderer, i as isQueryIdentical, u as updateDefaultQuery, a as isFunction, g as getComponent } from './index-78920565.js';
14
+ import { C as ComponentWrapper } from './ComponentWrapper-0f3431d1.js';
15
15
  import _mergeJSXProps from '@vue/babel-helper-vue-jsx-merge-props';
16
16
  import './Title-3522ff56.js';
17
17
  import { c as container } from './ListItem-8e8fb535.js';
@@ -494,6 +494,12 @@ var ReactiveList = {
494
494
  });
495
495
  }
496
496
 
497
+ if (this.urlSortOption) {
498
+ this.sortOptionIndex = this.$props.sortOptions.findIndex(function (s) {
499
+ return s.label === _this.urlSortOption;
500
+ }) || 0;
501
+ }
502
+
497
503
  this.updateComponentProps(this.componentId, {
498
504
  from: this.from
499
505
  }, componentTypes.reactiveList);
@@ -802,7 +808,7 @@ var ReactiveList = {
802
808
  "labelPosition": this.sortOptions ? 'right' : 'left'
803
809
  },
804
810
  "class": getClassName$1(this.$props.innerClass, 'resultsInfo')
805
- }, [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, {
811
+ }, [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, {
806
812
  "attrs": {
807
813
  "pages": this.$props.pages,
808
814
  "totalPages": this.totalPages,
@@ -1010,8 +1016,11 @@ var ReactiveList = {
1010
1016
  sortBy: sortBy
1011
1017
  }, componentTypes.reactiveList);
1012
1018
  this.setQueryOptions(this.$props.componentId, options, true);
1019
+ this.setPage(0);
1013
1020
  this.currentPageState = 0;
1014
1021
  this.from = 0;
1022
+ var sortOption = this.$props.sortOptions[this.sortOptionIndex] ? this.$props.sortOptions[this.sortOptionIndex].label : null;
1023
+ this.setPageURL(this.$props.componentId + "sortOption", sortOption, this.$props.componentId + "sortOption", false, this.$props.URLParams);
1015
1024
  }
1016
1025
  },
1017
1026
  triggerClickAnalytics: function triggerClickAnalytics(searchPosition, documentId) {
@@ -1123,6 +1132,7 @@ var ReactiveList = {
1123
1132
  var mapStateToProps = function mapStateToProps(state, props) {
1124
1133
  return {
1125
1134
  defaultPage: state.selectedValues[props.componentId] && state.selectedValues[props.componentId].value - 1,
1135
+ urlSortOption: state.selectedValues[props.componentId + "sortOption"] && state.selectedValues[props.componentId + "sortOption"].value,
1126
1136
  hits: state.hits[props.componentId] && state.hits[props.componentId].hits,
1127
1137
  rawData: state.rawData[props.componentId],
1128
1138
  aggregationData: state.compositeAggregations[props.componentId],
@@ -8,7 +8,7 @@ import 'polished';
8
8
  import { f as filters, B as Button } from './Button-91561391.js';
9
9
  import { t as types } from './vueTypes-687b2304.js';
10
10
  import 'redux';
11
- import { c as connect } from './index-cb1950b6.js';
11
+ import { c as connect } from './index-78920565.js';
12
12
  import { T as Title } from './Title-3522ff56.js';
13
13
  import { C as Container } from './Container-18b03fde.js';
14
14
 
@@ -9,16 +9,17 @@ import { l as loadMoreContainer, B as Button } from './Button-91561391.js';
9
9
  import { t as types } from './vueTypes-687b2304.js';
10
10
  import '@appbaseio/reactivecore/lib/utils/transform';
11
11
  import 'redux';
12
- import { f as updateCustomQuery, u as updateDefaultQuery, i as isQueryIdentical, a as isFunction, g as getComponent, h as hasCustomRenderer, c as connect } from './index-cb1950b6.js';
13
- import { C as ComponentWrapper } from './ComponentWrapper-4f85a67e.js';
12
+ import { f as updateCustomQuery, u as updateDefaultQuery, i as isQueryIdentical, a as isFunction, g as getComponent, h as hasCustomRenderer, c as connect } from './index-78920565.js';
13
+ import { C as ComponentWrapper } from './ComponentWrapper-0f3431d1.js';
14
+ import '@vue/babel-helper-vue-jsx-merge-props';
14
15
  import { T as Title } from './Title-3522ff56.js';
15
16
  import './CancelSvg-c2c03a35.js';
16
- import './Input-08bb1bcf.js';
17
+ import './Input-10b1d62d.js';
17
18
  import 'compute-scroll-into-view';
18
19
  import { C as Container } from './Container-18b03fde.js';
19
20
  import '@appbaseio/reactivecore/lib/utils/suggestions';
20
21
  import { g as getAggsQuery } from './utils-64a2e5f0.js';
21
- import { D as Dropdown } from './DropDown-c8da0a2c.js';
22
+ import { D as Dropdown } from './DropDown-0dd8f2a3.js';
22
23
 
23
24
  var updateQuery = Actions.updateQuery,
24
25
  setQueryOptions = Actions.setQueryOptions,
@@ -8,10 +8,10 @@ import 'polished';
8
8
  import { t as types } from './vueTypes-687b2304.js';
9
9
  import '@appbaseio/reactivecore/lib/utils/transform';
10
10
  import 'redux';
11
- import { f as updateCustomQuery, u as updateDefaultQuery, i as isQueryIdentical, a as isFunction, g as getComponent, n as isEvent, h as hasCustomRenderer, c as connect } from './index-cb1950b6.js';
12
- import { C as ComponentWrapper } from './ComponentWrapper-4f85a67e.js';
11
+ import { f as updateCustomQuery, u as updateDefaultQuery, i as isQueryIdentical, a as isFunction, g as getComponent, n as isEvent, h as hasCustomRenderer, c as connect } from './index-78920565.js';
12
+ import { C as ComponentWrapper } from './ComponentWrapper-0f3431d1.js';
13
13
  import { T as Title } from './Title-3522ff56.js';
14
- import { I as Input } from './Input-08bb1bcf.js';
14
+ import { I as Input } from './Input-10b1d62d.js';
15
15
  import { C as Container } from './Container-18b03fde.js';
16
16
  import { replaceDiacritics } from '@appbaseio/reactivecore/lib/utils/suggestions';
17
17
  import { U as UL, R as Radio } from './FormControlList-704f8dee.js';
@@ -8,8 +8,8 @@ import 'polished';
8
8
  import { t as types } from './vueTypes-687b2304.js';
9
9
  import '@appbaseio/reactivecore/lib/utils/transform';
10
10
  import 'redux';
11
- import { f as updateCustomQuery, i as isQueryIdentical, c as connect } from './index-cb1950b6.js';
12
- import { C as ComponentWrapper } from './ComponentWrapper-4f85a67e.js';
11
+ import { f as updateCustomQuery, i as isQueryIdentical, c as connect } from './index-78920565.js';
12
+ import { C as ComponentWrapper } from './ComponentWrapper-0f3431d1.js';
13
13
  import { T as Title } from './Title-3522ff56.js';
14
14
  import { C as Container } from './Container-18b03fde.js';
15
15
  import { U as UL, R as Radio } from './FormControlList-704f8dee.js';
@@ -3,7 +3,7 @@ import { a as _extends } from './_rollupPluginBabelHelpers-0f24d612.js';
3
3
  import VueTypes from 'vue-types';
4
4
  import '@appbaseio/reactivecore/lib/utils/constants';
5
5
  import 'redux';
6
- import { c as connect } from './index-cb1950b6.js';
6
+ import { c as connect } from './index-78920565.js';
7
7
 
8
8
  var getSearchState = helper.getSearchState;
9
9
  var defaultKeys = ['hits', 'value', 'aggregations', 'error'];
@@ -9,8 +9,8 @@ import { B as Button, t as toggleButtons } from './Button-91561391.js';
9
9
  import { t as types } from './vueTypes-687b2304.js';
10
10
  import '@appbaseio/reactivecore/lib/utils/transform';
11
11
  import 'redux';
12
- import { f as updateCustomQuery, i as isQueryIdentical, c as connect } from './index-cb1950b6.js';
13
- import { C as ComponentWrapper } from './ComponentWrapper-4f85a67e.js';
12
+ import { f as updateCustomQuery, i as isQueryIdentical, c as connect } from './index-78920565.js';
13
+ import { C as ComponentWrapper } from './ComponentWrapper-0f3431d1.js';
14
14
  import { T as Title } from './Title-3522ff56.js';
15
15
  import { C as Container } from './Container-18b03fde.js';
16
16
 
@@ -155,10 +155,16 @@ var isFunction = function isFunction(element) {
155
155
  }; // parses current array (i.e. this.$props.value) for `onChange` callback for multi-* components
156
156
 
157
157
  function parseValueArray(objectValues, currentValue) {
158
- var keys = Object.keys(objectValues);
159
- var selectedValues = keys.map(function (key) {
160
- return objectValues[key] ? key : null;
161
- });
158
+ var selectedValues;
159
+
160
+ if (Array.isArray(objectValues)) {
161
+ selectedValues = [].concat(objectValues);
162
+ } else {
163
+ var keys = Object.keys(objectValues);
164
+ selectedValues = keys.map(function (key) {
165
+ return objectValues[key] ? key : null;
166
+ });
167
+ }
162
168
 
163
169
  if (selectedValues.includes(currentValue)) {
164
170
  return selectedValues.filter(function (item) {
package/dist/es/index.js CHANGED
@@ -11,8 +11,8 @@ import './vueTypes-687b2304.js';
11
11
  export { default as ReactiveList } from './ReactiveList.js';
12
12
  import '@appbaseio/reactivecore/lib/utils/transform';
13
13
  import 'redux';
14
- import './index-cb1950b6.js';
15
- import './ComponentWrapper-4f85a67e.js';
14
+ import './index-78920565.js';
15
+ import './ComponentWrapper-0f3431d1.js';
16
16
  import '@vue/babel-helper-vue-jsx-merge-props';
17
17
  import './Title-3522ff56.js';
18
18
  import './ListItem-8e8fb535.js';
@@ -23,18 +23,20 @@ import 'appbase-js';
23
23
  import 'url-search-params-polyfill';
24
24
  export { default as ReactiveBase } from './ReactiveBase.js';
25
25
  import 'hotkeys-js';
26
- export { default as DataSearch } from './DataSearch.js';
26
+ export { D as DataSearch } from './DataSearch-77325036.js';
27
27
  import './CancelSvg-c2c03a35.js';
28
- import './Input-08bb1bcf.js';
28
+ import './Input-10b1d62d.js';
29
29
  import 'compute-scroll-into-view';
30
30
  import './Container-18b03fde.js';
31
31
  import 'vue-highlight-words';
32
+ import { i as install } from './install-86388b0e.js';
33
+ export { S as SearchBox, i as install } from './install-86388b0e.js';
32
34
  import '@appbaseio/reactivecore/lib/utils/suggestions';
33
35
  import './FormControlList-704f8dee.js';
34
36
  import './utils-64a2e5f0.js';
35
37
  export { default as SingleList } from './SingleList.js';
36
38
  export { default as MultiList } from './MultiList.js';
37
- import './DropDown-c8da0a2c.js';
39
+ import './DropDown-0dd8f2a3.js';
38
40
  export { default as SingleDropdownList } from './SingleDropdownList.js';
39
41
  export { default as MultiDropdownList } from './MultiDropdownList.js';
40
42
  export { default as ToggleButton } from './ToggleButton.js';
@@ -61,8 +63,6 @@ export { default as initReactivesearch } from './initReactivesearch.js';
61
63
  import version from './version.js';
62
64
  export { default as version } from './version.js';
63
65
  export { default as RangeInput } from './RangeInput.js';
64
- import install from './install.js';
65
- export { default as install } from './install.js';
66
66
 
67
67
  // Add polyfills to support in IE
68
68