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

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 +7438 -6512
  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-ab813390.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-0359da33.js} +76 -96
  12. package/dist/cjs/DynamicRangeSlider.js +47 -24
  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 +69 -45
  18. package/dist/cjs/MultiList.js +36 -21
  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 +25 -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 +320 -234
  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 +69 -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-2a8358cd.js} +77 -9
  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-459505fd.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-168b60f6.js} +75 -95
  52. package/dist/es/DynamicRangeSlider.js +47 -24
  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 +69 -45
  58. package/dist/es/MultiList.js +36 -21
  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 +25 -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 +320 -234
  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 +69 -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-4755c9a0.js} +74 -10
  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-2a8358cd.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,26 @@ 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-2a8358cd.js');
20
+ var ComponentWrapper = require('./ComponentWrapper-ab813390.js');
21
+ var Title = require('./Title-39765ee6.js');
22
+ require('./CancelSvg-82021d23.js');
23
+ require('./Input-c6f181d5.js');
23
24
  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');
25
+ var Container = require('./Container-8a08d663.js');
26
+ require('@appbaseio/reactivecore/lib/utils/suggestions');
27
+ var utils = require('./utils-23afb20b.js');
28
+ var DropDown = require('./DropDown-0359da33.js');
28
29
 
29
30
  var updateQuery = configureStore.Actions.updateQuery,
30
31
  setQueryOptions = configureStore.Actions.setQueryOptions,
@@ -80,12 +81,21 @@ var SingleDropdownList = {
80
81
  showMissing: VueTypes.bool.def(false),
81
82
  missingLabel: VueTypes.string.def('N/A'),
82
83
  showSearch: VueTypes.bool.def(false),
84
+ showClear: VueTypes.bool.def(false),
83
85
  showLoadMore: VueTypes.bool.def(false),
84
86
  loadMoreLabel: VueTypes.oneOfType([VueTypes.string, VueTypes.any]).def('Load More'),
85
- nestedField: vueTypes.types.string
87
+ nestedField: vueTypes.types.string,
88
+ index: VueTypes.string,
89
+ searchPlaceholder: VueTypes.string.def('Type here to search...')
86
90
  },
87
91
  created: function created() {
88
- // Set custom and default queries in store
92
+ if (!this.enableAppbase && this.$props.index) {
93
+ console.warn('Warning(ReactiveSearch): In order to use the `index` prop, the `enableAppbase` prop must be set to true in `ReactiveBase`.');
94
+ }
95
+
96
+ var props = this.$props;
97
+ this.modifiedOptions = this.options && this.options[props.dataField] ? this.options[props.dataField].buckets : []; // Set custom and default queries in store
98
+
89
99
  index.updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, this.currentValue);
90
100
  index.updateDefaultQuery(this.componentId, this.setDefaultQuery, this.$props, this.currentValue);
91
101
  },
@@ -104,33 +114,35 @@ var SingleDropdownList = {
104
114
  options: function options(newVal, oldVal) {
105
115
  var _this = this;
106
116
 
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
117
+ if (newVal) {
118
+ checkPropChange(oldVal, newVal, function () {
119
+ var _this$$props = _this.$props,
120
+ showLoadMore = _this$$props.showLoadMore,
121
+ dataField = _this$$props.dataField;
122
+ var modifiedOptions = _this.$data.modifiedOptions;
123
+
124
+ if (showLoadMore) {
125
+ // append options with showLoadMore
126
+ var buckets = newVal[dataField].buckets;
127
+ var nextOptions = [].concat(modifiedOptions, buckets.map(function (bucket) {
128
+ return {
129
+ key: bucket.key[dataField],
130
+ doc_count: bucket.doc_count
131
+ };
132
+ }));
133
+ var after = newVal[dataField].after_key; // detect the last bucket by checking if the next set of buckets were empty
134
+
135
+ var isLastBucket = !buckets.length;
136
+ _this.after = {
137
+ after: after
120
138
  };
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
- });
139
+ _this.isLastBucket = isLastBucket;
140
+ _this.modifiedOptions = nextOptions;
141
+ } else {
142
+ _this.modifiedOptions = newVal[_this.$props.dataField] ? newVal[_this.$props.dataField].buckets : [];
143
+ }
144
+ });
145
+ }
134
146
  },
135
147
  size: function size() {
136
148
  this.updateQueryOptions(this.$props);
@@ -179,12 +191,21 @@ var SingleDropdownList = {
179
191
  var renderItemCalc = this.$scopedSlots.renderItem || renderItem;
180
192
  var renderErrorCalc = this.$scopedSlots.renderError || renderError;
181
193
  var renderLabelCalc = this.$scopedSlots.renderLabel || renderLabel;
194
+ var renderNoResults = this.$scopedSlots.renderNoResults || this.$props.renderNoResults;
182
195
 
183
196
  if (renderErrorCalc && this.error) {
184
197
  return index.isFunction(renderErrorCalc) ? renderErrorCalc(this.error) : renderErrorCalc;
185
198
  }
186
199
 
187
- if (!this.hasCustomRenderer && this.$data.modifiedOptions.length === 0) {
200
+ if (!this.hasCustomRenderer && this.$data.modifiedOptions.length === 0 && !this.isLoading) {
201
+ if (renderNoResults && index.isFunction(renderNoResults)) {
202
+ return h("div", [renderNoResults()]);
203
+ }
204
+
205
+ if (renderNoResults && !index.isFunction(renderNoResults)) {
206
+ return renderNoResults;
207
+ }
208
+
188
209
  return null;
189
210
  }
190
211
 
@@ -204,7 +225,7 @@ var SingleDropdownList = {
204
225
  "items": [].concat(selectAll, this.$data.modifiedOptions.filter(function (item) {
205
226
  return String(item.key).trim().length;
206
227
  }).map(function (item) {
207
- return _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, item), {}, {
228
+ return _rollupPluginBabelHelpers._extends({}, item, {
208
229
  key: String(item.key)
209
230
  });
210
231
  })),
@@ -219,6 +240,8 @@ var SingleDropdownList = {
219
240
  "renderNoResults": this.$scopedSlots.renderNoResults || this.$props.renderNoResults,
220
241
  "themePreset": this.themePreset,
221
242
  "showSearch": this.$props.showSearch,
243
+ "showClear": this.$props.showClear,
244
+ "searchPlaceholder": this.$props.searchPlaceholder,
222
245
  "transformData": this.$props.transformData,
223
246
  "footer": showLoadMore && !isLastBucket && h("div", {
224
247
  "attrs": {
@@ -278,7 +301,7 @@ var SingleDropdownList = {
278
301
  index.updateDefaultQuery(props.componentId, this.setDefaultQuery, props, value);
279
302
  }
280
303
 
281
- this.setQueryOptions(this.internalComponent, defaultQueryOptions);
304
+ this.setQueryOptions(this.internalComponent, defaultQueryOptions, false);
282
305
  this.updateQuery({
283
306
  componentId: this.internalComponent,
284
307
  query: query,
@@ -299,7 +322,7 @@ var SingleDropdownList = {
299
322
  index.updateCustomQuery(props.componentId, this.setCustomQuery, props, value);
300
323
  }
301
324
 
302
- this.setQueryOptions(props.componentId, customQueryOptions);
325
+ this.setQueryOptions(props.componentId, customQueryOptions, false);
303
326
  this.updateQuery({
304
327
  componentId: props.componentId,
305
328
  query: query,
@@ -334,7 +357,7 @@ var SingleDropdownList = {
334
357
  if (props.defaultQuery) {
335
358
  var value = this.$data.currentValue;
336
359
  var defaultQueryOptions = getOptionsFromQuery(props.defaultQuery(value, props));
337
- this.setQueryOptions(this.internalComponent, _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, queryOptions), defaultQueryOptions));
360
+ this.setQueryOptions(this.internalComponent, _rollupPluginBabelHelpers._extends({}, queryOptions, defaultQueryOptions));
338
361
  } else {
339
362
  this.setQueryOptions(this.internalComponent, queryOptions);
340
363
  }
@@ -433,7 +456,8 @@ var mapStateToProps = function mapStateToProps(state, props) {
433
456
  selectedValue: state.selectedValues[props.componentId] && state.selectedValues[props.componentId].value || '',
434
457
  themePreset: state.config.themePreset,
435
458
  error: state.error[props.componentId],
436
- componentProps: state.props[props.componentId]
459
+ componentProps: state.props[props.componentId],
460
+ enableAppbase: state.config.enableAppbase
437
461
  };
438
462
  };
439
463
 
@@ -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-2a8358cd.js');
19
+ var ComponentWrapper = require('./ComponentWrapper-ab813390.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-2a8358cd.js');
19
+ var ComponentWrapper = require('./ComponentWrapper-ab813390.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