@appbaseio/reactivesearch-vue 1.16.0-alpha.6 → 1.16.0-alpha.62

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 (105) hide show
  1. package/dist/@appbaseio/reactivesearch-vue.umd.js +16030 -13113
  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-446f819e.js +68 -0
  6. package/dist/cjs/{DownShift-966a58cb.js → CancelSvg-9f258f4f.js} +60 -16
  7. package/dist/cjs/Card-642547a8.js +30 -0
  8. package/dist/cjs/{ComponentWrapper-603848ed.js → ComponentWrapper-ad3dad02.js} +40 -21
  9. package/dist/cjs/{Container-6cdd3864.js → Container-daf30918.js} +3 -11
  10. package/dist/cjs/DataSearch-86914b10.js +2322 -0
  11. package/dist/cjs/DataSearch.js +18 -2151
  12. package/dist/cjs/{DropDown-f6224ac8.js → DropDown-5513ea77.js} +80 -95
  13. package/dist/cjs/DynamicRangeSlider.js +107 -43
  14. package/dist/cjs/Flex-aa517a13.js +52 -0
  15. package/dist/cjs/FormControlList-c195a592.js +47 -0
  16. package/dist/cjs/Input-e6603a7e.js +79 -0
  17. package/dist/cjs/ListItem-8c9e0d68.js +46 -0
  18. package/dist/cjs/MultiDropdownList.js +102 -68
  19. package/dist/cjs/MultiList.js +80 -50
  20. package/dist/cjs/MultiRange.js +21 -16
  21. package/dist/cjs/{Pagination-af399262.js → Pagination-fe5452fc.js} +14 -8
  22. package/dist/cjs/RangeInput.js +29 -45
  23. package/dist/cjs/RangeSlider.js +32 -30
  24. package/dist/cjs/ReactiveBase.js +87 -56
  25. package/dist/cjs/ReactiveComponent.js +75 -62
  26. package/dist/cjs/ReactiveGoogleMap.js +262 -191
  27. package/dist/cjs/ReactiveList.js +189 -241
  28. package/dist/cjs/ResultCard.js +8 -6
  29. package/dist/cjs/ResultList.js +8 -6
  30. package/dist/cjs/SelectedFilters.js +66 -34
  31. package/dist/cjs/SingleDropdownList.js +88 -60
  32. package/dist/cjs/SingleList.js +53 -35
  33. package/dist/cjs/SingleRange.js +19 -14
  34. package/dist/cjs/StateProvider.js +39 -10
  35. package/dist/cjs/{Title-65d39104.js → Title-1de7d0f4.js} +3 -11
  36. package/dist/cjs/ToggleButton.js +36 -16
  37. package/dist/cjs/{_rollupPluginBabelHelpers-4abdbfff.js → _rollupPluginBabelHelpers-c705cbe6.js} +2 -4
  38. package/dist/cjs/{index-baca18c4.js → index-6a167fe0.js} +99 -13
  39. package/dist/cjs/index.js +31 -25
  40. package/dist/cjs/initReactivesearch.js +178 -104
  41. package/dist/cjs/install-004c6aa4.js +1408 -0
  42. package/dist/cjs/install.js +42 -44
  43. package/dist/cjs/ssr-3027b848.js +39 -0
  44. package/dist/cjs/{utils-ea846a20.js → utils-d6a52588.js} +2 -2
  45. package/dist/cjs/version.js +1 -1
  46. package/dist/cjs/{vueTypes-c21f265b.js → vueTypes-6de9d2a9.js} +9 -4
  47. package/dist/es/Button-d8bc15ea.js +59 -0
  48. package/dist/es/{DownShift-92347b5e.js → CancelSvg-4cfae5fd.js} +56 -17
  49. package/dist/es/Card-450683f1.js +23 -0
  50. package/dist/es/{ComponentWrapper-c4c91949.js → ComponentWrapper-424e86fd.js} +40 -21
  51. package/dist/es/Container-ba826e96.js +10 -0
  52. package/dist/es/DataSearch-e71a1014.js +2307 -0
  53. package/dist/es/DataSearch.js +17 -2150
  54. package/dist/es/{DropDown-3d4291f1.js → DropDown-7d9a15c1.js} +79 -94
  55. package/dist/es/DynamicRangeSlider.js +107 -43
  56. package/dist/es/Flex-1f0795c3.js +47 -0
  57. package/dist/es/FormControlList-c22d64f6.js +40 -0
  58. package/dist/es/Input-7a2a9fac.js +71 -0
  59. package/dist/es/ListItem-cad14c5e.js +39 -0
  60. package/dist/es/MultiDropdownList.js +102 -68
  61. package/dist/es/MultiList.js +80 -50
  62. package/dist/es/MultiRange.js +21 -16
  63. package/dist/es/{Pagination-c2a00175.js → Pagination-3f350098.js} +14 -8
  64. package/dist/es/RangeInput.js +29 -45
  65. package/dist/es/RangeSlider.js +32 -30
  66. package/dist/es/ReactiveBase.js +87 -56
  67. package/dist/es/ReactiveComponent.js +75 -62
  68. package/dist/es/ReactiveGoogleMap.js +262 -191
  69. package/dist/es/ReactiveList.js +189 -241
  70. package/dist/es/ResultCard.js +8 -6
  71. package/dist/es/ResultList.js +8 -6
  72. package/dist/es/SelectedFilters.js +66 -34
  73. package/dist/es/SingleDropdownList.js +88 -60
  74. package/dist/es/SingleList.js +53 -35
  75. package/dist/es/SingleRange.js +19 -14
  76. package/dist/es/StateProvider.js +39 -10
  77. package/dist/es/Title-3342664a.js +10 -0
  78. package/dist/es/ToggleButton.js +36 -16
  79. package/dist/es/{_rollupPluginBabelHelpers-ecf6c03c.js → _rollupPluginBabelHelpers-76660dab.js} +2 -4
  80. package/dist/es/{index-185b6266.js → index-7788a843.js} +95 -14
  81. package/dist/es/index.js +27 -22
  82. package/dist/es/initReactivesearch.js +179 -105
  83. package/dist/es/install-b7b604cc.js +1401 -0
  84. package/dist/es/install.js +40 -46
  85. package/dist/es/ssr-b2c0b401.js +33 -0
  86. package/dist/es/{utils-57cc8789.js → utils-9e68acee.js} +2 -2
  87. package/dist/es/version.js +1 -1
  88. package/dist/es/{vueTypes-98d938a9.js → vueTypes-9326e0be.js} +9 -4
  89. package/package.json +6 -4
  90. package/dist/cjs/Button-d48d4365.js +0 -146
  91. package/dist/cjs/Card-9748fbb2.js +0 -58
  92. package/dist/cjs/Flex-befd65fc.js +0 -160
  93. package/dist/cjs/FormControlList-f3857d4b.js +0 -105
  94. package/dist/cjs/Input-95cb19f8.js +0 -178
  95. package/dist/cjs/ListItem-84d185cf.js +0 -84
  96. package/dist/cjs/ssr-3ca8a14f.js +0 -47
  97. package/dist/es/Button-27cc8574.js +0 -137
  98. package/dist/es/Card-1f93780d.js +0 -51
  99. package/dist/es/Container-88c805ef.js +0 -18
  100. package/dist/es/Flex-16d1103a.js +0 -155
  101. package/dist/es/FormControlList-96d44e7b.js +0 -98
  102. package/dist/es/Input-1159c4b5.js +0 -170
  103. package/dist/es/ListItem-d22510c9.js +0 -77
  104. package/dist/es/Title-f0217338.js +0 -18
  105. package/dist/es/ssr-a710392b.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-4abdbfff.js');
7
+ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-c705cbe6.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-65d39104.js');
15
- var Card = require('./Card-9748fbb2.js');
14
+ var Title = require('./Title-1de7d0f4.js');
15
+ var Card = require('./Card-642547a8.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-4abdbfff.js');
7
+ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-c705cbe6.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-65d39104.js');
15
- var ListItem = require('./ListItem-84d185cf.js');
14
+ var Title = require('./Title-1de7d0f4.js');
15
+ var ListItem = require('./ListItem-8c9e0d68.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-4abdbfff.js');
9
+ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-c705cbe6.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-d48d4365.js');
16
- var vueTypes = require('./vueTypes-c21f265b.js');
15
+ var Button = require('./Button-446f819e.js');
16
+ var vueTypes = require('./vueTypes-6de9d2a9.js');
17
17
  require('redux');
18
- var index = require('./index-baca18c4.js');
19
- var Title = require('./Title-65d39104.js');
20
- var Container = require('./Container-6cdd3864.js');
18
+ var index = require('./index-6a167fe0.js');
19
+ var Title = require('./Title-1de7d0f4.js');
20
+ var Container = require('./Container-daf30918.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,10 @@ 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
+ clearAllBlacklistComponents: VueTypes.array,
37
+ resetToValues: VueTypes.object
34
38
  },
35
39
  inject: {
36
40
  theme: {
@@ -47,7 +51,9 @@ var SelectedFilters = {
47
51
  components: this.components,
48
52
  selectedValues: this.selectedValues,
49
53
  clearValues: this.clearValues,
50
- setValue: this.setValue
54
+ clearValue: this.clearValue,
55
+ setValue: this.setValue,
56
+ resetValuesToDefault: this.resetValuesToDefault
51
57
  });
52
58
  }
53
59
 
@@ -57,7 +63,7 @@ var SelectedFilters = {
57
63
  "class": Button.filters(this.theme) + " " + (this.$props.className || '')
58
64
  }, [this.$props.title && hasValues && h(Title.Title, {
59
65
  "class": getClassName(this.$props.innerClass, 'title') || ''
60
- }, [this.$props.title]), filtersToRender, this.$props.showClearAll && hasValues ? h(Button.Button, {
66
+ }, [this.$props.title]), filtersToRender, this.$props.showClearAll && hasValues && filtersToRender.length > 1 ? h(Button.Button, {
61
67
  "class": getClassName(this.$props.innerClass, 'button') || '',
62
68
  "on": _rollupPluginBabelHelpers._extends({}, {
63
69
  click: this.clearValues,
@@ -82,8 +88,31 @@ var SelectedFilters = {
82
88
  this.$emit('clear', component, value);
83
89
  },
84
90
  clearValues: function clearValues() {
85
- this.clearValuesAction();
86
- this.$emit('clear', null);
91
+ var resetToDefault = this.resetToDefault,
92
+ resetToValues = this.resetToValues,
93
+ clearAllBlacklistComponents = this.clearAllBlacklistComponents;
94
+
95
+ if (resetToDefault) {
96
+ this.resetValuesToDefault(clearAllBlacklistComponents);
97
+ } else {
98
+ this.clearValuesAction(resetToValues, clearAllBlacklistComponents);
99
+ }
100
+
101
+ this.$emit('clear', resetToValues);
102
+ },
103
+ clearValue: function clearValue(componentId) {
104
+ var resetToDefault = this.resetToDefault,
105
+ resetToValues = this.resetToValues;
106
+
107
+ if (resetToDefault) {
108
+ this.resetValuesToDefault(this.components.filter(function (component) {
109
+ return component !== componentId;
110
+ }));
111
+ } else {
112
+ this.setValue(componentId, (resetToValues == null ? void 0 : resetToValues[componentId]) || null);
113
+ }
114
+
115
+ this.$emit('clear', resetToValues == null ? void 0 : resetToValues[componentId]);
87
116
  },
88
117
  renderValue: function renderValue(value, isArray) {
89
118
  var _this2 = this;
@@ -108,39 +137,41 @@ var SelectedFilters = {
108
137
 
109
138
  return value;
110
139
  },
140
+ renderFilterButton: function renderFilterButton(component, keyProp, handleRemove, label) {
141
+ var h = this.$createElement;
142
+ return h(Button.Button, {
143
+ "class": getClassName(this.$props.innerClass, 'button') || '',
144
+ "key": keyProp,
145
+ "on": _rollupPluginBabelHelpers._extends({}, {
146
+ click: handleRemove,
147
+ keypress: function keypress(event) {
148
+ return handleA11yAction(event, handleRemove);
149
+ }
150
+ }),
151
+ "attrs": {
152
+ "tabIndex": "0"
153
+ }
154
+ }, [h("span", [label]), h("span", ["\u2715"])]);
155
+ },
111
156
  renderFilters: function renderFilters() {
112
157
  var _this3 = this;
113
158
 
114
- var h = this.$createElement;
115
159
  var selectedValues = this.selectedValues;
116
- return Object.keys(selectedValues).filter(function (id) {
160
+ var filterComponents = Object.keys(selectedValues).filter(function (id) {
117
161
  return _this3.components.includes(id) && selectedValues[id].showFilter;
118
- }).map(function (component, index) {
162
+ });
163
+ return filterComponents.map(function (component, index$1) {
119
164
  var _selectedValues$compo = selectedValues[component],
120
165
  label = _selectedValues$compo.label,
121
166
  value = _selectedValues$compo.value;
122
- var isArray = Array.isArray(value);
167
+ var isArray = Array.isArray(value); // default behaviour
123
168
 
124
169
  if (label && (isArray && value.length || !isArray && value)) {
125
170
  var valueToRender = _this3.renderValue(value, isArray);
126
171
 
127
- return h(Button.Button, {
128
- "class": getClassName(_this3.$props.innerClass, 'button') || '',
129
- "key": component + "-" + (index + 1),
130
- "on": _rollupPluginBabelHelpers._extends({}, {
131
- click: function click() {
132
- return _this3.remove(component, value);
133
- },
134
- keypress: function keypress(event) {
135
- return handleA11yAction(event, function () {
136
- return _this3.remove(component, value);
137
- });
138
- }
139
- }),
140
- "attrs": {
141
- "tabIndex": "0"
142
- }
143
- }, [h("span", [selectedValues[component].label, ": ", valueToRender]), h("span", ["\u2715"])]);
172
+ return _this3.renderFilterButton(component, component + "-" + (index$1 + 1), function () {
173
+ return _this3.remove(component, value);
174
+ }, selectedValues[component].label + ": " + index.decodeHtml(valueToRender));
144
175
  }
145
176
 
146
177
  return null;
@@ -163,7 +194,8 @@ var mapStateToProps = function mapStateToProps(state) {
163
194
 
164
195
  var mapDispatchtoProps = {
165
196
  clearValuesAction: clearValues,
166
- setValue: setValue
197
+ setValue: setValue,
198
+ resetValuesToDefault: resetValuesToDefault
167
199
  };
168
200
  var RcConnected = index.connect(mapStateToProps, mapDispatchtoProps)(SelectedFilters);
169
201
 
@@ -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-4abdbfff.js');
9
+ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-c705cbe6.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-d48d4365.js');
16
- var vueTypes = require('./vueTypes-c21f265b.js');
15
+ var Button = require('./Button-446f819e.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-baca18c4.js');
20
- var ComponentWrapper = require('./ComponentWrapper-603848ed.js');
21
- var Title = require('./Title-65d39104.js');
22
- require('./Input-95cb19f8.js');
19
+ var index = require('./index-6a167fe0.js');
20
+ var ComponentWrapper = require('./ComponentWrapper-ad3dad02.js');
21
+ require('@vue/babel-helper-vue-jsx-merge-props');
22
+ var Title = require('./Title-1de7d0f4.js');
23
+ require('./CancelSvg-9f258f4f.js');
24
+ require('./Input-e6603a7e.js');
23
25
  require('compute-scroll-into-view');
24
- require('./DownShift-966a58cb.js');
25
- var Container = require('./Container-6cdd3864.js');
26
- var utils = require('./utils-ea846a20.js');
27
- var DropDown = require('./DropDown-f6224ac8.js');
26
+ var Container = require('./Container-daf30918.js');
27
+ require('@appbaseio/reactivecore/lib/utils/suggestions');
28
+ var utils = require('./utils-d6a52588.js');
29
+ var DropDown = require('./DropDown-5513ea77.js');
28
30
 
29
31
  var updateQuery = configureStore.Actions.updateQuery,
30
32
  setQueryOptions = configureStore.Actions.setQueryOptions,
@@ -34,9 +36,10 @@ var getQueryOptions = configureStore.helper.getQueryOptions,
34
36
  checkValueChange = configureStore.helper.checkValueChange,
35
37
  checkPropChange = configureStore.helper.checkPropChange,
36
38
  getClassName = configureStore.helper.getClassName,
37
- getOptionsFromQuery = configureStore.helper.getOptionsFromQuery,
38
39
  isEqual = configureStore.helper.isEqual,
39
- getCompositeAggsQuery = configureStore.helper.getCompositeAggsQuery;
40
+ getCompositeAggsQuery = configureStore.helper.getCompositeAggsQuery,
41
+ extractQueryFromCustomQuery = configureStore.helper.extractQueryFromCustomQuery,
42
+ getOptionsForCustomQuery = configureStore.helper.getOptionsForCustomQuery;
40
43
  var SingleDropdownList = {
41
44
  name: 'SingleDropdownList',
42
45
  data: function data() {
@@ -73,19 +76,28 @@ var SingleDropdownList = {
73
76
  selectAllLabel: vueTypes.types.string,
74
77
  showCount: VueTypes.bool.def(true),
75
78
  showFilter: VueTypes.bool.def(true),
76
- size: VueTypes.number.def(100),
79
+ size: VueTypes.number,
77
80
  sortBy: VueTypes.oneOf(['asc', 'desc', 'count']).def('count'),
78
81
  title: vueTypes.types.title,
79
82
  URLParams: VueTypes.bool.def(false),
80
83
  showMissing: VueTypes.bool.def(false),
81
84
  missingLabel: VueTypes.string.def('N/A'),
82
85
  showSearch: VueTypes.bool.def(false),
86
+ showClear: VueTypes.bool.def(false),
83
87
  showLoadMore: VueTypes.bool.def(false),
84
88
  loadMoreLabel: VueTypes.oneOfType([VueTypes.string, VueTypes.any]).def('Load More'),
85
- nestedField: vueTypes.types.string
89
+ nestedField: vueTypes.types.string,
90
+ index: VueTypes.string,
91
+ searchPlaceholder: VueTypes.string.def('Type here to search...')
86
92
  },
87
93
  created: function created() {
88
- // Set custom and default queries in store
94
+ if (!this.enableAppbase && this.$props.index) {
95
+ console.warn('Warning(ReactiveSearch): In order to use the `index` prop, the `enableAppbase` prop must be set to true in `ReactiveBase`.');
96
+ }
97
+
98
+ var props = this.$props;
99
+ this.modifiedOptions = this.options && this.options[props.dataField] ? this.options[props.dataField].buckets : []; // Set custom and default queries in store
100
+
89
101
  index.updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, this.currentValue);
90
102
  index.updateDefaultQuery(this.componentId, this.setDefaultQuery, this.$props, this.currentValue);
91
103
  },
@@ -104,33 +116,35 @@ var SingleDropdownList = {
104
116
  options: function options(newVal, oldVal) {
105
117
  var _this = this;
106
118
 
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
119
+ if (newVal) {
120
+ checkPropChange(oldVal, newVal, function () {
121
+ var _this$$props = _this.$props,
122
+ showLoadMore = _this$$props.showLoadMore,
123
+ dataField = _this$$props.dataField;
124
+ var modifiedOptions = _this.$data.modifiedOptions;
125
+
126
+ if (showLoadMore) {
127
+ // append options with showLoadMore
128
+ var buckets = newVal[dataField].buckets;
129
+ var nextOptions = [].concat(modifiedOptions, buckets.map(function (bucket) {
130
+ return {
131
+ key: bucket.key[dataField],
132
+ doc_count: bucket.doc_count
133
+ };
134
+ }));
135
+ var after = newVal[dataField].after_key; // detect the last bucket by checking if the next set of buckets were empty
136
+
137
+ var isLastBucket = !buckets.length;
138
+ _this.after = {
139
+ after: after
120
140
  };
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
- });
141
+ _this.isLastBucket = isLastBucket;
142
+ _this.modifiedOptions = nextOptions;
143
+ } else {
144
+ _this.modifiedOptions = newVal[_this.$props.dataField] ? newVal[_this.$props.dataField].buckets : [];
145
+ }
146
+ });
147
+ }
134
148
  },
135
149
  size: function size() {
136
150
  this.updateQueryOptions(this.$props);
@@ -179,12 +193,21 @@ var SingleDropdownList = {
179
193
  var renderItemCalc = this.$scopedSlots.renderItem || renderItem;
180
194
  var renderErrorCalc = this.$scopedSlots.renderError || renderError;
181
195
  var renderLabelCalc = this.$scopedSlots.renderLabel || renderLabel;
196
+ var renderNoResults = this.$scopedSlots.renderNoResults || this.$props.renderNoResults;
182
197
 
183
198
  if (renderErrorCalc && this.error) {
184
199
  return index.isFunction(renderErrorCalc) ? renderErrorCalc(this.error) : renderErrorCalc;
185
200
  }
186
201
 
187
- if (!this.hasCustomRenderer && this.$data.modifiedOptions.length === 0) {
202
+ if (!this.hasCustomRenderer && this.$data.modifiedOptions.length === 0 && !this.isLoading) {
203
+ if (renderNoResults && index.isFunction(renderNoResults)) {
204
+ return h("div", [renderNoResults()]);
205
+ }
206
+
207
+ if (renderNoResults && !index.isFunction(renderNoResults)) {
208
+ return renderNoResults;
209
+ }
210
+
188
211
  return null;
189
212
  }
190
213
 
@@ -204,7 +227,7 @@ var SingleDropdownList = {
204
227
  "items": [].concat(selectAll, this.$data.modifiedOptions.filter(function (item) {
205
228
  return String(item.key).trim().length;
206
229
  }).map(function (item) {
207
- return _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, item), {}, {
230
+ return _rollupPluginBabelHelpers._extends({}, item, {
208
231
  key: String(item.key)
209
232
  });
210
233
  })),
@@ -219,6 +242,8 @@ var SingleDropdownList = {
219
242
  "renderNoResults": this.$scopedSlots.renderNoResults || this.$props.renderNoResults,
220
243
  "themePreset": this.themePreset,
221
244
  "showSearch": this.$props.showSearch,
245
+ "showClear": this.$props.showClear,
246
+ "searchPlaceholder": this.$props.searchPlaceholder,
222
247
  "transformData": this.$props.transformData,
223
248
  "footer": showLoadMore && !isLastBucket && h("div", {
224
249
  "attrs": {
@@ -263,22 +288,22 @@ var SingleDropdownList = {
263
288
  }
264
289
  },
265
290
  updateDefaultQueryHandler: function updateDefaultQueryHandler(value, props) {
266
- var defaultQueryOptions;
267
291
  var query = SingleDropdownList.defaultQuery(value, props);
268
292
 
269
293
  if (this.defaultQuery) {
270
294
  var defaultQueryToBeSet = this.defaultQuery(value, props) || {};
295
+ var defaultQueryObj = extractQueryFromCustomQuery(defaultQueryToBeSet);
271
296
 
272
- if (defaultQueryToBeSet.query) {
273
- query = defaultQueryToBeSet.query;
274
- }
297
+ if (defaultQueryObj) {
298
+ query = defaultQueryObj;
299
+ } // Update calculated default query in store
275
300
 
276
- defaultQueryOptions = getOptionsFromQuery(defaultQueryToBeSet); // Update calculated default query in store
277
301
 
278
302
  index.updateDefaultQuery(props.componentId, this.setDefaultQuery, props, value);
303
+ var defaultQueryOptions = getOptionsForCustomQuery(defaultQueryToBeSet);
304
+ this.setQueryOptions(this.internalComponent, defaultQueryOptions, false);
279
305
  }
280
306
 
281
- this.setQueryOptions(this.internalComponent, defaultQueryOptions);
282
307
  this.updateQuery({
283
308
  componentId: this.internalComponent,
284
309
  query: query,
@@ -289,17 +314,15 @@ var SingleDropdownList = {
289
314
  updateQueryHandler: function updateQueryHandler(value, props) {
290
315
  var customQuery = props.customQuery;
291
316
  var query = SingleDropdownList.defaultQuery(value, props);
292
- var customQueryOptions;
293
317
 
294
318
  if (customQuery) {
295
- var _ref = customQuery(value, props) || {};
296
-
297
- query = _ref.query;
298
- customQueryOptions = getOptionsFromQuery(customQuery(value, props));
319
+ var customQueryCalc = customQuery(value, props);
320
+ query = extractQueryFromCustomQuery(customQueryCalc);
299
321
  index.updateCustomQuery(props.componentId, this.setCustomQuery, props, value);
322
+ var customQueryOptions = getOptionsForCustomQuery(customQueryCalc);
323
+ this.setQueryOptions(props.componentId, customQueryOptions, false);
300
324
  }
301
325
 
302
- this.setQueryOptions(props.componentId, customQueryOptions);
303
326
  this.updateQuery({
304
327
  componentId: props.componentId,
305
328
  query: query,
@@ -333,8 +356,8 @@ var SingleDropdownList = {
333
356
 
334
357
  if (props.defaultQuery) {
335
358
  var value = this.$data.currentValue;
336
- var defaultQueryOptions = getOptionsFromQuery(props.defaultQuery(value, props));
337
- this.setQueryOptions(this.internalComponent, _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, queryOptions), defaultQueryOptions));
359
+ var defaultQueryOptions = getOptionsForCustomQuery(props.defaultQuery(value, props));
360
+ this.setQueryOptions(this.internalComponent, _rollupPluginBabelHelpers._extends({}, queryOptions, defaultQueryOptions));
338
361
  } else {
339
362
  this.setQueryOptions(this.internalComponent, queryOptions);
340
363
  }
@@ -425,6 +448,10 @@ SingleDropdownList.generateQueryOptions = function (props, after) {
425
448
  }) : utils.getAggsQuery(queryOptions, props);
426
449
  };
427
450
 
451
+ SingleDropdownList.hasInternalComponent = function () {
452
+ return true;
453
+ };
454
+
428
455
  var mapStateToProps = function mapStateToProps(state, props) {
429
456
  return {
430
457
  options: props.nestedField && state.aggregations[props.componentId] ? state.aggregations[props.componentId].reactivesearch_nested : state.aggregations[props.componentId],
@@ -433,7 +460,8 @@ var mapStateToProps = function mapStateToProps(state, props) {
433
460
  selectedValue: state.selectedValues[props.componentId] && state.selectedValues[props.componentId].value || '',
434
461
  themePreset: state.config.themePreset,
435
462
  error: state.error[props.componentId],
436
- componentProps: state.props[props.componentId]
463
+ componentProps: state.props[props.componentId],
464
+ enableAppbase: state.config.enableAppbase
437
465
  };
438
466
  };
439
467
 
@@ -445,7 +473,7 @@ var mapDispatchtoProps = {
445
473
  };
446
474
  var ListConnected = ComponentWrapper.ComponentWrapper(index.connect(mapStateToProps, mapDispatchtoProps)(SingleDropdownList), {
447
475
  componentType: constants.componentTypes.singleDropdownList,
448
- internalComponent: true
476
+ internalComponent: SingleDropdownList.hasInternalComponent()
449
477
  });
450
478
 
451
479
  SingleDropdownList.install = function (Vue) {