@appbaseio/reactivesearch-vue 1.16.0-alpha.3 → 1.16.0-alpha.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/@appbaseio/reactivesearch-vue.umd.js +6388 -5403
  2. package/dist/@appbaseio/reactivesearch-vue.umd.js.map +1 -1
  3. package/dist/@appbaseio/reactivesearch-vue.umd.min.js +5 -5
  4. package/dist/@appbaseio/reactivesearch-vue.umd.min.js.map +1 -1
  5. package/dist/cjs/Button-d2f1aeda.js +68 -0
  6. package/dist/cjs/{DownShift-b09da079.js → CancelSvg-82021d23.js} +60 -16
  7. package/dist/cjs/Card-4b915733.js +30 -0
  8. package/dist/cjs/{ComponentWrapper-5a0a8849.js → ComponentWrapper-7302fe1a.js} +40 -21
  9. package/dist/cjs/{Container-f84e72fc.js → Container-8a08d663.js} +3 -11
  10. package/dist/cjs/DataSearch.js +341 -391
  11. package/dist/cjs/{DropDown-c66be1a8.js → DropDown-c46d8b0c.js} +80 -95
  12. package/dist/cjs/DynamicRangeSlider.js +81 -25
  13. package/dist/cjs/Flex-699639d2.js +52 -0
  14. package/dist/cjs/FormControlList-73497794.js +47 -0
  15. package/dist/cjs/Input-c6f181d5.js +79 -0
  16. package/dist/cjs/ListItem-933c27e4.js +46 -0
  17. package/dist/cjs/MultiDropdownList.js +71 -46
  18. package/dist/cjs/MultiList.js +49 -29
  19. package/dist/cjs/MultiRange.js +20 -14
  20. package/dist/cjs/{Pagination-91df3b77.js → Pagination-1b2320a7.js} +4 -3
  21. package/dist/cjs/RangeInput.js +29 -45
  22. package/dist/cjs/RangeSlider.js +31 -28
  23. package/dist/cjs/ReactiveBase.js +55 -34
  24. package/dist/cjs/ReactiveComponent.js +80 -36
  25. package/dist/cjs/ReactiveGoogleMap.js +326 -235
  26. package/dist/cjs/ReactiveList.js +149 -202
  27. package/dist/cjs/ResultCard.js +8 -6
  28. package/dist/cjs/ResultList.js +8 -6
  29. package/dist/cjs/SelectedFilters.js +25 -12
  30. package/dist/cjs/SingleDropdownList.js +70 -45
  31. package/dist/cjs/SingleList.js +44 -26
  32. package/dist/cjs/SingleRange.js +17 -11
  33. package/dist/cjs/StateProvider.js +11 -7
  34. package/dist/cjs/{Title-e9beb554.js → Title-39765ee6.js} +3 -11
  35. package/dist/cjs/ToggleButton.js +35 -16
  36. package/dist/cjs/{_rollupPluginBabelHelpers-280a574c.js → _rollupPluginBabelHelpers-4abdbfff.js} +11 -1
  37. package/dist/cjs/{index-e0583d76.js → index-d44a0a21.js} +87 -13
  38. package/dist/cjs/index.js +23 -19
  39. package/dist/cjs/initReactivesearch.js +80 -38
  40. package/dist/cjs/install.js +20 -18
  41. package/dist/cjs/ssr-c333c82c.js +39 -0
  42. package/dist/cjs/{utils-d1ea9f95.js → utils-23afb20b.js} +2 -2
  43. package/dist/cjs/version.js +1 -1
  44. package/dist/cjs/{vueTypes-c21f265b.js → vueTypes-6de9d2a9.js} +9 -4
  45. package/dist/es/Button-799185e2.js +59 -0
  46. package/dist/es/{DownShift-d8f2500f.js → CancelSvg-4d9e0857.js} +56 -17
  47. package/dist/es/Card-04b3c33e.js +23 -0
  48. package/dist/es/{ComponentWrapper-d0b21b95.js → ComponentWrapper-bbb717bc.js} +40 -21
  49. package/dist/es/Container-4383c6f0.js +10 -0
  50. package/dist/es/DataSearch.js +339 -389
  51. package/dist/es/{DropDown-5dbd69c2.js → DropDown-4edaa621.js} +79 -94
  52. package/dist/es/DynamicRangeSlider.js +81 -25
  53. package/dist/es/Flex-aac91505.js +47 -0
  54. package/dist/es/FormControlList-fe389a2e.js +40 -0
  55. package/dist/es/Input-d8519224.js +71 -0
  56. package/dist/es/ListItem-bdb6d53d.js +39 -0
  57. package/dist/es/MultiDropdownList.js +71 -46
  58. package/dist/es/MultiList.js +49 -29
  59. package/dist/es/MultiRange.js +20 -14
  60. package/dist/es/{Pagination-800af44f.js → Pagination-b3e4054a.js} +4 -3
  61. package/dist/es/RangeInput.js +29 -45
  62. package/dist/es/RangeSlider.js +31 -28
  63. package/dist/es/ReactiveBase.js +55 -34
  64. package/dist/es/ReactiveComponent.js +80 -36
  65. package/dist/es/ReactiveGoogleMap.js +326 -235
  66. package/dist/es/ReactiveList.js +149 -202
  67. package/dist/es/ResultCard.js +8 -6
  68. package/dist/es/ResultList.js +8 -6
  69. package/dist/es/SelectedFilters.js +25 -12
  70. package/dist/es/SingleDropdownList.js +70 -45
  71. package/dist/es/SingleList.js +44 -26
  72. package/dist/es/SingleRange.js +17 -11
  73. package/dist/es/StateProvider.js +11 -7
  74. package/dist/es/Title-579f8d6c.js +10 -0
  75. package/dist/es/ToggleButton.js +35 -16
  76. package/dist/es/{_rollupPluginBabelHelpers-c9fbe19f.js → _rollupPluginBabelHelpers-ecf6c03c.js} +11 -1
  77. package/dist/es/{index-1fe91a0a.js → index-5daa8276.js} +84 -14
  78. package/dist/es/index.js +23 -19
  79. package/dist/es/initReactivesearch.js +80 -38
  80. package/dist/es/install.js +20 -18
  81. package/dist/es/ssr-e3196de1.js +33 -0
  82. package/dist/es/{utils-ce3d86fd.js → utils-3a32e13f.js} +2 -2
  83. package/dist/es/version.js +1 -1
  84. package/dist/es/{vueTypes-98d938a9.js → vueTypes-9326e0be.js} +9 -4
  85. package/package.json +86 -78
  86. package/dist/cjs/Button-78d8bc26.js +0 -146
  87. package/dist/cjs/Card-b4af314f.js +0 -58
  88. package/dist/cjs/Flex-737c55be.js +0 -160
  89. package/dist/cjs/FormControlList-08dfb28e.js +0 -105
  90. package/dist/cjs/Input-643d02a7.js +0 -178
  91. package/dist/cjs/ListItem-0c58c5d2.js +0 -84
  92. package/dist/cjs/ssr-b7a729f9.js +0 -47
  93. package/dist/es/Button-6c71c66e.js +0 -137
  94. package/dist/es/Card-ecf70ba1.js +0 -51
  95. package/dist/es/Container-f5efec9e.js +0 -18
  96. package/dist/es/Flex-40a74d8a.js +0 -155
  97. package/dist/es/FormControlList-b96aebef.js +0 -98
  98. package/dist/es/Input-dfd9dd40.js +0 -170
  99. package/dist/es/ListItem-da73bc7d.js +0 -77
  100. package/dist/es/Title-22c2f3bf.js +0 -18
  101. package/dist/es/ssr-2f57791d.js +0 -41
@@ -4,15 +4,15 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
6
 
7
- var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-280a574c.js');
7
+ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-4abdbfff.js');
8
8
  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-c21f265b.js');
12
+ var vueTypes = require('./vueTypes-6de9d2a9.js');
13
13
  var _mergeJSXProps = _interopDefault(require('@vue/babel-helper-vue-jsx-merge-props'));
14
- var Title = require('./Title-e9beb554.js');
15
- var Card = require('./Card-b4af314f.js');
14
+ var Title = require('./Title-39765ee6.js');
15
+ var Card = require('./Card-4b915733.js');
16
16
 
17
17
  var ResultCardTitle = {
18
18
  name: 'ResultCardTitle',
@@ -27,6 +27,7 @@ ResultCardTitle.install = function (Vue) {
27
27
  Vue.component(ResultCardTitle.name, ResultCardTitle);
28
28
  };
29
29
 
30
+ var _excluded = ["src"];
30
31
  var ResultCardImage = {
31
32
  name: 'ResultCardImage',
32
33
  props: {
@@ -37,7 +38,7 @@ var ResultCardImage = {
37
38
 
38
39
  var _this$$props = this.$props,
39
40
  src = _this$$props.src,
40
- props = _rollupPluginBabelHelpers._objectWithoutPropertiesLoose(_this$$props, ["src"]);
41
+ props = _rollupPluginBabelHelpers._objectWithoutPropertiesLoose(_this$$props, _excluded);
41
42
 
42
43
  return h(Card.Image, _mergeJSXProps([{
43
44
  "style": {
@@ -66,6 +67,7 @@ ResultCardDescription.install = function (Vue) {
66
67
  Vue.component(ResultCardDescription.name, ResultCardDescription);
67
68
  };
68
69
 
70
+ var _excluded$1 = ["href", "target"];
69
71
  var ResultCard = {
70
72
  name: 'ResultCard',
71
73
  components: {
@@ -84,7 +86,7 @@ var ResultCard = {
84
86
  var _this$$props = this.$props,
85
87
  href = _this$$props.href,
86
88
  target = _this$$props.target,
87
- rest = _rollupPluginBabelHelpers._objectWithoutPropertiesLoose(_this$$props, ["href", "target"]);
89
+ rest = _rollupPluginBabelHelpers._objectWithoutPropertiesLoose(_this$$props, _excluded$1);
88
90
 
89
91
  return h(Card.Card, _mergeJSXProps([{
90
92
  "attrs": {
@@ -4,15 +4,15 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
6
 
7
- var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-280a574c.js');
7
+ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-4abdbfff.js');
8
8
  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-c21f265b.js');
12
+ var vueTypes = require('./vueTypes-6de9d2a9.js');
13
13
  var _mergeJSXProps = _interopDefault(require('@vue/babel-helper-vue-jsx-merge-props'));
14
- var Title = require('./Title-e9beb554.js');
15
- var ListItem = require('./ListItem-0c58c5d2.js');
14
+ var Title = require('./Title-39765ee6.js');
15
+ var ListItem = require('./ListItem-933c27e4.js');
16
16
 
17
17
  var ResultListContent = {
18
18
  name: 'ResultListContent',
@@ -44,6 +44,7 @@ ResultListDescription.install = function (Vue) {
44
44
  Vue.component(ResultListDescription.name, ResultListDescription);
45
45
  };
46
46
 
47
+ var _excluded = ["src", "small"];
47
48
  var ResultListImage = {
48
49
  name: 'ResultListImage',
49
50
  props: {
@@ -56,7 +57,7 @@ var ResultListImage = {
56
57
  var _this$$props = this.$props,
57
58
  src = _this$$props.src,
58
59
  small = _this$$props.small,
59
- props = _rollupPluginBabelHelpers._objectWithoutPropertiesLoose(_this$$props, ["src", "small"]);
60
+ props = _rollupPluginBabelHelpers._objectWithoutPropertiesLoose(_this$$props, _excluded);
60
61
 
61
62
  return h(ListItem.Image, _mergeJSXProps([{
62
63
  "attrs": {
@@ -84,6 +85,7 @@ ResultListTitle.install = function (Vue) {
84
85
  Vue.component(ResultListTitle.name, ResultListTitle);
85
86
  };
86
87
 
88
+ var _excluded$1 = ["href", "target"];
87
89
  var ResultList = {
88
90
  name: 'ResultList',
89
91
  props: {
@@ -123,7 +125,7 @@ var ResultList = {
123
125
  var _this$$props = this.$props,
124
126
  href = _this$$props.href,
125
127
  target = _this$$props.target,
126
- props = _rollupPluginBabelHelpers._objectWithoutPropertiesLoose(_this$$props, ["href", "target"]);
128
+ props = _rollupPluginBabelHelpers._objectWithoutPropertiesLoose(_this$$props, _excluded$1);
127
129
 
128
130
  var hasImage = this.hasImage,
129
131
  isSmall = this.isSmall;
@@ -6,21 +6,22 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
6
6
 
7
7
  var configureStore = require('@appbaseio/reactivecore');
8
8
  var configureStore__default = _interopDefault(configureStore);
9
- var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-280a574c.js');
9
+ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-4abdbfff.js');
10
10
  var VueTypes = _interopDefault(require('vue-types'));
11
11
  require('@appbaseio/reactivecore/lib/utils/constants');
12
12
  require('emotion');
13
13
  require('@appbaseio/vue-emotion');
14
14
  require('polished');
15
- var Button = require('./Button-78d8bc26.js');
16
- var vueTypes = require('./vueTypes-c21f265b.js');
15
+ var Button = require('./Button-d2f1aeda.js');
16
+ var vueTypes = require('./vueTypes-6de9d2a9.js');
17
17
  require('redux');
18
- var index = require('./index-e0583d76.js');
19
- var Title = require('./Title-e9beb554.js');
20
- var Container = require('./Container-f84e72fc.js');
18
+ var index = require('./index-d44a0a21.js');
19
+ var Title = require('./Title-39765ee6.js');
20
+ var Container = require('./Container-8a08d663.js');
21
21
 
22
22
  var setValue = configureStore.Actions.setValue,
23
- clearValues = configureStore.Actions.clearValues;
23
+ clearValues = configureStore.Actions.clearValues,
24
+ resetValuesToDefault = configureStore.Actions.resetValuesToDefault;
24
25
  var getClassName = configureStore.helper.getClassName,
25
26
  handleA11yAction = configureStore.helper.handleA11yAction;
26
27
  var SelectedFilters = {
@@ -30,7 +31,9 @@ var SelectedFilters = {
30
31
  clearAllLabel: VueTypes.string.def('Clear All'),
31
32
  innerClass: vueTypes.types.style,
32
33
  showClearAll: VueTypes.bool.def(true),
33
- title: vueTypes.types.title
34
+ title: vueTypes.types.title,
35
+ resetToDefault: VueTypes.bool.def(false),
36
+ resetToValues: VueTypes.object
34
37
  },
35
38
  inject: {
36
39
  theme: {
@@ -47,7 +50,8 @@ var SelectedFilters = {
47
50
  components: this.components,
48
51
  selectedValues: this.selectedValues,
49
52
  clearValues: this.clearValues,
50
- setValue: this.setValue
53
+ setValue: this.setValue,
54
+ resetValuesToDefault: this.resetValuesToDefault
51
55
  });
52
56
  }
53
57
 
@@ -82,8 +86,16 @@ var SelectedFilters = {
82
86
  this.$emit('clear', component, value);
83
87
  },
84
88
  clearValues: function clearValues() {
85
- this.clearValuesAction();
86
- this.$emit('clear', null);
89
+ var resetToDefault = this.resetToDefault,
90
+ resetToValues = this.resetToValues;
91
+
92
+ if (resetToDefault) {
93
+ this.resetValuesToDefault();
94
+ } else {
95
+ this.clearValuesAction(resetToValues);
96
+ }
97
+
98
+ this.$emit('clear', resetToValues);
87
99
  },
88
100
  renderValue: function renderValue(value, isArray) {
89
101
  var _this2 = this;
@@ -163,7 +175,8 @@ var mapStateToProps = function mapStateToProps(state) {
163
175
 
164
176
  var mapDispatchtoProps = {
165
177
  clearValuesAction: clearValues,
166
- setValue: setValue
178
+ setValue: setValue,
179
+ resetValuesToDefault: resetValuesToDefault
167
180
  };
168
181
  var RcConnected = index.connect(mapStateToProps, mapDispatchtoProps)(SelectedFilters);
169
182
 
@@ -6,25 +6,27 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
6
6
 
7
7
  var configureStore = require('@appbaseio/reactivecore');
8
8
  var configureStore__default = _interopDefault(configureStore);
9
- var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-280a574c.js');
9
+ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-4abdbfff.js');
10
10
  var VueTypes = _interopDefault(require('vue-types'));
11
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 Button = require('./Button-78d8bc26.js');
16
- var vueTypes = require('./vueTypes-c21f265b.js');
15
+ var Button = require('./Button-d2f1aeda.js');
16
+ var vueTypes = require('./vueTypes-6de9d2a9.js');
17
17
  require('@appbaseio/reactivecore/lib/utils/transform');
18
18
  require('redux');
19
- var index = require('./index-e0583d76.js');
20
- var ComponentWrapper = require('./ComponentWrapper-5a0a8849.js');
21
- var Title = require('./Title-e9beb554.js');
22
- require('./Input-643d02a7.js');
19
+ var index = require('./index-d44a0a21.js');
20
+ var ComponentWrapper = require('./ComponentWrapper-7302fe1a.js');
21
+ require('@vue/babel-helper-vue-jsx-merge-props');
22
+ var Title = require('./Title-39765ee6.js');
23
+ require('./CancelSvg-82021d23.js');
24
+ require('./Input-c6f181d5.js');
23
25
  require('compute-scroll-into-view');
24
- require('./DownShift-b09da079.js');
25
- var Container = require('./Container-f84e72fc.js');
26
- var utils = require('./utils-d1ea9f95.js');
27
- var DropDown = require('./DropDown-c66be1a8.js');
26
+ var Container = require('./Container-8a08d663.js');
27
+ require('@appbaseio/reactivecore/lib/utils/suggestions');
28
+ var utils = require('./utils-23afb20b.js');
29
+ var DropDown = require('./DropDown-c46d8b0c.js');
28
30
 
29
31
  var updateQuery = configureStore.Actions.updateQuery,
30
32
  setQueryOptions = configureStore.Actions.setQueryOptions,
@@ -80,12 +82,21 @@ var SingleDropdownList = {
80
82
  showMissing: VueTypes.bool.def(false),
81
83
  missingLabel: VueTypes.string.def('N/A'),
82
84
  showSearch: VueTypes.bool.def(false),
85
+ showClear: VueTypes.bool.def(false),
83
86
  showLoadMore: VueTypes.bool.def(false),
84
87
  loadMoreLabel: VueTypes.oneOfType([VueTypes.string, VueTypes.any]).def('Load More'),
85
- nestedField: vueTypes.types.string
88
+ nestedField: vueTypes.types.string,
89
+ index: VueTypes.string,
90
+ searchPlaceholder: VueTypes.string.def('Type here to search...')
86
91
  },
87
92
  created: function created() {
88
- // Set custom and default queries in store
93
+ if (!this.enableAppbase && this.$props.index) {
94
+ console.warn('Warning(ReactiveSearch): In order to use the `index` prop, the `enableAppbase` prop must be set to true in `ReactiveBase`.');
95
+ }
96
+
97
+ var props = this.$props;
98
+ this.modifiedOptions = this.options && this.options[props.dataField] ? this.options[props.dataField].buckets : []; // Set custom and default queries in store
99
+
89
100
  index.updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, this.currentValue);
90
101
  index.updateDefaultQuery(this.componentId, this.setDefaultQuery, this.$props, this.currentValue);
91
102
  },
@@ -104,33 +115,35 @@ var SingleDropdownList = {
104
115
  options: function options(newVal, oldVal) {
105
116
  var _this = this;
106
117
 
107
- checkPropChange(oldVal, newVal, function () {
108
- var _this$$props = _this.$props,
109
- showLoadMore = _this$$props.showLoadMore,
110
- dataField = _this$$props.dataField;
111
- var modifiedOptions = _this.$data.modifiedOptions;
112
-
113
- if (showLoadMore) {
114
- // append options with showLoadMore
115
- var buckets = newVal[dataField].buckets;
116
- var nextOptions = [].concat(modifiedOptions, buckets.map(function (bucket) {
117
- return {
118
- key: bucket.key[dataField],
119
- doc_count: bucket.doc_count
118
+ if (newVal) {
119
+ checkPropChange(oldVal, newVal, function () {
120
+ var _this$$props = _this.$props,
121
+ showLoadMore = _this$$props.showLoadMore,
122
+ dataField = _this$$props.dataField;
123
+ var modifiedOptions = _this.$data.modifiedOptions;
124
+
125
+ if (showLoadMore) {
126
+ // append options with showLoadMore
127
+ var buckets = newVal[dataField].buckets;
128
+ var nextOptions = [].concat(modifiedOptions, buckets.map(function (bucket) {
129
+ return {
130
+ key: bucket.key[dataField],
131
+ doc_count: bucket.doc_count
132
+ };
133
+ }));
134
+ var after = newVal[dataField].after_key; // detect the last bucket by checking if the next set of buckets were empty
135
+
136
+ var isLastBucket = !buckets.length;
137
+ _this.after = {
138
+ after: after
120
139
  };
121
- }));
122
- var after = newVal[dataField].after_key; // detect the last bucket by checking if the next set of buckets were empty
123
-
124
- var isLastBucket = !buckets.length;
125
- _this.after = {
126
- after: after
127
- };
128
- _this.isLastBucket = isLastBucket;
129
- _this.modifiedOptions = nextOptions;
130
- } else {
131
- _this.modifiedOptions = newVal[_this.$props.dataField] ? newVal[_this.$props.dataField].buckets : [];
132
- }
133
- });
140
+ _this.isLastBucket = isLastBucket;
141
+ _this.modifiedOptions = nextOptions;
142
+ } else {
143
+ _this.modifiedOptions = newVal[_this.$props.dataField] ? newVal[_this.$props.dataField].buckets : [];
144
+ }
145
+ });
146
+ }
134
147
  },
135
148
  size: function size() {
136
149
  this.updateQueryOptions(this.$props);
@@ -179,12 +192,21 @@ var SingleDropdownList = {
179
192
  var renderItemCalc = this.$scopedSlots.renderItem || renderItem;
180
193
  var renderErrorCalc = this.$scopedSlots.renderError || renderError;
181
194
  var renderLabelCalc = this.$scopedSlots.renderLabel || renderLabel;
195
+ var renderNoResults = this.$scopedSlots.renderNoResults || this.$props.renderNoResults;
182
196
 
183
197
  if (renderErrorCalc && this.error) {
184
198
  return index.isFunction(renderErrorCalc) ? renderErrorCalc(this.error) : renderErrorCalc;
185
199
  }
186
200
 
187
- if (!this.hasCustomRenderer && this.$data.modifiedOptions.length === 0) {
201
+ if (!this.hasCustomRenderer && this.$data.modifiedOptions.length === 0 && !this.isLoading) {
202
+ if (renderNoResults && index.isFunction(renderNoResults)) {
203
+ return h("div", [renderNoResults()]);
204
+ }
205
+
206
+ if (renderNoResults && !index.isFunction(renderNoResults)) {
207
+ return renderNoResults;
208
+ }
209
+
188
210
  return null;
189
211
  }
190
212
 
@@ -204,7 +226,7 @@ var SingleDropdownList = {
204
226
  "items": [].concat(selectAll, this.$data.modifiedOptions.filter(function (item) {
205
227
  return String(item.key).trim().length;
206
228
  }).map(function (item) {
207
- return _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, item), {}, {
229
+ return _rollupPluginBabelHelpers._extends({}, item, {
208
230
  key: String(item.key)
209
231
  });
210
232
  })),
@@ -219,6 +241,8 @@ var SingleDropdownList = {
219
241
  "renderNoResults": this.$scopedSlots.renderNoResults || this.$props.renderNoResults,
220
242
  "themePreset": this.themePreset,
221
243
  "showSearch": this.$props.showSearch,
244
+ "showClear": this.$props.showClear,
245
+ "searchPlaceholder": this.$props.searchPlaceholder,
222
246
  "transformData": this.$props.transformData,
223
247
  "footer": showLoadMore && !isLastBucket && h("div", {
224
248
  "attrs": {
@@ -278,7 +302,7 @@ var SingleDropdownList = {
278
302
  index.updateDefaultQuery(props.componentId, this.setDefaultQuery, props, value);
279
303
  }
280
304
 
281
- this.setQueryOptions(this.internalComponent, defaultQueryOptions);
305
+ this.setQueryOptions(this.internalComponent, defaultQueryOptions, false);
282
306
  this.updateQuery({
283
307
  componentId: this.internalComponent,
284
308
  query: query,
@@ -299,7 +323,7 @@ var SingleDropdownList = {
299
323
  index.updateCustomQuery(props.componentId, this.setCustomQuery, props, value);
300
324
  }
301
325
 
302
- this.setQueryOptions(props.componentId, customQueryOptions);
326
+ this.setQueryOptions(props.componentId, customQueryOptions, false);
303
327
  this.updateQuery({
304
328
  componentId: props.componentId,
305
329
  query: query,
@@ -334,7 +358,7 @@ var SingleDropdownList = {
334
358
  if (props.defaultQuery) {
335
359
  var value = this.$data.currentValue;
336
360
  var defaultQueryOptions = getOptionsFromQuery(props.defaultQuery(value, props));
337
- this.setQueryOptions(this.internalComponent, _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, queryOptions), defaultQueryOptions));
361
+ this.setQueryOptions(this.internalComponent, _rollupPluginBabelHelpers._extends({}, queryOptions, defaultQueryOptions));
338
362
  } else {
339
363
  this.setQueryOptions(this.internalComponent, queryOptions);
340
364
  }
@@ -433,7 +457,8 @@ var mapStateToProps = function mapStateToProps(state, props) {
433
457
  selectedValue: state.selectedValues[props.componentId] && state.selectedValues[props.componentId].value || '',
434
458
  themePreset: state.config.themePreset,
435
459
  error: state.error[props.componentId],
436
- componentProps: state.props[props.componentId]
460
+ componentProps: state.props[props.componentId],
461
+ enableAppbase: state.config.enableAppbase
437
462
  };
438
463
  };
439
464
 
@@ -6,22 +6,23 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
6
6
 
7
7
  var configureStore = require('@appbaseio/reactivecore');
8
8
  var configureStore__default = _interopDefault(configureStore);
9
- var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-280a574c.js');
9
+ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-4abdbfff.js');
10
10
  var VueTypes = _interopDefault(require('vue-types'));
11
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-c21f265b.js');
15
+ var vueTypes = require('./vueTypes-6de9d2a9.js');
16
16
  require('@appbaseio/reactivecore/lib/utils/transform');
17
17
  require('redux');
18
- var index = require('./index-e0583d76.js');
19
- var ComponentWrapper = require('./ComponentWrapper-5a0a8849.js');
20
- var Title = require('./Title-e9beb554.js');
21
- var Input = require('./Input-643d02a7.js');
22
- var Container = require('./Container-f84e72fc.js');
23
- var FormControlList = require('./FormControlList-08dfb28e.js');
24
- var utils = require('./utils-d1ea9f95.js');
18
+ var index = require('./index-d44a0a21.js');
19
+ var ComponentWrapper = require('./ComponentWrapper-7302fe1a.js');
20
+ var Title = require('./Title-39765ee6.js');
21
+ var Input = require('./Input-c6f181d5.js');
22
+ var Container = require('./Container-8a08d663.js');
23
+ var suggestions = require('@appbaseio/reactivecore/lib/utils/suggestions');
24
+ var FormControlList = require('./FormControlList-73497794.js');
25
+ var utils = require('./utils-23afb20b.js');
25
26
 
26
27
  var updateQuery = configureStore.Actions.updateQuery,
27
28
  setQueryOptions = configureStore.Actions.setQueryOptions,
@@ -36,7 +37,7 @@ var SingleList = {
36
37
  name: 'SingleList',
37
38
  props: {
38
39
  beforeValueChange: vueTypes.types.func,
39
- className: vueTypes.types.string.def(''),
40
+ className: VueTypes.string.def(''),
40
41
  componentId: vueTypes.types.stringRequired,
41
42
  customQuery: vueTypes.types.func,
42
43
  dataField: vueTypes.types.stringRequired,
@@ -56,27 +57,34 @@ var SingleList = {
56
57
  showFilter: VueTypes.bool.def(true),
57
58
  showRadio: VueTypes.bool.def(true),
58
59
  showSearch: VueTypes.bool.def(true),
59
- size: VueTypes.number.def(100),
60
+ size: VueTypes.number,
60
61
  sortBy: VueTypes.oneOf(['asc', 'desc', 'count']).def('count'),
61
62
  title: vueTypes.types.title,
62
63
  URLParams: VueTypes.bool.def(false),
63
64
  showMissing: VueTypes.bool.def(false),
64
65
  missingLabel: VueTypes.string.def('N/A'),
65
66
  nestedField: vueTypes.types.string,
67
+ index: VueTypes.string,
66
68
  enableStrictSelection: VueTypes.bool.def(false)
67
69
  },
68
70
  data: function data() {
69
71
  var props = this.$props;
70
72
  this.__state = {
71
73
  currentValue: '',
72
- modifiedOptions: props.options && props.options[props.dataField] ? props.options[props.dataField].buckets : [],
74
+ modifiedOptions: [],
73
75
  searchTerm: ''
74
76
  };
75
77
  this.internalComponent = props.componentId + "__internal";
76
78
  return this.__state;
77
79
  },
78
80
  created: function created() {
79
- // Set custom and default queries in store
81
+ if (!this.enableAppbase && this.$props.index) {
82
+ console.warn('Warning(ReactiveSearch): In order to use the `index` prop, the `enableAppbase` prop must be set to true in `ReactiveBase`.');
83
+ }
84
+
85
+ var props = this.$props;
86
+ this.modifiedOptions = this.options && this.options[props.dataField] ? this.options[props.dataField].buckets : []; // Set custom and default queries in store
87
+
80
88
  index.updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, this.currentValue);
81
89
  index.updateDefaultQuery(this.componentId, this.setDefaultQuery, this.$props, this.currentValue);
82
90
  },
@@ -93,7 +101,9 @@ var SingleList = {
93
101
  },
94
102
  watch: {
95
103
  options: function options(newVal) {
96
- this.modifiedOptions = newVal[this.$props.dataField] ? newVal[this.$props.dataField].buckets : [];
104
+ if (newVal) {
105
+ this.modifiedOptions = newVal[this.$props.dataField] ? newVal[this.$props.dataField].buckets : [];
106
+ }
97
107
  },
98
108
  size: function size() {
99
109
  this.updateQueryHandlerOptions(this.$props);
@@ -136,8 +146,7 @@ var SingleList = {
136
146
  var _this$$props = this.$props,
137
147
  selectAllLabel = _this$$props.selectAllLabel,
138
148
  renderItem = _this$$props.renderItem,
139
- renderError = _this$$props.renderError,
140
- enableStrictSelection = _this$$props.enableStrictSelection;
149
+ renderError = _this$$props.renderError;
141
150
  var renderItemCalc = this.$scopedSlots.renderItem || renderItem;
142
151
  var renderErrorCalc = this.$scopedSlots.renderError || renderError;
143
152
 
@@ -145,8 +154,12 @@ var SingleList = {
145
154
  return index.isFunction(renderErrorCalc) ? renderErrorCalc(this.error) : renderErrorCalc;
146
155
  }
147
156
 
148
- if (!this.hasCustomRenderer && this.modifiedOptions.length === 0) {
149
- return null;
157
+ if (!this.hasCustomRenderer && this.modifiedOptions.length === 0 && !this.isLoading) {
158
+ if (this.renderNoResult) {
159
+ this.renderNoResult();
160
+ } else {
161
+ return null;
162
+ }
150
163
  }
151
164
 
152
165
  var itemsToRender = this.$data.modifiedOptions;
@@ -158,7 +171,7 @@ var SingleList = {
158
171
  var filteredItemsToRender = itemsToRender.filter(function (item) {
159
172
  if (String(item.key).length) {
160
173
  if (_this.$props.showSearch && _this.$data.searchTerm) {
161
- return String(item.key).toLowerCase().includes(_this.$data.searchTerm.toLowerCase());
174
+ return suggestions.replaceDiacritics(String(item.key)).toLowerCase().includes(suggestions.replaceDiacritics(_this.$data.searchTerm.toLowerCase()));
162
175
  }
163
176
 
164
177
  return true;
@@ -210,9 +223,7 @@ var SingleList = {
210
223
  "show": _this.$props.showRadio
211
224
  },
212
225
  "on": {
213
- "click": _this.$data.currentValue === String(item.key) && enableStrictSelection ? function () {
214
- return false;
215
- } : _this.handleClick
226
+ "click": _this.handleClick
216
227
  },
217
228
  "domProps": _rollupPluginBabelHelpers._extends({}, {
218
229
  checked: _this.currentValue === String(item.key)
@@ -273,7 +284,7 @@ var SingleList = {
273
284
  index.updateDefaultQuery(props.componentId, this.setDefaultQuery, props, value);
274
285
  }
275
286
 
276
- this.setQueryOptions(this.internalComponent, defaultQueryOptions);
287
+ this.setQueryOptions(this.internalComponent, defaultQueryOptions, false);
277
288
  this.updateQuery({
278
289
  componentId: this.internalComponent,
279
290
  query: query,
@@ -294,7 +305,7 @@ var SingleList = {
294
305
  index.updateCustomQuery(props.componentId, this.setCustomQuery, props, value);
295
306
  }
296
307
 
297
- this.setQueryOptions(props.componentId, customQueryOptions);
308
+ this.setQueryOptions(props.componentId, customQueryOptions, false);
298
309
  this.updateQuery({
299
310
  componentId: props.componentId,
300
311
  query: query,
@@ -315,7 +326,7 @@ var SingleList = {
315
326
  if (props.defaultQuery) {
316
327
  var value = this.$data.currentValue;
317
328
  var defaultQueryOptions = getOptionsFromQuery(props.defaultQuery(value, props));
318
- this.setQueryOptions(this.internalComponent, _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, queryOptions), defaultQueryOptions));
329
+ this.setQueryOptions(this.internalComponent, _rollupPluginBabelHelpers._extends({}, queryOptions, defaultQueryOptions));
319
330
  } else {
320
331
  this.setQueryOptions(this.internalComponent, queryOptions);
321
332
  }
@@ -374,6 +385,10 @@ var SingleList = {
374
385
  currentValue = e.target.value;
375
386
  }
376
387
 
388
+ if (this.enableStrictSelection && currentValue === this.currentValue) {
389
+ return false;
390
+ }
391
+
377
392
  var value = this.$props.value;
378
393
 
379
394
  if (value === undefined) {
@@ -381,6 +396,8 @@ var SingleList = {
381
396
  } else {
382
397
  this.$emit('change', currentValue);
383
398
  }
399
+
400
+ return true;
384
401
  },
385
402
  renderNoResult: function renderNoResult() {
386
403
  var h = this.$createElement;
@@ -461,7 +478,8 @@ var mapStateToProps = function mapStateToProps(state, props) {
461
478
  selectedValue: state.selectedValues[props.componentId] && state.selectedValues[props.componentId].value || '',
462
479
  themePreset: state.config.themePreset,
463
480
  error: state.error[props.componentId],
464
- componentProps: state.props[props.componentId]
481
+ componentProps: state.props[props.componentId],
482
+ enableAppbase: state.config.enableAppbase
465
483
  };
466
484
  };
467
485
 
@@ -6,20 +6,20 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
6
6
 
7
7
  var configureStore = require('@appbaseio/reactivecore');
8
8
  var configureStore__default = _interopDefault(configureStore);
9
- require('./_rollupPluginBabelHelpers-280a574c.js');
9
+ require('./_rollupPluginBabelHelpers-4abdbfff.js');
10
10
  var VueTypes = _interopDefault(require('vue-types'));
11
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-c21f265b.js');
15
+ var vueTypes = require('./vueTypes-6de9d2a9.js');
16
16
  require('@appbaseio/reactivecore/lib/utils/transform');
17
17
  require('redux');
18
- var index = require('./index-e0583d76.js');
19
- var ComponentWrapper = require('./ComponentWrapper-5a0a8849.js');
20
- var Title = require('./Title-e9beb554.js');
21
- var Container = require('./Container-f84e72fc.js');
22
- var FormControlList = require('./FormControlList-08dfb28e.js');
18
+ var index = require('./index-d44a0a21.js');
19
+ var ComponentWrapper = require('./ComponentWrapper-7302fe1a.js');
20
+ var Title = require('./Title-39765ee6.js');
21
+ var Container = require('./Container-8a08d663.js');
22
+ var FormControlList = require('./FormControlList-73497794.js');
23
23
 
24
24
  var updateQuery = configureStore.Actions.updateQuery,
25
25
  setQueryOptions = configureStore.Actions.setQueryOptions,
@@ -53,10 +53,15 @@ var SingleRange = {
53
53
  showRadio: VueTypes.bool.def(true),
54
54
  title: vueTypes.types.title,
55
55
  URLParams: VueTypes.bool.def(false),
56
- nestedField: vueTypes.types.string
56
+ nestedField: vueTypes.types.string,
57
+ index: VueTypes.string
57
58
  },
58
59
  created: function created() {
59
- // Set custom query in store
60
+ if (!this.enableAppbase && this.$props.index) {
61
+ console.warn('Warning(ReactiveSearch): In order to use the `index` prop, the `enableAppbase` prop must be set to true in `ReactiveBase`.');
62
+ } // Set custom query in store
63
+
64
+
60
65
  index.updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, this.currentValue);
61
66
  },
62
67
  beforeMount: function beforeMount() {
@@ -162,7 +167,7 @@ var SingleRange = {
162
167
  index.updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, this.currentValue);
163
168
  }
164
169
 
165
- this.setQueryOptions(props.componentId, customQueryOptions);
170
+ this.setQueryOptions(props.componentId, customQueryOptions, false);
166
171
  this.updateQuery({
167
172
  componentId: props.componentId,
168
173
  query: query,
@@ -223,7 +228,8 @@ SingleRange.defaultQuery = function (value, props) {
223
228
  var mapStateToProps = function mapStateToProps(state, props) {
224
229
  return {
225
230
  selectedValue: state.selectedValues[props.componentId] && state.selectedValues[props.componentId].value || null,
226
- componentProps: state.props[props.componentId]
231
+ componentProps: state.props[props.componentId],
232
+ enableAppbase: state.config.enableAppbase
227
233
  };
228
234
  };
229
235