@appbaseio/reactivesearch-vue 1.24.3 → 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 (69) hide show
  1. package/dist/@appbaseio/reactivesearch-vue.umd.js +2015 -567
  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/{DownShift-62e82255.js → CancelSvg-4aa35935.js} +58 -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 -2152
  9. package/dist/cjs/{DropDown-6815b9b6.js → DropDown-0076babc.js} +66 -24
  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 +19 -11
  13. package/dist/cjs/MultiList.js +22 -16
  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 +6 -4
  18. package/dist/cjs/ReactiveComponent.js +3 -3
  19. package/dist/cjs/ReactiveList.js +61 -44
  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 +18 -10
  24. package/dist/cjs/SingleList.js +10 -9
  25. package/dist/cjs/SingleRange.js +4 -4
  26. package/dist/cjs/StateProvider.js +7 -3
  27. package/dist/cjs/ToggleButton.js +5 -5
  28. package/dist/cjs/{index-89c39a9e.js → index-4509aa45.js} +10 -4
  29. package/dist/cjs/index.js +17 -13
  30. package/dist/cjs/initReactivesearch.js +19 -0
  31. package/dist/cjs/install-b7a80fc1.js +1196 -0
  32. package/dist/cjs/install.js +29 -33
  33. package/dist/cjs/ssr-0ee35a09.js +39 -0
  34. package/dist/cjs/version.js +1 -1
  35. package/dist/cjs/{vueTypes-4c19b4c8.js → vueTypes-57d01f18.js} +3 -3
  36. package/dist/es/{DownShift-3558d402.js → CancelSvg-c2c03a35.js} +55 -16
  37. package/dist/es/{ComponentWrapper-4f85a67e.js → ComponentWrapper-0f3431d1.js} +1 -1
  38. package/dist/es/DataSearch-77325036.js +2141 -0
  39. package/dist/es/DataSearch.js +17 -2151
  40. package/dist/es/{DropDown-035c804f.js → DropDown-0dd8f2a3.js} +65 -23
  41. package/dist/es/DynamicRangeSlider.js +48 -12
  42. package/dist/es/{Input-08bb1bcf.js → Input-10b1d62d.js} +1 -1
  43. package/dist/es/MultiDropdownList.js +19 -11
  44. package/dist/es/MultiList.js +22 -16
  45. package/dist/es/MultiRange.js +4 -4
  46. package/dist/es/RangeInput.js +10 -6
  47. package/dist/es/RangeSlider.js +19 -22
  48. package/dist/es/ReactiveBase.js +6 -4
  49. package/dist/es/ReactiveComponent.js +3 -3
  50. package/dist/es/ReactiveList.js +61 -44
  51. package/dist/es/ResultCard.js +1 -1
  52. package/dist/es/ResultList.js +1 -1
  53. package/dist/es/SelectedFilters.js +8 -6
  54. package/dist/es/SingleDropdownList.js +18 -10
  55. package/dist/es/SingleList.js +10 -9
  56. package/dist/es/SingleRange.js +4 -4
  57. package/dist/es/StateProvider.js +7 -3
  58. package/dist/es/ToggleButton.js +5 -5
  59. package/dist/es/{index-cb1950b6.js → index-78920565.js} +10 -4
  60. package/dist/es/index.js +13 -10
  61. package/dist/es/initReactivesearch.js +19 -0
  62. package/dist/es/install-86388b0e.js +1189 -0
  63. package/dist/es/install.js +27 -35
  64. package/dist/es/ssr-a41dfea9.js +33 -0
  65. package/dist/es/version.js +1 -1
  66. package/dist/es/{vueTypes-fb61bb7b.js → vueTypes-687b2304.js} +3 -3
  67. package/package.json +4 -4
  68. package/dist/cjs/ssr-08e95ede.js +0 -39
  69. package/dist/es/ssr-5d255b08.js +0 -33
@@ -9,10 +9,12 @@ 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 Input = require('./Input-3cc3fa59.js');
15
- var DownShift = require('./DownShift-62e82255.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');
17
+ var suggestions = require('@appbaseio/reactivecore/lib/utils/suggestions');
16
18
 
17
19
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
18
20
  var small = emotion.css(_templateObject || (_templateObject = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tmin-height: 0;\n\theight: 30px;\n\tborder: 0;\n\tbox-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px;\n\tborder-radius: 2px;\n"])));
@@ -74,7 +76,9 @@ var Dropdown = {
74
76
  single: VueTypes.bool,
75
77
  small: VueTypes.bool.def(false),
76
78
  themePreset: vueTypes.types.themePreset,
77
- showSearch: VueTypes.bool
79
+ showSearch: VueTypes.bool,
80
+ showClear: VueTypes.bool,
81
+ searchPlaceholder: VueTypes.string.def('Type here to search...')
78
82
  },
79
83
  render: function render() {
80
84
  var _this = this;
@@ -102,7 +106,7 @@ var Dropdown = {
102
106
  var filteredItemsToRender = itemsToRender.filter(function (item) {
103
107
  if (String(item[labelField]).length) {
104
108
  if (_this.$props.showSearch && _this.$data.searchTerm) {
105
- return String(item[labelField]).toLowerCase().includes(_this.$data.searchTerm.toLowerCase());
109
+ return suggestions.replaceDiacritics(String(item[labelField])).toLowerCase().includes(suggestions.replaceDiacritics(_this.$data.searchTerm.toLowerCase()));
106
110
  }
107
111
 
108
112
  return true;
@@ -110,7 +114,7 @@ var Dropdown = {
110
114
 
111
115
  return false;
112
116
  });
113
- return h(DownShift.Downshift, {
117
+ return h(CancelSvg.Downshift, {
114
118
  "attrs": {
115
119
  "isOpen": this.$data.isOpen,
116
120
  "selectedItem": selectedItem,
@@ -123,7 +127,8 @@ var Dropdown = {
123
127
  isOpen = _ref.isOpen,
124
128
  highlightedIndex = _ref.highlightedIndex,
125
129
  getButtonProps = _ref.getButtonProps,
126
- getItemEvents = _ref.getItemEvents;
130
+ getItemEvents = _ref.getItemEvents,
131
+ getInputEvents = _ref.getInputEvents;
127
132
  return h("div", {
128
133
  "class": Input.suggestionsContainer
129
134
  }, [h(Select, {
@@ -148,25 +153,16 @@ var Dropdown = {
148
153
  getItemEvents: getItemEvents
149
154
  }) : isOpen && itemsToRender.length ? h("ul", {
150
155
  "class": Input.suggestions(themePreset, _this.theme) + " " + (_this.$props.small ? 'small' : '') + " " + getClassName(_this.$props.innerClass, 'list')
151
- }, [_this.$props.showSearch ? h(Input.Input, {
152
- "attrs": {
153
- "id": _this.$props.componentId + "-input",
154
- "showIcon": false,
155
- "placeholder": "Type here to search...",
156
- "value": _this.$data.searchTerm,
157
- "themePreset": themePreset
158
- },
159
- "style": {
160
- border: 0,
161
- borderBottom: '1px solid #ddd'
162
- },
163
- "class": getClassName(_this.$props.innerClass, 'input'),
164
- "on": {
165
- "change": _this.handleInputChange
156
+ }, [_this.$props.showSearch ? _this.renderSearchbox({
157
+ on: {
158
+ input: getInputEvents({
159
+ onInput: _this.handleInputChange
160
+ }).input
166
161
  }
167
162
  }) : null, !hasCustomRenderer && filteredItemsToRender.length === 0 ? _this.renderNoResult() : filteredItemsToRender.map(function (item, index) {
168
163
  var selected = _this.$props.multi // MultiDropdownList
169
- && (selectedItem && !!selectedItem[item[keyField]] || Array.isArray(selectedItem) && selectedItem.find(function (value) {
164
+ && (selectedItem && !!selectedItem[item[keyField]] // MultiDropdownRange
165
+ || Array.isArray(selectedItem) && selectedItem.find(function (value) {
170
166
  return value[labelField] === item[labelField];
171
167
  }));
172
168
  if (!_this.$props.multi) selected = item.key === selectedItem;
@@ -216,6 +212,7 @@ var Dropdown = {
216
212
 
217
213
  if (!this.$props.multi) {
218
214
  this.isOpen = false;
215
+ this.searchTerm = '';
219
216
  }
220
217
  },
221
218
  handleStateChange: function handleStateChange(_ref2) {
@@ -239,6 +236,9 @@ var Dropdown = {
239
236
  var value = e.target.value;
240
237
  this.searchTerm = value;
241
238
  },
239
+ clearSearchTerm: function clearSearchTerm() {
240
+ this.searchTerm = '';
241
+ },
242
242
  renderToString: function renderToString(value) {
243
243
  var _this2 = this;
244
244
 
@@ -279,6 +279,48 @@ var Dropdown = {
279
279
  return h("p", {
280
280
  "class": getClassName(this.$props.innerClass, 'noResults') || null
281
281
  }, [index.isFunction(renderNoResults) ? renderNoResults() : renderNoResults]);
282
+ },
283
+ renderSearchbox: function renderSearchbox(eventObject) {
284
+ var h = this.$createElement;
285
+ var _this$$props2 = this.$props,
286
+ componentId = _this$$props2.componentId,
287
+ searchPlaceholder = _this$$props2.searchPlaceholder,
288
+ showClear = _this$$props2.showClear,
289
+ themePreset = _this$$props2.themePreset,
290
+ innerClass = _this$$props2.innerClass;
291
+ var InputComponent = h(Input.Input, _mergeJSXProps([{
292
+ "attrs": {
293
+ "id": componentId + "-input",
294
+ "showIcon": false,
295
+ "showClear": showClear,
296
+ "placeholder": searchPlaceholder,
297
+ "value": this.$data.searchTerm,
298
+ "themePreset": themePreset
299
+ },
300
+ "style": {
301
+ border: 0,
302
+ borderBottom: '1px solid #ddd'
303
+ },
304
+ "class": getClassName(innerClass, 'input')
305
+ }, eventObject]));
306
+
307
+ if (showClear) {
308
+ return h(CancelSvg.InputWrapper, [InputComponent, this.searchTerm && h(CancelSvg.IconGroup, {
309
+ "attrs": {
310
+ "groupPosition": "right",
311
+ "positionType": "absolute"
312
+ }
313
+ }, [h(CancelSvg.IconWrapper, {
314
+ "on": {
315
+ "click": this.clearSearchTerm
316
+ },
317
+ "attrs": {
318
+ "isClearIcon": true
319
+ }
320
+ }, [h(CancelSvg.CancelSvg)])])]);
321
+ }
322
+
323
+ return InputComponent;
282
324
  }
283
325
  }
284
326
  };
@@ -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,18 +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('./Input-3cc3fa59.js');
23
+ require('./CancelSvg-4aa35935.js');
24
+ require('./Input-a9ee53ed.js');
23
25
  require('compute-scroll-into-view');
24
- require('./DownShift-62e82255.js');
25
26
  var Container = require('./Container-526efa6a.js');
27
+ require('@appbaseio/reactivecore/lib/utils/suggestions');
26
28
  var utils = require('./utils-1219e1fe.js');
27
- var DropDown = require('./DropDown-6815b9b6.js');
29
+ var DropDown = require('./DropDown-0076babc.js');
28
30
 
29
31
  var updateQuery = configureStore.Actions.updateQuery,
30
32
  setQueryOptions = configureStore.Actions.setQueryOptions,
@@ -81,10 +83,12 @@ var MultiDropdownList = {
81
83
  showMissing: VueTypes.bool.def(false),
82
84
  missingLabel: VueTypes.string.def('N/A'),
83
85
  showSearch: VueTypes.bool.def(false),
86
+ showClear: VueTypes.bool.def(false),
84
87
  showLoadMore: VueTypes.bool.def(false),
85
88
  loadMoreLabel: VueTypes.oneOfType([VueTypes.string, VueTypes.any]).def('Load More'),
86
89
  nestedField: vueTypes.types.string,
87
- index: VueTypes.string
90
+ index: VueTypes.string,
91
+ searchPlaceholder: VueTypes.string.def('Type here to search...')
88
92
  },
89
93
  created: function created() {
90
94
  if (!this.enableAppbase && this.$props.index) {
@@ -212,7 +216,9 @@ var MultiDropdownList = {
212
216
  if (!this.hasCustomRenderer && this.$data.modifiedOptions.length === 0 && !this.isLoading) {
213
217
  if (renderNoResults && index.isFunction(renderNoResults)) {
214
218
  return h("div", [renderNoResults()]);
215
- } else if (renderNoResults && !index.isFunction(renderNoResults)) {
219
+ }
220
+
221
+ if (renderNoResults && !index.isFunction(renderNoResults)) {
216
222
  return renderNoResults;
217
223
  }
218
224
 
@@ -251,6 +257,8 @@ var MultiDropdownList = {
251
257
  "renderItem": renderItemCalc,
252
258
  "renderNoResults": this.$scopedSlots.renderNoResults || this.$props.renderNoResults,
253
259
  "showSearch": this.$props.showSearch,
260
+ "showClear": this.$props.showClear,
261
+ "searchPlaceholder": this.$props.searchPlaceholder,
254
262
  "transformData": this.$props.transformData,
255
263
  "footer": showLoadMore && !isLastBucket && h("div", {
256
264
  "attrs": {
@@ -342,7 +350,7 @@ var MultiDropdownList = {
342
350
  }
343
351
 
344
352
  var performUpdate = function performUpdate() {
345
- _this3.currentValue = currentValue;
353
+ _this3.currentValue = _rollupPluginBabelHelpers._extends({}, currentValue);
346
354
 
347
355
  _this3.updateQueryHandler(finalValues, props);
348
356
 
@@ -369,7 +377,7 @@ var MultiDropdownList = {
369
377
  index.updateDefaultQuery(props.componentId, this.setDefaultQuery, props, value);
370
378
  }
371
379
 
372
- this.setQueryOptions(this.internalComponent, defaultQueryOptions);
380
+ this.setQueryOptions(this.internalComponent, defaultQueryOptions, false);
373
381
  this.updateQuery({
374
382
  componentId: this.internalComponent,
375
383
  query: query,
@@ -390,7 +398,7 @@ var MultiDropdownList = {
390
398
  index.updateCustomQuery(props.componentId, this.setCustomQuery, props, value);
391
399
  }
392
400
 
393
- this.setQueryOptions(props.componentId, customQueryOptions);
401
+ this.setQueryOptions(props.componentId, customQueryOptions, false);
394
402
  this.updateQuery({
395
403
  componentId: props.componentId,
396
404
  query: query,
@@ -12,14 +12,15 @@ 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
+ var suggestions = require('@appbaseio/reactivecore/lib/utils/suggestions');
23
24
  var FormControlList = require('./FormControlList-808dbcef.js');
24
25
  var utils = require('./utils-1219e1fe.js');
25
26
 
@@ -40,7 +41,7 @@ var MultiList = {
40
41
  queryFormat: VueTypes.oneOf(['and', 'or']).def('or'),
41
42
  showCheckbox: VueTypes.bool.def(true),
42
43
  beforeValueChange: vueTypes.types.func,
43
- className: vueTypes.types.string.def(''),
44
+ className: VueTypes.string.def(''),
44
45
  componentId: vueTypes.types.stringRequired,
45
46
  customQuery: vueTypes.types.func,
46
47
  dataField: vueTypes.types.stringRequired,
@@ -90,13 +91,14 @@ var MultiList = {
90
91
  },
91
92
  beforeMount: function beforeMount() {
92
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);
93
99
 
94
- if (this.selectedValue) {
95
- this.setValue(this.selectedValue);
96
- } else if (this.$props.value) {
97
- this.setValue(this.$props.value, true);
98
- } else if (this.$props.defaultValue) {
99
- this.setValue(this.$props.defaultValue, true);
100
+ if (this.$props.value !== undefined && !isEqual(this.$props.value, currentValue)) {
101
+ this.$emit('change', currentValue);
100
102
  }
101
103
  },
102
104
  watch: {
@@ -141,7 +143,11 @@ var MultiList = {
141
143
  }
142
144
 
143
145
  if (!isEqual(selectedValue, newVal)) {
144
- this.setValue(newVal || [], true);
146
+ if (this.value === undefined) {
147
+ this.setValue(newVal, true);
148
+ } else {
149
+ this.$emit('change', newVal);
150
+ }
145
151
  }
146
152
  },
147
153
  defaultQuery: function defaultQuery(newVal, oldVal) {
@@ -187,7 +193,7 @@ var MultiList = {
187
193
  var filteredItemsToRender = itemsToRender.filter(function (item) {
188
194
  if (String(item.key).length) {
189
195
  if (_this2.$props.showSearch && _this2.$data.searchTerm) {
190
- return String(item.key).toLowerCase().includes(_this2.$data.searchTerm.toLowerCase());
196
+ return suggestions.replaceDiacritics(String(item.key)).toLowerCase().includes(suggestions.replaceDiacritics(_this2.$data.searchTerm).toLowerCase());
191
197
  }
192
198
 
193
199
  return true;
@@ -355,7 +361,7 @@ var MultiList = {
355
361
  index.updateDefaultQuery(props.componentId, this.setDefaultQuery, props, value);
356
362
  }
357
363
 
358
- this.setQueryOptions(this.internalComponent, defaultQueryOptions);
364
+ this.setQueryOptions(this.internalComponent, defaultQueryOptions, false);
359
365
  this.updateQuery({
360
366
  componentId: this.internalComponent,
361
367
  query: query,
@@ -376,7 +382,7 @@ var MultiList = {
376
382
  index.updateCustomQuery(props.componentId, this.setCustomQuery, props, value);
377
383
  }
378
384
 
379
- this.setQueryOptions(props.componentId, customQueryOptions);
385
+ this.setQueryOptions(props.componentId, customQueryOptions, false);
380
386
  this.updateQuery({
381
387
  componentId: props.componentId,
382
388
  query: query,
@@ -440,7 +446,7 @@ var MultiList = {
440
446
  if (value === undefined) {
441
447
  this.setValue(currentValue);
442
448
  } else {
443
- var values = index.parseValueArray(value, currentValue);
449
+ var values = index.parseValueArray(value || [], currentValue);
444
450
  this.$emit('change', values);
445
451
  }
446
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", {