@appbaseio/reactivesearch-vue 1.16.0-alpha.4 → 1.16.0-alpha.40

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 +8107 -7501
  2. package/dist/@appbaseio/reactivesearch-vue.umd.js.map +1 -1
  3. package/dist/@appbaseio/reactivesearch-vue.umd.min.js +5 -5
  4. package/dist/@appbaseio/reactivesearch-vue.umd.min.js.map +1 -1
  5. package/dist/cjs/Button-d2f1aeda.js +68 -0
  6. package/dist/cjs/{DownShift-b09da079.js → CancelSvg-82021d23.js} +60 -16
  7. package/dist/cjs/Card-4b915733.js +30 -0
  8. package/dist/cjs/{ComponentWrapper-5a0a8849.js → ComponentWrapper-7302fe1a.js} +40 -21
  9. package/dist/cjs/{Container-f84e72fc.js → Container-8a08d663.js} +3 -11
  10. package/dist/cjs/DataSearch.js +354 -398
  11. package/dist/cjs/{DropDown-c66be1a8.js → DropDown-c46d8b0c.js} +80 -95
  12. package/dist/cjs/DynamicRangeSlider.js +107 -42
  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 +101 -65
  18. package/dist/cjs/MultiList.js +79 -47
  19. package/dist/cjs/MultiRange.js +20 -14
  20. package/dist/cjs/{Pagination-91df3b77.js → Pagination-1b2320a7.js} +4 -3
  21. package/dist/cjs/RangeInput.js +29 -45
  22. package/dist/cjs/RangeSlider.js +31 -28
  23. package/dist/cjs/ReactiveBase.js +55 -34
  24. package/dist/cjs/ReactiveComponent.js +72 -58
  25. package/dist/cjs/ReactiveGoogleMap.js +326 -235
  26. package/dist/cjs/ReactiveList.js +188 -241
  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 +87 -57
  31. package/dist/cjs/SingleList.js +60 -37
  32. package/dist/cjs/SingleRange.js +17 -11
  33. package/dist/cjs/StateProvider.js +11 -7
  34. package/dist/cjs/{Title-e9beb554.js → Title-39765ee6.js} +3 -11
  35. package/dist/cjs/ToggleButton.js +35 -16
  36. package/dist/cjs/{_rollupPluginBabelHelpers-280a574c.js → _rollupPluginBabelHelpers-4abdbfff.js} +11 -1
  37. package/dist/cjs/{index-e0583d76.js → index-d44a0a21.js} +87 -13
  38. package/dist/cjs/index.js +23 -19
  39. package/dist/cjs/initReactivesearch.js +187 -104
  40. package/dist/cjs/install.js +20 -18
  41. package/dist/cjs/ssr-c333c82c.js +39 -0
  42. package/dist/cjs/{utils-d1ea9f95.js → utils-23afb20b.js} +2 -2
  43. package/dist/cjs/version.js +1 -1
  44. package/dist/cjs/{vueTypes-c21f265b.js → vueTypes-6de9d2a9.js} +9 -4
  45. package/dist/es/Button-799185e2.js +59 -0
  46. package/dist/es/{DownShift-d8f2500f.js → CancelSvg-4d9e0857.js} +56 -17
  47. package/dist/es/Card-04b3c33e.js +23 -0
  48. package/dist/es/{ComponentWrapper-d0b21b95.js → ComponentWrapper-bbb717bc.js} +40 -21
  49. package/dist/es/Container-4383c6f0.js +10 -0
  50. package/dist/es/DataSearch.js +352 -396
  51. package/dist/es/{DropDown-5dbd69c2.js → DropDown-4edaa621.js} +79 -94
  52. package/dist/es/DynamicRangeSlider.js +107 -42
  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 +101 -65
  58. package/dist/es/MultiList.js +79 -47
  59. package/dist/es/MultiRange.js +20 -14
  60. package/dist/es/{Pagination-800af44f.js → Pagination-b3e4054a.js} +4 -3
  61. package/dist/es/RangeInput.js +29 -45
  62. package/dist/es/RangeSlider.js +31 -28
  63. package/dist/es/ReactiveBase.js +55 -34
  64. package/dist/es/ReactiveComponent.js +72 -58
  65. package/dist/es/ReactiveGoogleMap.js +326 -235
  66. package/dist/es/ReactiveList.js +188 -241
  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 +87 -57
  71. package/dist/es/SingleList.js +60 -37
  72. package/dist/es/SingleRange.js +17 -11
  73. package/dist/es/StateProvider.js +11 -7
  74. package/dist/es/Title-579f8d6c.js +10 -0
  75. package/dist/es/ToggleButton.js +35 -16
  76. package/dist/es/{_rollupPluginBabelHelpers-c9fbe19f.js → _rollupPluginBabelHelpers-ecf6c03c.js} +11 -1
  77. package/dist/es/{index-1fe91a0a.js → index-5daa8276.js} +84 -14
  78. package/dist/es/index.js +23 -19
  79. package/dist/es/initReactivesearch.js +188 -105
  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 +7 -5
  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
@@ -0,0 +1,79 @@
1
+ 'use strict';
2
+
3
+ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
4
+
5
+ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-4abdbfff.js');
6
+ var emotion = require('emotion');
7
+ var styled = require('@appbaseio/vue-emotion');
8
+ var styled__default = _interopDefault(styled);
9
+
10
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16;
11
+
12
+ var alertBorder = function alertBorder(_ref) {
13
+ var theme = _ref.theme;
14
+ return emotion.css(_templateObject || (_templateObject = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tborder: 1px solid ", ";\n"])), theme.colors.alertColor);
15
+ };
16
+
17
+ var input = emotion.css(_templateObject2 || (_templateObject2 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\twidth: 100%;\n\tline-height: 1.5;\n\tmin-height: 42px;\n\tpadding: 8px 12px;\n\tborder: 1px solid #ccc;\n\tbackground-color: #fafafa;\n\tfont-size: 0.9rem;\n\toutline: none;\n\theight: 100%;\n\n\t&:focus {\n\t\tbackground-color: #fff;\n\t}\n"])));
18
+
19
+ var dark = function dark(theme) {
20
+ return emotion.css(_templateObject3 || (_templateObject3 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tborder-color: ", ";\n"])), theme.colors.borderColor);
21
+ };
22
+
23
+ var darkInput = function darkInput(_ref2) {
24
+ var theme = _ref2.theme;
25
+ return emotion.css(_templateObject4 || (_templateObject4 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tbackground-color: ", ";\n\tcolor: ", ";\n\t", ";\n\n\t&:focus {\n\t\tbackground-color: ", ";\n\t}\n"])), theme.colors.backgroundColor, theme.colors.textColor, dark(theme), theme.colors.backgroundColor);
26
+ };
27
+
28
+ var Input = styled__default('input')(_templateObject5 || (_templateObject5 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\t", ";\n\t", ";\n\n\t", ";\n\n\t", ";\n\n\t", ";\n\t", ";\n\n\t", ";\n\n\t", ";\n\t", ";\n\t", ";\n\n\t", ";\n"])), input, function (_ref3) {
29
+ var themePreset = _ref3.themePreset,
30
+ theme = _ref3.theme;
31
+ return themePreset === 'dark' && darkInput({
32
+ theme: theme
33
+ });
34
+ }, function (props) {
35
+ return props.showIcon && props.iconPosition === 'left' && emotion.css(_templateObject6 || (_templateObject6 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\t\t\tpadding-left: 36px;\n\t\t"])));
36
+ }, function (props) {
37
+ return props.showIcon && props.iconPosition === 'right' && emotion.css(_templateObject7 || (_templateObject7 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\t\t\tpadding-right: 36px;\n\t\t"])));
38
+ }, function (props) {
39
+ return (// for clear icon
40
+ props.showClear && emotion.css(_templateObject8 || (_templateObject8 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\t\t\tpadding-right: 36px;\n\t\t"])))
41
+ );
42
+ }, function (props) {
43
+ return (// for voice search icon
44
+ props.showVoiceSearch && emotion.css(_templateObject9 || (_templateObject9 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\t\t\tpadding-right: 36px;\n\t\t"])))
45
+ );
46
+ }, function (props) {
47
+ return (// for clear icon with search icon
48
+ props.showClear && props.showIcon && props.iconPosition === 'right' && emotion.css(_templateObject10 || (_templateObject10 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\t\t\tpadding-right: 66px;\n\t\t"])))
49
+ );
50
+ }, function (props) {
51
+ return (// for voice search icon with search icon
52
+ props.showVoiceSearch && props.showIcon && props.iconPosition === 'right' && emotion.css(_templateObject11 || (_templateObject11 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\t\t\tpadding-right: 66px;\n\t\t"])))
53
+ );
54
+ }, function (props) {
55
+ return (// for voice search icon with clear icon
56
+ props.showVoiceSearch && props.showIcon && emotion.css(_templateObject12 || (_templateObject12 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\t\t\tpadding-right: 66px;\n\t\t"])))
57
+ );
58
+ }, function (props) {
59
+ return (// for clear icon with search icon and voice search
60
+ props.showClear && props.showIcon && props.showVoiceSearch && props.iconPosition === 'right' && emotion.css(_templateObject13 || (_templateObject13 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\t\t\tpadding-right: 90px;\n\t\t"])))
61
+ );
62
+ }, function (props) {
63
+ return props.alert && alertBorder;
64
+ });
65
+
66
+ var suggestions = function suggestions(themePreset, theme) {
67
+ return emotion.css(_templateObject14 || (_templateObject14 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tdisplay: block;\n\twidth: 100%;\n\tborder: 1px solid #ccc;\n\tborder-top: none;\n\tbackground-color: #fff;\n\tfont-size: 0.9rem;\n\tz-index: 3;\n\tposition: absolute;\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n\tmax-height: 395px;\n\toverflow-y: auto;\n\n\t&.small {\n\t\ttop: 30px;\n\t}\n\n\tli {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tcursor: pointer;\n\t\tpadding: 10px;\n\t\tuser-select: none;\n\n\t\t& > .trim {\n\t\t\tdisplay: -webkit-box;\n\t\t\tdisplay: block;\n\t\t\twidth: 100%;\n\t\t\tmax-height: 2.3rem;\n\t\t\tline-height: 1.2rem;\n\t\t\t-webkit-line-clamp: 2;\n\t\t\t-webkit-box-orient: vertical;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\tbackground-color: #eee;\n\t\t}\n\t}\n\n\t", ";\n"])), themePreset === 'dark' && theme && dark(theme));
68
+ };
69
+
70
+ var suggestionsContainer = emotion.css(_templateObject15 || (_templateObject15 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tposition: relative;\n\t.cancel-icon {\n\t\tcursor: pointer;\n\t}\n"])));
71
+
72
+ var noSuggestions = function noSuggestions(themePreset, theme) {
73
+ return emotion.css(_templateObject16 || (_templateObject16 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tdisplay: block;\n\twidth: 100%;\n\tborder: 1px solid #ccc;\n\tborder-top: none;\n\tbackground-color: #fff;\n\tfont-size: 0.9rem;\n\tz-index: 3;\n\tposition: absolute;\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n\tmax-height: 260px;\n\toverflow-y: auto;\n\n\t&.small {\n\t\ttop: 30px;\n\t}\n\n\tli {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tpadding: 10px;\n\t\tuser-select: none;\n\n\t\t& > .trim {\n\t\t\tdisplay: -webkit-box;\n\t\t\tdisplay: block;\n\t\t\twidth: 100%;\n\t\t\tmax-height: 2.3rem;\n\t\t\tline-height: 1.2rem;\n\t\t\t-webkit-line-clamp: 2;\n\t\t\t-webkit-box-orient: vertical;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t}\n\t}\n\n\t", "\n"])), themePreset === 'dark' && theme && dark(theme));
74
+ };
75
+
76
+ exports.Input = Input;
77
+ exports.noSuggestions = noSuggestions;
78
+ exports.suggestions = suggestions;
79
+ exports.suggestionsContainer = suggestionsContainer;
@@ -0,0 +1,46 @@
1
+ 'use strict';
2
+
3
+ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
4
+
5
+ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-4abdbfff.js');
6
+ var emotion = require('emotion');
7
+ var styled = require('@appbaseio/vue-emotion');
8
+ var styled__default = _interopDefault(styled);
9
+ var polished = require('polished');
10
+ require('./Title-39765ee6.js');
11
+
12
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
13
+ var container = emotion.css(_templateObject || (_templateObject = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin: 0;\n\tborder-radius: 0.25rem;\n\toverflow: hidden;\n"])));
14
+ var smallImage = emotion.css(_templateObject2 || (_templateObject2 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\twidth: 100px;\n\theight: 100px;\n"])));
15
+ var Image = styled__default('div')(_templateObject3 || (_templateObject3 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\twidth: 160px;\n\theight: 160px;\n\t", ";\n\tmargin: 0;\n\tbackground-size: contain;\n\tbackground-position: center center;\n\tbackground-repeat: no-repeat;\n\tbackground-image: ", ";\n"])), function (props) {
16
+ return props.small ? smallImage : null;
17
+ }, function (props) {
18
+ return "url(" + props.src + ")";
19
+ });
20
+ var ListItem = styled__default('a')(_templateObject4 || (_templateObject4 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\twidth: 100%;\n\theight: auto;\n\toutline: none;\n\ttext-decoration: none;\n\tborder-radius: 0;\n\tbackground-color: ", ";\n\tdisplay: flex;\n\tflex-direction: row;\n\tmargin: 0;\n\tpadding: 10px;\n\tborder-bottom: 1px solid ", ";\n\tcolor: ", ";\n\t", "; all 0.3s ease;\n\n\t&:hover, &:focus {\n\t\tbackground-color: ", ";\n\t}\n\n\t&:last-child {\n\t\tborder: 0;\n\t}\n\n\th2 {\n\t\twidth: 100%;\n\t\tline-height: 1.2rem;\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\tmargin: 0;\n\t\tpadding: 0 0 8px;\n\t}\n\n\tp {\n\t\tmargin: 0;\n\t}\n\n\tarticle {\n\t\twidth: ", ";\n\t\tpadding-left: ", ";\n\t\tfont-size: 0.9rem;\n\t}\n\n\t&:hover, &:focus {\n\t\tbox-shadow: 0 0 0 0 rgba(0,0,0,0.10);\n\t}\n\n\t@media (max-width: 420px) {\n\t\tmin-width: 0;\n\t\tmargin: 0;\n\t\tborder-radius: 0;\n\t\tbox-shadow: none;\n\t\tborder: 1px solid #eee;\n\n\t\t&:hover, &:focus {\n\t\t\tbox-shadow: 0;\n\t\t}\n\t}\n"])), function (_ref) {
21
+ var theme = _ref.theme;
22
+ return theme.colors.backgroundColor ? polished.lighten(0.1, theme.colors.backgroundColor) : '#fff';
23
+ }, function (_ref2) {
24
+ var theme = _ref2.theme;
25
+ return theme.colors.backgroundColor ? polished.lighten(0.3, theme.colors.backgroundColor) : polished.lighten(0.68, theme.colors.textColor);
26
+ }, function (_ref3) {
27
+ var theme = _ref3.theme;
28
+ return theme.colors.textColor;
29
+ }, function (props) {
30
+ return props.href ? 'cursor: pointer' : null;
31
+ }, function (_ref4) {
32
+ var theme = _ref4.theme;
33
+ return theme.colors.backgroundColor ? polished.lighten(0.2, theme.colors.backgroundColor) : '#fdfefd';
34
+ }, function (props) {
35
+ if (props.image) {
36
+ return props.small ? 'calc(100% - 100px)' : 'calc(100% - 160px)';
37
+ }
38
+
39
+ return '100%';
40
+ }, function (props) {
41
+ return props.image ? '10px' : 0;
42
+ });
43
+
44
+ exports.Image = Image;
45
+ exports.ListItem = ListItem;
46
+ exports.container = container;
@@ -6,25 +6,27 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
6
6
 
7
7
  var configureStore = require('@appbaseio/reactivecore');
8
8
  var configureStore__default = _interopDefault(configureStore);
9
- var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-280a574c.js');
9
+ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-4abdbfff.js');
10
10
  var VueTypes = _interopDefault(require('vue-types'));
11
11
  var constants = require('@appbaseio/reactivecore/lib/utils/constants');
12
12
  require('emotion');
13
13
  require('@appbaseio/vue-emotion');
14
14
  require('polished');
15
- var Button = require('./Button-78d8bc26.js');
16
- var vueTypes = require('./vueTypes-c21f265b.js');
15
+ var Button = require('./Button-d2f1aeda.js');
16
+ var vueTypes = require('./vueTypes-6de9d2a9.js');
17
17
  require('@appbaseio/reactivecore/lib/utils/transform');
18
18
  require('redux');
19
- var index = require('./index-e0583d76.js');
20
- var ComponentWrapper = require('./ComponentWrapper-5a0a8849.js');
21
- var Title = require('./Title-e9beb554.js');
22
- require('./Input-643d02a7.js');
19
+ var index = require('./index-d44a0a21.js');
20
+ var ComponentWrapper = require('./ComponentWrapper-7302fe1a.js');
21
+ require('@vue/babel-helper-vue-jsx-merge-props');
22
+ var Title = require('./Title-39765ee6.js');
23
+ require('./CancelSvg-82021d23.js');
24
+ require('./Input-c6f181d5.js');
23
25
  require('compute-scroll-into-view');
24
- require('./DownShift-b09da079.js');
25
- var Container = require('./Container-f84e72fc.js');
26
- var utils = require('./utils-d1ea9f95.js');
27
- var DropDown = require('./DropDown-c66be1a8.js');
26
+ var Container = require('./Container-8a08d663.js');
27
+ require('@appbaseio/reactivecore/lib/utils/suggestions');
28
+ var utils = require('./utils-23afb20b.js');
29
+ var DropDown = require('./DropDown-c46d8b0c.js');
28
30
 
29
31
  var updateQuery = configureStore.Actions.updateQuery,
30
32
  setQueryOptions = configureStore.Actions.setQueryOptions,
@@ -35,8 +37,9 @@ var isEqual = configureStore.helper.isEqual,
35
37
  checkValueChange = configureStore.helper.checkValueChange,
36
38
  checkPropChange = configureStore.helper.checkPropChange,
37
39
  getClassName = configureStore.helper.getClassName,
38
- getOptionsFromQuery = configureStore.helper.getOptionsFromQuery,
39
- getCompositeAggsQuery = configureStore.helper.getCompositeAggsQuery;
40
+ getCompositeAggsQuery = configureStore.helper.getCompositeAggsQuery,
41
+ extractQueryFromCustomQuery = configureStore.helper.extractQueryFromCustomQuery,
42
+ getOptionsForCustomQuery = configureStore.helper.getOptionsForCustomQuery;
40
43
  var MultiDropdownList = {
41
44
  name: 'MultiDropdownList',
42
45
  data: function data() {
@@ -74,19 +77,28 @@ var MultiDropdownList = {
74
77
  selectAllLabel: vueTypes.types.string,
75
78
  showCount: VueTypes.bool.def(true),
76
79
  showFilter: VueTypes.bool.def(true),
77
- size: VueTypes.number.def(100),
80
+ size: VueTypes.number,
78
81
  sortBy: VueTypes.oneOf(['asc', 'desc', 'count']).def('count'),
79
82
  title: vueTypes.types.title,
80
83
  URLParams: VueTypes.bool.def(false),
81
84
  showMissing: VueTypes.bool.def(false),
82
85
  missingLabel: VueTypes.string.def('N/A'),
83
86
  showSearch: VueTypes.bool.def(false),
87
+ showClear: VueTypes.bool.def(false),
84
88
  showLoadMore: VueTypes.bool.def(false),
85
89
  loadMoreLabel: VueTypes.oneOfType([VueTypes.string, VueTypes.any]).def('Load More'),
86
- nestedField: vueTypes.types.string
90
+ nestedField: vueTypes.types.string,
91
+ index: VueTypes.string,
92
+ searchPlaceholder: VueTypes.string.def('Type here to search...')
87
93
  },
88
94
  created: function created() {
89
- // Set custom and default queries in store
95
+ if (!this.enableAppbase && this.$props.index) {
96
+ console.warn('Warning(ReactiveSearch): In order to use the `index` prop, the `enableAppbase` prop must be set to true in `ReactiveBase`.');
97
+ }
98
+
99
+ var props = this.$props;
100
+ this.modifiedOptions = this.options && this.options[props.dataField] ? this.options[props.dataField].buckets : []; // Set custom and default queries in store
101
+
90
102
  index.updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, this.currentValue);
91
103
  index.updateDefaultQuery(this.componentId, this.setDefaultQuery, this.$props, this.currentValue);
92
104
  },
@@ -124,33 +136,35 @@ var MultiDropdownList = {
124
136
  options: function options(newVal, oldVal) {
125
137
  var _this2 = this;
126
138
 
127
- checkPropChange(oldVal, newVal, function () {
128
- var _this2$$props = _this2.$props,
129
- showLoadMore = _this2$$props.showLoadMore,
130
- dataField = _this2$$props.dataField;
131
- var modifiedOptions = _this2.$data.modifiedOptions;
132
-
133
- if (showLoadMore) {
134
- // append options with showLoadMore
135
- var buckets = newVal[dataField].buckets;
136
- var nextOptions = [].concat(modifiedOptions, buckets.map(function (bucket) {
137
- return {
138
- key: bucket.key[dataField],
139
- doc_count: bucket.doc_count
139
+ if (newVal) {
140
+ checkPropChange(oldVal, newVal, function () {
141
+ var _this2$$props = _this2.$props,
142
+ showLoadMore = _this2$$props.showLoadMore,
143
+ dataField = _this2$$props.dataField;
144
+ var modifiedOptions = _this2.$data.modifiedOptions;
145
+
146
+ if (showLoadMore) {
147
+ // append options with showLoadMore
148
+ var buckets = newVal[dataField].buckets;
149
+ var nextOptions = [].concat(modifiedOptions, buckets.map(function (bucket) {
150
+ return {
151
+ key: bucket.key[dataField],
152
+ doc_count: bucket.doc_count
153
+ };
154
+ }));
155
+ var after = newVal[dataField].after_key; // detect the last bucket by checking if the next set of buckets were empty
156
+
157
+ var isLastBucket = !buckets.length;
158
+ _this2.after = {
159
+ after: after
140
160
  };
141
- }));
142
- var after = newVal[dataField].after_key; // detect the last bucket by checking if the next set of buckets were empty
143
-
144
- var isLastBucket = !buckets.length;
145
- _this2.after = {
146
- after: after
147
- };
148
- _this2.isLastBucket = isLastBucket;
149
- _this2.modifiedOptions = nextOptions;
150
- } else {
151
- _this2.modifiedOptions = newVal[_this2.$props.dataField] ? newVal[_this2.$props.dataField].buckets : [];
152
- }
153
- });
161
+ _this2.isLastBucket = isLastBucket;
162
+ _this2.modifiedOptions = nextOptions;
163
+ } else {
164
+ _this2.modifiedOptions = newVal[_this2.$props.dataField] ? newVal[_this2.$props.dataField].buckets : [];
165
+ }
166
+ });
167
+ }
154
168
  },
155
169
  size: function size() {
156
170
  this.updateQueryOptions(this.$props);
@@ -193,13 +207,22 @@ var MultiDropdownList = {
193
207
  var renderErrorCalc = this.$scopedSlots.renderError || renderError;
194
208
  var renderLabelCalc = this.$scopedSlots.renderLabel || renderLabel;
195
209
  var isLastBucket = this.$data.isLastBucket;
210
+ var renderNoResults = this.$scopedSlots.renderNoResults || this.$props.renderNoResults;
196
211
  var selectAll = [];
197
212
 
198
213
  if (renderErrorCalc && this.error) {
199
214
  return index.isFunction(renderErrorCalc) ? renderErrorCalc(this.error) : renderErrorCalc;
200
215
  }
201
216
 
202
- if (!this.hasCustomRenderer && this.$data.modifiedOptions.length === 0) {
217
+ if (!this.hasCustomRenderer && this.$data.modifiedOptions.length === 0 && !this.isLoading) {
218
+ if (renderNoResults && index.isFunction(renderNoResults)) {
219
+ return h("div", [renderNoResults()]);
220
+ }
221
+
222
+ if (renderNoResults && !index.isFunction(renderNoResults)) {
223
+ return renderNoResults;
224
+ }
225
+
203
226
  return null;
204
227
  }
205
228
 
@@ -219,7 +242,7 @@ var MultiDropdownList = {
219
242
  "items": [].concat(selectAll, this.$data.modifiedOptions.filter(function (item) {
220
243
  return String(item.key).trim().length;
221
244
  }).map(function (item) {
222
- return _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, item), {}, {
245
+ return _rollupPluginBabelHelpers._extends({}, item, {
223
246
  key: String(item.key)
224
247
  });
225
248
  })),
@@ -235,6 +258,8 @@ var MultiDropdownList = {
235
258
  "renderItem": renderItemCalc,
236
259
  "renderNoResults": this.$scopedSlots.renderNoResults || this.$props.renderNoResults,
237
260
  "showSearch": this.$props.showSearch,
261
+ "showClear": this.$props.showClear,
262
+ "searchPlaceholder": this.$props.searchPlaceholder,
238
263
  "transformData": this.$props.transformData,
239
264
  "footer": showLoadMore && !isLastBucket && h("div", {
240
265
  "attrs": {
@@ -326,7 +351,7 @@ var MultiDropdownList = {
326
351
  }
327
352
 
328
353
  var performUpdate = function performUpdate() {
329
- _this3.currentValue = currentValue;
354
+ _this3.currentValue = _rollupPluginBabelHelpers._extends({}, currentValue);
330
355
 
331
356
  _this3.updateQueryHandler(finalValues, props);
332
357
 
@@ -343,17 +368,18 @@ var MultiDropdownList = {
343
368
 
344
369
  if (this.defaultQuery) {
345
370
  var defaultQueryToBeSet = this.defaultQuery(value, props) || {};
371
+ var defaultQueryObj = extractQueryFromCustomQuery(defaultQueryToBeSet);
346
372
 
347
- if (defaultQueryToBeSet.query) {
348
- query = defaultQueryToBeSet.query;
373
+ if (defaultQueryObj) {
374
+ query = defaultQueryObj;
349
375
  }
350
376
 
351
- defaultQueryOptions = getOptionsFromQuery(defaultQueryToBeSet); // Update calculated default query in store
377
+ defaultQueryOptions = getOptionsForCustomQuery(defaultQueryToBeSet); // Update calculated default query in store
352
378
 
353
379
  index.updateDefaultQuery(props.componentId, this.setDefaultQuery, props, value);
354
380
  }
355
381
 
356
- this.setQueryOptions(this.internalComponent, defaultQueryOptions);
382
+ this.setQueryOptions(this.internalComponent, defaultQueryOptions, false);
357
383
  this.updateQuery({
358
384
  componentId: this.internalComponent,
359
385
  query: query,
@@ -367,14 +393,13 @@ var MultiDropdownList = {
367
393
  var customQueryOptions;
368
394
 
369
395
  if (customQuery) {
370
- var _ref = customQuery(value, props) || {};
371
-
372
- query = _ref.query;
373
- customQueryOptions = getOptionsFromQuery(customQuery(value, props));
396
+ var customQueryCalc = customQuery(value, props);
397
+ query = extractQueryFromCustomQuery(customQueryCalc);
398
+ customQueryOptions = getOptionsForCustomQuery(customQueryCalc);
374
399
  index.updateCustomQuery(props.componentId, this.setCustomQuery, props, value);
375
400
  }
376
401
 
377
- this.setQueryOptions(props.componentId, customQueryOptions);
402
+ this.setQueryOptions(props.componentId, customQueryOptions, false);
378
403
  this.updateQuery({
379
404
  componentId: props.componentId,
380
405
  query: query,
@@ -408,8 +433,8 @@ var MultiDropdownList = {
408
433
 
409
434
  if (props.defaultQuery) {
410
435
  var value = Object.keys(this.$data.currentValue);
411
- var defaultQueryOptions = getOptionsFromQuery(props.defaultQuery(value, props));
412
- this.setQueryOptions(this.internalComponent, _rollupPluginBabelHelpers._extends(_rollupPluginBabelHelpers._extends({}, queryOptions), defaultQueryOptions));
436
+ var defaultQueryOptions = getOptionsForCustomQuery(props.defaultQuery(value, props));
437
+ this.setQueryOptions(this.internalComponent, _rollupPluginBabelHelpers._extends({}, queryOptions, defaultQueryOptions));
413
438
  } else {
414
439
  this.setQueryOptions(this.internalComponent, queryOptions);
415
440
  }
@@ -444,7 +469,13 @@ var MultiDropdownList = {
444
469
 
445
470
  MultiDropdownList.defaultQuery = function (value, props) {
446
471
  var query = null;
447
- var type = props.queryFormat === 'or' ? 'terms' : 'term';
472
+ var queryFormat = props.queryFormat;
473
+
474
+ if (queryFormat === undefined) {
475
+ queryFormat = 'or';
476
+ }
477
+
478
+ var type = queryFormat === 'or' ? 'terms' : 'term';
448
479
 
449
480
  if (!Array.isArray(value) || value.length === 0) {
450
481
  return null;
@@ -465,14 +496,14 @@ MultiDropdownList.defaultQuery = function (value, props) {
465
496
  } else if (value) {
466
497
  var listQuery;
467
498
 
468
- if (props.queryFormat === 'or') {
499
+ if (queryFormat === 'or') {
469
500
  if (props.showMissing) {
470
- var _type, _ref2;
501
+ var _type, _ref;
471
502
 
472
503
  var hasMissingTerm = value.includes(props.missingLabel);
473
- var should = [(_ref2 = {}, _ref2[type] = (_type = {}, _type[props.dataField] = value.filter(function (item) {
504
+ var should = [(_ref = {}, _ref[type] = (_type = {}, _type[props.dataField] = value.filter(function (item) {
474
505
  return item !== props.missingLabel;
475
- }), _type), _ref2)];
506
+ }), _type), _ref)];
476
507
 
477
508
  if (hasMissingTerm) {
478
509
  should = should.concat({
@@ -499,9 +530,9 @@ MultiDropdownList.defaultQuery = function (value, props) {
499
530
  } else {
500
531
  // adds a sub-query with must as an array of objects for each term/value
501
532
  var queryArray = value.map(function (item) {
502
- var _type3, _ref3;
533
+ var _type3, _ref2;
503
534
 
504
- return _ref3 = {}, _ref3[type] = (_type3 = {}, _type3[props.dataField] = item, _type3), _ref3;
535
+ return _ref2 = {}, _ref2[type] = (_type3 = {}, _type3[props.dataField] = item, _type3), _ref2;
505
536
  });
506
537
  listQuery = {
507
538
  bool: {
@@ -536,6 +567,10 @@ MultiDropdownList.generateQueryOptions = function (props, after) {
536
567
  }) : utils.getAggsQuery(queryOptions, props);
537
568
  };
538
569
 
570
+ MultiDropdownList.hasInternalComponent = function () {
571
+ return true;
572
+ };
573
+
539
574
  var mapStateToProps = function mapStateToProps(state, props) {
540
575
  return {
541
576
  options: props.nestedField && state.aggregations[props.componentId] ? state.aggregations[props.componentId].reactivesearch_nested : state.aggregations[props.componentId],
@@ -544,7 +579,8 @@ var mapStateToProps = function mapStateToProps(state, props) {
544
579
  selectedValue: state.selectedValues[props.componentId] && state.selectedValues[props.componentId].value || null,
545
580
  themePreset: state.config.themePreset,
546
581
  error: state.error[props.componentId],
547
- componentProps: state.props[props.componentId]
582
+ componentProps: state.props[props.componentId],
583
+ enableAppbase: state.config.enableAppbase
548
584
  };
549
585
  };
550
586
 
@@ -556,7 +592,7 @@ var mapDispatchtoProps = {
556
592
  };
557
593
  var ListConnected = ComponentWrapper.ComponentWrapper(index.connect(mapStateToProps, mapDispatchtoProps)(MultiDropdownList), {
558
594
  componentType: constants.componentTypes.multiDropdownList,
559
- internalComponent: true
595
+ internalComponent: MultiDropdownList.hasInternalComponent()
560
596
  });
561
597
 
562
598
  MultiDropdownList.install = function (Vue) {