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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/@appbaseio/reactivesearch-vue.umd.js +2015 -567
  2. package/dist/@appbaseio/reactivesearch-vue.umd.js.map +1 -1
  3. package/dist/@appbaseio/reactivesearch-vue.umd.min.js +5 -5
  4. package/dist/@appbaseio/reactivesearch-vue.umd.min.js.map +1 -1
  5. package/dist/cjs/{DownShift-62e82255.js → CancelSvg-4aa35935.js} +58 -14
  6. package/dist/cjs/{ComponentWrapper-32481890.js → ComponentWrapper-10bad289.js} +1 -1
  7. package/dist/cjs/DataSearch-37dfdf39.js +2154 -0
  8. package/dist/cjs/DataSearch.js +18 -2152
  9. package/dist/cjs/{DropDown-6815b9b6.js → DropDown-0076babc.js} +66 -24
  10. package/dist/cjs/DynamicRangeSlider.js +48 -12
  11. package/dist/cjs/{Input-3cc3fa59.js → Input-a9ee53ed.js} +1 -1
  12. package/dist/cjs/MultiDropdownList.js +19 -11
  13. package/dist/cjs/MultiList.js +22 -16
  14. package/dist/cjs/MultiRange.js +4 -4
  15. package/dist/cjs/RangeInput.js +10 -6
  16. package/dist/cjs/RangeSlider.js +19 -22
  17. package/dist/cjs/ReactiveBase.js +6 -4
  18. package/dist/cjs/ReactiveComponent.js +3 -3
  19. package/dist/cjs/ReactiveList.js +61 -44
  20. package/dist/cjs/ResultCard.js +1 -1
  21. package/dist/cjs/ResultList.js +1 -1
  22. package/dist/cjs/SelectedFilters.js +8 -6
  23. package/dist/cjs/SingleDropdownList.js +18 -10
  24. package/dist/cjs/SingleList.js +10 -9
  25. package/dist/cjs/SingleRange.js +4 -4
  26. package/dist/cjs/StateProvider.js +7 -3
  27. package/dist/cjs/ToggleButton.js +5 -5
  28. package/dist/cjs/{index-89c39a9e.js → index-4509aa45.js} +10 -4
  29. package/dist/cjs/index.js +17 -13
  30. package/dist/cjs/initReactivesearch.js +19 -0
  31. package/dist/cjs/install-b7a80fc1.js +1196 -0
  32. package/dist/cjs/install.js +29 -33
  33. package/dist/cjs/ssr-0ee35a09.js +39 -0
  34. package/dist/cjs/version.js +1 -1
  35. package/dist/cjs/{vueTypes-4c19b4c8.js → vueTypes-57d01f18.js} +3 -3
  36. package/dist/es/{DownShift-3558d402.js → CancelSvg-c2c03a35.js} +55 -16
  37. package/dist/es/{ComponentWrapper-4f85a67e.js → ComponentWrapper-0f3431d1.js} +1 -1
  38. package/dist/es/DataSearch-77325036.js +2141 -0
  39. package/dist/es/DataSearch.js +17 -2151
  40. package/dist/es/{DropDown-035c804f.js → DropDown-0dd8f2a3.js} +65 -23
  41. package/dist/es/DynamicRangeSlider.js +48 -12
  42. package/dist/es/{Input-08bb1bcf.js → Input-10b1d62d.js} +1 -1
  43. package/dist/es/MultiDropdownList.js +19 -11
  44. package/dist/es/MultiList.js +22 -16
  45. package/dist/es/MultiRange.js +4 -4
  46. package/dist/es/RangeInput.js +10 -6
  47. package/dist/es/RangeSlider.js +19 -22
  48. package/dist/es/ReactiveBase.js +6 -4
  49. package/dist/es/ReactiveComponent.js +3 -3
  50. package/dist/es/ReactiveList.js +61 -44
  51. package/dist/es/ResultCard.js +1 -1
  52. package/dist/es/ResultList.js +1 -1
  53. package/dist/es/SelectedFilters.js +8 -6
  54. package/dist/es/SingleDropdownList.js +18 -10
  55. package/dist/es/SingleList.js +10 -9
  56. package/dist/es/SingleRange.js +4 -4
  57. package/dist/es/StateProvider.js +7 -3
  58. package/dist/es/ToggleButton.js +5 -5
  59. package/dist/es/{index-cb1950b6.js → index-78920565.js} +10 -4
  60. package/dist/es/index.js +13 -10
  61. package/dist/es/initReactivesearch.js +19 -0
  62. package/dist/es/install-86388b0e.js +1189 -0
  63. package/dist/es/install.js +27 -35
  64. package/dist/es/ssr-a41dfea9.js +33 -0
  65. package/dist/es/version.js +1 -1
  66. package/dist/es/{vueTypes-fb61bb7b.js → vueTypes-687b2304.js} +3 -3
  67. package/package.json +4 -4
  68. package/dist/cjs/ssr-08e95ede.js +0 -39
  69. package/dist/es/ssr-5d255b08.js +0 -33
@@ -12,9 +12,9 @@ require('@appbaseio/reactivecore/lib/utils/constants');
12
12
  var helper = require('@appbaseio/reactivecore/lib/utils/helper');
13
13
  var styled = require('@appbaseio/vue-emotion');
14
14
  var styled__default = _interopDefault(styled);
15
- var vueTypes = require('./vueTypes-4c19b4c8.js');
15
+ var vueTypes = require('./vueTypes-57d01f18.js');
16
16
  require('redux');
17
- var index = require('./index-89c39a9e.js');
17
+ var index = require('./index-4509aa45.js');
18
18
  var _mergeJSXProps = _interopDefault(require('@vue/babel-helper-vue-jsx-merge-props'));
19
19
  var analytics = require('@appbaseio/reactivecore/lib/actions/analytics');
20
20
  var Appbase = _interopDefault(require('appbase-js'));
@@ -85,7 +85,7 @@ var URLParamsProvider = {
85
85
  headers: vueTypes.types.headers,
86
86
  getSearchParams: vueTypes.types.func,
87
87
  setSearchParams: vueTypes.types.func,
88
- as: vueTypes.types.string.def('div')
88
+ as: VueTypes.string.def('div')
89
89
  },
90
90
  mounted: function mounted() {
91
91
  var _this = this;
@@ -233,7 +233,9 @@ var URLParamsProvider = {
233
233
  return value.map(function (item) {
234
234
  return _this3.getValue(item);
235
235
  });
236
- } else if (value && typeof value === 'object') {
236
+ }
237
+
238
+ if (value && typeof value === 'object') {
237
239
  // TODO: support for NestedList
238
240
  if (value.location) return value;
239
241
  if (value.category) return value;
@@ -9,11 +9,11 @@ var configureStore__default = _interopDefault(configureStore);
9
9
  var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-f127c8b7.js');
10
10
  var VueTypes = _interopDefault(require('vue-types'));
11
11
  var constants = require('@appbaseio/reactivecore/lib/utils/constants');
12
- var vueTypes = require('./vueTypes-4c19b4c8.js');
12
+ var vueTypes = require('./vueTypes-57d01f18.js');
13
13
  require('@appbaseio/reactivecore/lib/utils/transform');
14
14
  require('redux');
15
- var index = require('./index-89c39a9e.js');
16
- var ComponentWrapper = require('./ComponentWrapper-32481890.js');
15
+ var index = require('./index-4509aa45.js');
16
+ var ComponentWrapper = require('./ComponentWrapper-10bad289.js');
17
17
 
18
18
  var _excluded = ["options"],
19
19
  _excluded2 = ["query"],
@@ -15,11 +15,11 @@ var styled = require('@appbaseio/vue-emotion');
15
15
  var styled__default = _interopDefault(styled);
16
16
  require('polished');
17
17
  var Button = require('./Button-11307285.js');
18
- var vueTypes = require('./vueTypes-4c19b4c8.js');
18
+ var vueTypes = require('./vueTypes-57d01f18.js');
19
19
  require('@appbaseio/reactivecore/lib/utils/transform');
20
20
  require('redux');
21
- var index = require('./index-89c39a9e.js');
22
- var ComponentWrapper = require('./ComponentWrapper-32481890.js');
21
+ var index = require('./index-4509aa45.js');
22
+ var ComponentWrapper = require('./ComponentWrapper-10bad289.js');
23
23
  var _mergeJSXProps = _interopDefault(require('@vue/babel-helper-vue-jsx-merge-props'));
24
24
  require('./Title-584a8cc8.js');
25
25
  var ListItem = require('./ListItem-b40adb04.js');
@@ -494,9 +494,20 @@ var ReactiveList = {
494
494
  }
495
495
 
496
496
  this.internalComponent = this.$props.componentId + "__internal";
497
- this.sortOptionIndex = this.defaultSortOption ? this.sortOptions.findIndex(function (s) {
498
- return s.label === _this.defaultSortOption;
499
- }) : 0;
497
+ this.sortOptionIndex = 0;
498
+
499
+ if (this.defaultSortOption && this.sortOptions && Array.isArray(this.sortOptions)) {
500
+ this.sortOptionIndex = this.sortOptions.findIndex(function (s) {
501
+ return s.label === _this.defaultSortOption;
502
+ });
503
+ }
504
+
505
+ if (this.urlSortOption) {
506
+ this.sortOptionIndex = this.$props.sortOptions.findIndex(function (s) {
507
+ return s.label === _this.urlSortOption;
508
+ }) || 0;
509
+ }
510
+
500
511
  this.updateComponentProps(this.componentId, {
501
512
  from: this.from
502
513
  }, constants.componentTypes.reactiveList);
@@ -506,7 +517,7 @@ var ReactiveList = {
506
517
  },
507
518
  props: {
508
519
  currentPage: VueTypes.number.def(0),
509
- includeFields: vueTypes.types.includeFields.def(['*']),
520
+ includeFields: vueTypes.types.includeFields,
510
521
  // component props
511
522
  className: vueTypes.types.string,
512
523
  componentId: vueTypes.types.stringRequired,
@@ -515,7 +526,7 @@ var ReactiveList = {
515
526
  aggregationSize: VueTypes.number,
516
527
  defaultQuery: vueTypes.types.func,
517
528
  defaultSortOption: vueTypes.types.string,
518
- excludeFields: vueTypes.types.excludeFields.def([]),
529
+ excludeFields: vueTypes.types.excludeFields,
519
530
  innerClass: vueTypes.types.style,
520
531
  listClass: VueTypes.string.def(''),
521
532
  loader: vueTypes.types.title,
@@ -527,7 +538,7 @@ var ReactiveList = {
527
538
  pages: VueTypes.number.def(5),
528
539
  pagination: VueTypes.bool.def(false),
529
540
  infiniteScroll: VueTypes.bool.def(true),
530
- paginationAt: vueTypes.types.paginationAt.def('bottom'),
541
+ paginationAt: VueTypes.oneOf(['top', 'bottom', 'both']).def('bottom'),
531
542
  react: vueTypes.types.react,
532
543
  scrollOnChange: VueTypes.bool.def(true),
533
544
  showResultStats: VueTypes.bool.def(true),
@@ -728,11 +739,11 @@ var ReactiveList = {
728
739
  var options = getQueryOptions(this.$props);
729
740
  options.from = this.$data.from;
730
741
 
731
- if (this.$props.sortOptions) {
742
+ if (this.sortOptions && this.sortOptions[this.sortOptionIndex]) {
732
743
  var _ref2;
733
744
 
734
- var sortField = this.$props.sortOptions[this.sortOptionIndex].dataField;
735
- var sortBy = this.$props.sortOptions[this.sortOptionIndex].sortBy;
745
+ var sortField = this.sortOptions[this.sortOptionIndex].dataField;
746
+ var sortBy = this.sortOptions[this.sortOptionIndex].sortBy;
736
747
  options.sort = [(_ref2 = {}, _ref2[sortField] = {
737
748
  order: sortBy
738
749
  }, _ref2)]; // To handle sort options for RS API
@@ -802,10 +813,10 @@ var ReactiveList = {
802
813
  "class": this.$props.className
803
814
  }, [this.isLoading && this.shouldRenderPagination && this.showInfiniteScroll && (this.$scopedSlots.loader || this.$props.loader), this.renderErrorComponent(), h(Flex.Flex, {
804
815
  "attrs": {
805
- "labelPosition": this.$props.sortOptions ? 'right' : 'left'
816
+ "labelPosition": this.sortOptions ? 'right' : 'left'
806
817
  },
807
818
  "class": getClassName$1(this.$props.innerClass, 'resultsInfo')
808
- }, [this.$props.sortOptions ? this.renderSortOptions() : null, this.$props.showResultStats && results.length ? this.renderStats() : null]), !this.isLoading && results.length === 0 ? this.renderNoResult() : null, this.shouldRenderPagination && (this.$props.paginationAt === 'top' || this.$props.paginationAt === 'both') ? h(Pagination, {
819
+ }, [this.sortOptions ? this.renderSortOptions() : null, this.$props.showResultStats && results.length ? this.renderStats() : null]), !this.isLoading && hits && hits.length === 0 ? this.renderNoResult() : null, this.shouldRenderPagination && (this.$props.paginationAt === 'top' || this.$props.paginationAt === 'both') ? h(Pagination, {
809
820
  "attrs": {
810
821
  "pages": this.$props.pages,
811
822
  "totalPages": this.totalPages,
@@ -876,15 +887,18 @@ var ReactiveList = {
876
887
  var options = getQueryOptions(props);
877
888
  options.from = this.$data.from;
878
889
 
879
- if (props.sortOptions) {
880
- var _ref5;
881
-
890
+ if (props.sortOptions && Array.isArray(props.sortOptions)) {
882
891
  var sortOptionIndex = props.defaultSortOption ? props.sortOptions.findIndex(function (s) {
883
892
  return s.label === props.defaultSortOption;
884
893
  }) : 0;
885
- options.sort = [(_ref5 = {}, _ref5[props.sortOptions[sortOptionIndex].dataField] = {
886
- order: props.sortOptions[sortOptionIndex].sortBy
887
- }, _ref5)];
894
+
895
+ if (props.sortOptions[sortOptionIndex]) {
896
+ var _ref5;
897
+
898
+ options.sort = [(_ref5 = {}, _ref5[props.sortOptions[sortOptionIndex].dataField] = {
899
+ order: props.sortOptions[sortOptionIndex].sortBy
900
+ }, _ref5)];
901
+ }
888
902
  } else if (props.sortBy) {
889
903
  var _ref6;
890
904
 
@@ -990,26 +1004,32 @@ var ReactiveList = {
990
1004
  }, [index.isFunction(renderNoResults) ? renderNoResults() : renderNoResults]);
991
1005
  },
992
1006
  handleSortChange: function handleSortChange(e) {
993
- var _ref7;
1007
+ var index = e.target.value;
994
1008
 
995
- var index = e.target.value; // This fixes issue #371 (where sorting a multi-result page with infinite loader breaks)
1009
+ if (this.sortOptions && this.sortOptions[index]) {
1010
+ var _ref7;
996
1011
 
997
- var options = getQueryOptions(this.$props);
998
- options.from = 0;
999
- var sortField = this.$props.sortOptions[index].dataField;
1000
- var sortBy = this.$props.sortOptions[index].sortBy;
1001
- options.sort = [(_ref7 = {}, _ref7[sortField] = {
1002
- order: sortBy
1003
- }, _ref7)];
1004
- this.sortOptionIndex = index; // To handle sort options for RS API
1005
-
1006
- this.updateComponentProps(this.componentId, {
1007
- dataField: sortField,
1008
- sortBy: sortBy
1009
- }, constants.componentTypes.reactiveList);
1010
- this.setQueryOptions(this.$props.componentId, options, true);
1011
- this.currentPageState = 0;
1012
- this.from = 0;
1012
+ // This fixes issue #371 (where sorting a multi-result page with infinite loader breaks)
1013
+ var options = getQueryOptions(this.$props);
1014
+ options.from = 0;
1015
+ var sortField = this.sortOptions[index].dataField;
1016
+ var sortBy = this.sortOptions[index].sortBy;
1017
+ options.sort = [(_ref7 = {}, _ref7[sortField] = {
1018
+ order: sortBy
1019
+ }, _ref7)];
1020
+ this.sortOptionIndex = index; // To handle sort options for RS API
1021
+
1022
+ this.updateComponentProps(this.componentId, {
1023
+ dataField: sortField,
1024
+ sortBy: sortBy
1025
+ }, constants.componentTypes.reactiveList);
1026
+ this.setQueryOptions(this.$props.componentId, options, true);
1027
+ this.setPage(0);
1028
+ this.currentPageState = 0;
1029
+ this.from = 0;
1030
+ var sortOption = this.$props.sortOptions[this.sortOptionIndex] ? this.$props.sortOptions[this.sortOptionIndex].label : null;
1031
+ this.setPageURL(this.$props.componentId + "sortOption", sortOption, this.$props.componentId + "sortOption", false, this.$props.URLParams);
1032
+ }
1013
1033
  },
1014
1034
  triggerClickAnalytics: function triggerClickAnalytics(searchPosition, documentId) {
1015
1035
  var docId = documentId;
@@ -1043,7 +1063,7 @@ var ReactiveList = {
1043
1063
  "domProps": {
1044
1064
  "value": this.sortOptionIndex
1045
1065
  }
1046
- }, [this.$props.sortOptions.map(function (sort, index) {
1066
+ }, [this.sortOptions.map(function (sort, index) {
1047
1067
  return h("option", {
1048
1068
  "key": sort.label,
1049
1069
  "domProps": {
@@ -1120,6 +1140,7 @@ var ReactiveList = {
1120
1140
  var mapStateToProps = function mapStateToProps(state, props) {
1121
1141
  return {
1122
1142
  defaultPage: state.selectedValues[props.componentId] && state.selectedValues[props.componentId].value - 1,
1143
+ urlSortOption: state.selectedValues[props.componentId + "sortOption"] && state.selectedValues[props.componentId + "sortOption"].value,
1123
1144
  hits: state.hits[props.componentId] && state.hits[props.componentId].hits,
1124
1145
  rawData: state.rawData[props.componentId],
1125
1146
  aggregationData: state.compositeAggregations[props.componentId],
@@ -1149,11 +1170,7 @@ var mapDispatchtoProps = {
1149
1170
  }; // Only used for SSR
1150
1171
 
1151
1172
  ReactiveList.generateQueryOptions = function (props) {
1152
- // simulate default (includeFields and excludeFields) props to generate consistent query
1153
- var options = getQueryOptions(_rollupPluginBabelHelpers._extends({
1154
- includeFields: ['*'],
1155
- excludeFields: []
1156
- }, props));
1173
+ var options = getQueryOptions(props);
1157
1174
  var size = props.size,
1158
1175
  dataField = props.dataField,
1159
1176
  defaultSortOption = props.defaultSortOption,
@@ -9,7 +9,7 @@ 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-4c19b4c8.js');
12
+ var vueTypes = require('./vueTypes-57d01f18.js');
13
13
  var _mergeJSXProps = _interopDefault(require('@vue/babel-helper-vue-jsx-merge-props'));
14
14
  var Title = require('./Title-584a8cc8.js');
15
15
  var Card = require('./Card-fd94ef07.js');
@@ -9,7 +9,7 @@ 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-4c19b4c8.js');
12
+ var vueTypes = require('./vueTypes-57d01f18.js');
13
13
  var _mergeJSXProps = _interopDefault(require('@vue/babel-helper-vue-jsx-merge-props'));
14
14
  var Title = require('./Title-584a8cc8.js');
15
15
  var ListItem = require('./ListItem-b40adb04.js');
@@ -13,9 +13,9 @@ require('emotion');
13
13
  require('@appbaseio/vue-emotion');
14
14
  require('polished');
15
15
  var Button = require('./Button-11307285.js');
16
- var vueTypes = require('./vueTypes-4c19b4c8.js');
16
+ var vueTypes = require('./vueTypes-57d01f18.js');
17
17
  require('redux');
18
- var index = require('./index-89c39a9e.js');
18
+ var index = require('./index-4509aa45.js');
19
19
  var Title = require('./Title-584a8cc8.js');
20
20
  var Container = require('./Container-526efa6a.js');
21
21
 
@@ -32,7 +32,8 @@ var SelectedFilters = {
32
32
  innerClass: vueTypes.types.style,
33
33
  showClearAll: VueTypes.bool.def(true),
34
34
  title: vueTypes.types.title,
35
- resetToDefault: VueTypes.bool.def(false)
35
+ resetToDefault: VueTypes.bool.def(false),
36
+ resetToValues: VueTypes.object
36
37
  },
37
38
  inject: {
38
39
  theme: {
@@ -85,15 +86,16 @@ var SelectedFilters = {
85
86
  this.$emit('clear', component, value);
86
87
  },
87
88
  clearValues: function clearValues() {
88
- var resetToDefault = this.resetToDefault;
89
+ var resetToDefault = this.resetToDefault,
90
+ resetToValues = this.resetToValues;
89
91
 
90
92
  if (resetToDefault) {
91
93
  this.resetValuesToDefault();
92
94
  } else {
93
- this.clearValuesAction();
95
+ this.clearValuesAction(resetToValues);
94
96
  }
95
97
 
96
- this.$emit('clear', null);
98
+ this.$emit('clear', resetToValues);
97
99
  },
98
100
  renderValue: function renderValue(value, isArray) {
99
101
  var _this2 = this;
@@ -13,18 +13,20 @@ require('emotion');
13
13
  require('@appbaseio/vue-emotion');
14
14
  require('polished');
15
15
  var Button = require('./Button-11307285.js');
16
- var vueTypes = require('./vueTypes-4c19b4c8.js');
16
+ var vueTypes = require('./vueTypes-57d01f18.js');
17
17
  require('@appbaseio/reactivecore/lib/utils/transform');
18
18
  require('redux');
19
- var index = require('./index-89c39a9e.js');
20
- var ComponentWrapper = require('./ComponentWrapper-32481890.js');
19
+ var index = require('./index-4509aa45.js');
20
+ var ComponentWrapper = require('./ComponentWrapper-10bad289.js');
21
+ require('@vue/babel-helper-vue-jsx-merge-props');
21
22
  var Title = require('./Title-584a8cc8.js');
22
- require('./Input-3cc3fa59.js');
23
+ require('./CancelSvg-4aa35935.js');
24
+ require('./Input-a9ee53ed.js');
23
25
  require('compute-scroll-into-view');
24
- require('./DownShift-62e82255.js');
25
26
  var Container = require('./Container-526efa6a.js');
27
+ require('@appbaseio/reactivecore/lib/utils/suggestions');
26
28
  var utils = require('./utils-1219e1fe.js');
27
- var DropDown = require('./DropDown-6815b9b6.js');
29
+ var DropDown = require('./DropDown-0076babc.js');
28
30
 
29
31
  var updateQuery = configureStore.Actions.updateQuery,
30
32
  setQueryOptions = configureStore.Actions.setQueryOptions,
@@ -80,10 +82,12 @@ 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
88
  nestedField: vueTypes.types.string,
86
- index: VueTypes.string
89
+ index: VueTypes.string,
90
+ searchPlaceholder: VueTypes.string.def('Type here to search...')
87
91
  },
88
92
  created: function created() {
89
93
  if (!this.enableAppbase && this.$props.index) {
@@ -197,7 +201,9 @@ var SingleDropdownList = {
197
201
  if (!this.hasCustomRenderer && this.$data.modifiedOptions.length === 0 && !this.isLoading) {
198
202
  if (renderNoResults && index.isFunction(renderNoResults)) {
199
203
  return h("div", [renderNoResults()]);
200
- } else if (renderNoResults && !index.isFunction(renderNoResults)) {
204
+ }
205
+
206
+ if (renderNoResults && !index.isFunction(renderNoResults)) {
201
207
  return renderNoResults;
202
208
  }
203
209
 
@@ -235,6 +241,8 @@ var SingleDropdownList = {
235
241
  "renderNoResults": this.$scopedSlots.renderNoResults || this.$props.renderNoResults,
236
242
  "themePreset": this.themePreset,
237
243
  "showSearch": this.$props.showSearch,
244
+ "showClear": this.$props.showClear,
245
+ "searchPlaceholder": this.$props.searchPlaceholder,
238
246
  "transformData": this.$props.transformData,
239
247
  "footer": showLoadMore && !isLastBucket && h("div", {
240
248
  "attrs": {
@@ -294,7 +302,7 @@ var SingleDropdownList = {
294
302
  index.updateDefaultQuery(props.componentId, this.setDefaultQuery, props, value);
295
303
  }
296
304
 
297
- this.setQueryOptions(this.internalComponent, defaultQueryOptions);
305
+ this.setQueryOptions(this.internalComponent, defaultQueryOptions, false);
298
306
  this.updateQuery({
299
307
  componentId: this.internalComponent,
300
308
  query: query,
@@ -315,7 +323,7 @@ var SingleDropdownList = {
315
323
  index.updateCustomQuery(props.componentId, this.setCustomQuery, props, value);
316
324
  }
317
325
 
318
- this.setQueryOptions(props.componentId, customQueryOptions);
326
+ this.setQueryOptions(props.componentId, customQueryOptions, false);
319
327
  this.updateQuery({
320
328
  componentId: props.componentId,
321
329
  query: query,
@@ -12,14 +12,15 @@ var constants = require('@appbaseio/reactivecore/lib/utils/constants');
12
12
  require('emotion');
13
13
  require('@appbaseio/vue-emotion');
14
14
  require('polished');
15
- var vueTypes = require('./vueTypes-4c19b4c8.js');
15
+ var vueTypes = require('./vueTypes-57d01f18.js');
16
16
  require('@appbaseio/reactivecore/lib/utils/transform');
17
17
  require('redux');
18
- var index = require('./index-89c39a9e.js');
19
- var ComponentWrapper = require('./ComponentWrapper-32481890.js');
18
+ var index = require('./index-4509aa45.js');
19
+ var ComponentWrapper = require('./ComponentWrapper-10bad289.js');
20
20
  var Title = require('./Title-584a8cc8.js');
21
- var Input = require('./Input-3cc3fa59.js');
21
+ var Input = require('./Input-a9ee53ed.js');
22
22
  var Container = require('./Container-526efa6a.js');
23
+ var suggestions = require('@appbaseio/reactivecore/lib/utils/suggestions');
23
24
  var FormControlList = require('./FormControlList-808dbcef.js');
24
25
  var utils = require('./utils-1219e1fe.js');
25
26
 
@@ -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,7 +57,7 @@ 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),
@@ -170,7 +171,7 @@ var SingleList = {
170
171
  var filteredItemsToRender = itemsToRender.filter(function (item) {
171
172
  if (String(item.key).length) {
172
173
  if (_this.$props.showSearch && _this.$data.searchTerm) {
173
- 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()));
174
175
  }
175
176
 
176
177
  return true;
@@ -283,7 +284,7 @@ var SingleList = {
283
284
  index.updateDefaultQuery(props.componentId, this.setDefaultQuery, props, value);
284
285
  }
285
286
 
286
- this.setQueryOptions(this.internalComponent, defaultQueryOptions);
287
+ this.setQueryOptions(this.internalComponent, defaultQueryOptions, false);
287
288
  this.updateQuery({
288
289
  componentId: this.internalComponent,
289
290
  query: query,
@@ -304,7 +305,7 @@ var SingleList = {
304
305
  index.updateCustomQuery(props.componentId, this.setCustomQuery, props, value);
305
306
  }
306
307
 
307
- this.setQueryOptions(props.componentId, customQueryOptions);
308
+ this.setQueryOptions(props.componentId, customQueryOptions, false);
308
309
  this.updateQuery({
309
310
  componentId: props.componentId,
310
311
  query: query,
@@ -12,11 +12,11 @@ var constants = require('@appbaseio/reactivecore/lib/utils/constants');
12
12
  require('emotion');
13
13
  require('@appbaseio/vue-emotion');
14
14
  require('polished');
15
- var vueTypes = require('./vueTypes-4c19b4c8.js');
15
+ var vueTypes = require('./vueTypes-57d01f18.js');
16
16
  require('@appbaseio/reactivecore/lib/utils/transform');
17
17
  require('redux');
18
- var index = require('./index-89c39a9e.js');
19
- var ComponentWrapper = require('./ComponentWrapper-32481890.js');
18
+ var index = require('./index-4509aa45.js');
19
+ var ComponentWrapper = require('./ComponentWrapper-10bad289.js');
20
20
  var Title = require('./Title-584a8cc8.js');
21
21
  var Container = require('./Container-526efa6a.js');
22
22
  var FormControlList = require('./FormControlList-808dbcef.js');
@@ -167,7 +167,7 @@ var SingleRange = {
167
167
  index.updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, this.currentValue);
168
168
  }
169
169
 
170
- this.setQueryOptions(props.componentId, customQueryOptions);
170
+ this.setQueryOptions(props.componentId, customQueryOptions, false);
171
171
  this.updateQuery({
172
172
  componentId: props.componentId,
173
173
  query: query,
@@ -10,12 +10,16 @@ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-f127c8b7.js
10
10
  var VueTypes = _interopDefault(require('vue-types'));
11
11
  require('@appbaseio/reactivecore/lib/utils/constants');
12
12
  require('redux');
13
- var index = require('./index-89c39a9e.js');
13
+ var index = require('./index-4509aa45.js');
14
14
 
15
15
  var getSearchState = configureStore.helper.getSearchState;
16
16
  var defaultKeys = ['hits', 'value', 'aggregations', 'error'];
17
17
 
18
18
  var filterProps = function filterProps(props) {
19
+ if (props === void 0) {
20
+ props = {};
21
+ }
22
+
19
23
  return _rollupPluginBabelHelpers._extends({}, props, {
20
24
  props: props.componentProps
21
25
  });
@@ -35,7 +39,7 @@ var filterByComponentIds = function filterByComponentIds(state, props) {
35
39
  return _ref = {}, _ref[componentIds] = state[componentIds], _ref;
36
40
  }
37
41
 
38
- if (componentIds instanceof Array) {
42
+ if (Array.isArray(componentIds)) {
39
43
  var filteredState = {};
40
44
  componentIds.forEach(function (componentId) {
41
45
  filteredState[componentId] = state[componentId];
@@ -74,7 +78,7 @@ var StateProvider = {
74
78
  };
75
79
  return this.__state;
76
80
  },
77
- mounted: function mounted() {
81
+ created: function created() {
78
82
  this.searchState = filterByKeys(getSearchState(filterProps(this.searchStateProps)), this.includeKeys);
79
83
  },
80
84
  computed: {
@@ -13,11 +13,11 @@ require('emotion');
13
13
  require('@appbaseio/vue-emotion');
14
14
  require('polished');
15
15
  var Button = require('./Button-11307285.js');
16
- var vueTypes = require('./vueTypes-4c19b4c8.js');
16
+ var vueTypes = require('./vueTypes-57d01f18.js');
17
17
  require('@appbaseio/reactivecore/lib/utils/transform');
18
18
  require('redux');
19
- var index = require('./index-89c39a9e.js');
20
- var ComponentWrapper = require('./ComponentWrapper-32481890.js');
19
+ var index = require('./index-4509aa45.js');
20
+ var ComponentWrapper = require('./ComponentWrapper-10bad289.js');
21
21
  var Title = require('./Title-584a8cc8.js');
22
22
  var Container = require('./Container-526efa6a.js');
23
23
 
@@ -35,7 +35,7 @@ var ToggleButton = {
35
35
  componentId: vueTypes.types.stringRequired,
36
36
  data: vueTypes.types.data,
37
37
  dataField: vueTypes.types.stringRequired,
38
- defaultValue: vueTypes.types.stringOrArray,
38
+ defaultValue: vueTypes.types.any,
39
39
  value: vueTypes.types.stringOrArray,
40
40
  filterLabel: vueTypes.types.string,
41
41
  nestedField: vueTypes.types.string,
@@ -193,7 +193,7 @@ var ToggleButton = {
193
193
  var _ref = customQuery(value, props) || {};
194
194
 
195
195
  query = _ref.query;
196
- this.setQueryOptions(props.componentId, getOptionsFromQuery(customQuery(value, props)));
196
+ this.setQueryOptions(props.componentId, getOptionsFromQuery(customQuery(value, props)), false);
197
197
  index.updateCustomQuery(props.componentId, this.setCustomQuery, props, value);
198
198
  }
199
199
 
@@ -160,10 +160,16 @@ var isFunction = function isFunction(element) {
160
160
  }; // parses current array (i.e. this.$props.value) for `onChange` callback for multi-* components
161
161
 
162
162
  function parseValueArray(objectValues, currentValue) {
163
- var keys = Object.keys(objectValues);
164
- var selectedValues = keys.map(function (key) {
165
- return objectValues[key] ? key : null;
166
- });
163
+ var selectedValues;
164
+
165
+ if (Array.isArray(objectValues)) {
166
+ selectedValues = [].concat(objectValues);
167
+ } else {
168
+ var keys = Object.keys(objectValues);
169
+ selectedValues = keys.map(function (key) {
170
+ return objectValues[key] ? key : null;
171
+ });
172
+ }
167
173
 
168
174
  if (selectedValues.includes(currentValue)) {
169
175
  return selectedValues.filter(function (item) {
package/dist/cjs/index.js CHANGED
@@ -11,12 +11,12 @@ require('emotion');
11
11
  require('@appbaseio/vue-emotion');
12
12
  require('polished');
13
13
  require('./Button-11307285.js');
14
- require('./vueTypes-4c19b4c8.js');
14
+ require('./vueTypes-57d01f18.js');
15
15
  var ReactiveList = require('./ReactiveList.js');
16
16
  require('@appbaseio/reactivecore/lib/utils/transform');
17
17
  require('redux');
18
- require('./index-89c39a9e.js');
19
- require('./ComponentWrapper-32481890.js');
18
+ require('./index-4509aa45.js');
19
+ require('./ComponentWrapper-10bad289.js');
20
20
  require('@vue/babel-helper-vue-jsx-merge-props');
21
21
  require('./Title-584a8cc8.js');
22
22
  require('./ListItem-b40adb04.js');
@@ -27,17 +27,19 @@ require('appbase-js');
27
27
  require('url-search-params-polyfill');
28
28
  var ReactiveBase = require('./ReactiveBase.js');
29
29
  require('hotkeys-js');
30
- var DataSearch = require('./DataSearch.js');
31
- require('./Input-3cc3fa59.js');
30
+ var DataSearch = require('./DataSearch-37dfdf39.js');
31
+ require('./CancelSvg-4aa35935.js');
32
+ require('./Input-a9ee53ed.js');
32
33
  require('compute-scroll-into-view');
33
- require('./DownShift-62e82255.js');
34
34
  require('./Container-526efa6a.js');
35
35
  require('vue-highlight-words');
36
+ var install = require('./install-b7a80fc1.js');
37
+ require('@appbaseio/reactivecore/lib/utils/suggestions');
36
38
  require('./FormControlList-808dbcef.js');
37
39
  require('./utils-1219e1fe.js');
38
40
  var SingleList = require('./SingleList.js');
39
41
  var MultiList = require('./MultiList.js');
40
- require('./DropDown-6815b9b6.js');
42
+ require('./DropDown-0076babc.js');
41
43
  var SingleDropdownList = require('./SingleDropdownList.js');
42
44
  var MultiDropdownList = require('./MultiDropdownList.js');
43
45
  var ToggleButton = require('./ToggleButton.js');
@@ -48,34 +50,37 @@ var MultiRange = require('./MultiRange.js');
48
50
  var ResultCard = require('./ResultCard.js');
49
51
  var ResultList = require('./ResultList.js');
50
52
  require('vue-no-ssr');
51
- require('./ssr-08e95ede.js');
53
+ require('./ssr-0ee35a09.js');
52
54
  var RangeSlider = require('./RangeSlider.js');
53
55
  var DynamicRangeSlider = require('./DynamicRangeSlider.js');
54
56
  var StateProvider = require('./StateProvider.js');
55
57
  require('@appbaseio/reactivecore/lib/reducers/valueReducer');
56
58
  require('@appbaseio/reactivecore/lib/reducers/queryReducer');
57
59
  require('@appbaseio/reactivecore/lib/reducers/queryOptionsReducer');
60
+ require('@appbaseio/reactivecore/lib/reducers/compositeAggsReducer');
61
+ require('@appbaseio/reactivecore/lib/constants');
58
62
  require('@appbaseio/reactivecore/lib/reducers/dependencyTreeReducer');
59
63
  require('@appbaseio/reactivecore/lib/utils/graphQL');
60
64
  require('@appbaseio/reactivecore/lib/actions/utils');
61
65
  var initReactivesearch = require('./initReactivesearch.js');
62
66
  var version = require('./version.js');
63
67
  var RangeInput = require('./RangeInput.js');
64
- var install = require('./install.js');
65
68
 
66
69
  // Add polyfills to support in IE
67
70
 
68
71
  if (typeof window !== 'undefined' && window.Vue) {
69
- install.default(window.Vue);
72
+ install.install(window.Vue);
70
73
  }
71
74
  var index = {
72
75
  version: version.default,
73
- install: install.default
76
+ install: install.install
74
77
  };
75
78
 
76
79
  exports.ReactiveList = ReactiveList.default;
77
80
  exports.ReactiveBase = ReactiveBase.default;
78
- exports.DataSearch = DataSearch.default;
81
+ exports.DataSearch = DataSearch.DataSearch;
82
+ exports.SearchBox = install.SearchBox;
83
+ exports.install = install.install;
79
84
  exports.SingleList = SingleList.default;
80
85
  exports.MultiList = MultiList.default;
81
86
  exports.SingleDropdownList = SingleDropdownList.default;
@@ -93,5 +98,4 @@ exports.StateProvider = StateProvider.default;
93
98
  exports.initReactivesearch = initReactivesearch.default;
94
99
  exports.version = version.default;
95
100
  exports.RangeInput = RangeInput.default;
96
- exports.install = install.default;
97
101
  exports.default = index;