@appbaseio/reactivesearch-vue 2.0.0-alpha.3 → 3.0.0-alpha.0

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 (108) hide show
  1. package/dist/@appbaseio/reactivesearch-vue.umd.js +17405 -25231
  2. package/dist/@appbaseio/reactivesearch-vue.umd.js.map +1 -1
  3. package/dist/@appbaseio/reactivesearch-vue.umd.min.js +6 -15
  4. package/dist/@appbaseio/reactivesearch-vue.umd.min.js.map +1 -1
  5. package/dist/cjs/Button-ad042719.js +59 -0
  6. package/dist/cjs/Card-f5ab024a.js +27 -0
  7. package/dist/cjs/{ComponentWrapper-ad3dad02.js → ComponentWrapper-75f88599.js} +42 -56
  8. package/dist/cjs/Container-29f049b2.js +12 -0
  9. package/dist/cjs/DropDown-6cf84c47.js +698 -0
  10. package/dist/cjs/DynamicRangeSlider.js +103 -155
  11. package/dist/cjs/Flex-d5675ea6.js +48 -0
  12. package/dist/cjs/FormControlList-fadd792f.js +42 -0
  13. package/dist/cjs/Input-4b434436.js +74 -0
  14. package/dist/cjs/ListItem-d57d648d.js +42 -0
  15. package/dist/cjs/MultiDropdownList.js +124 -240
  16. package/dist/cjs/MultiList.js +123 -261
  17. package/dist/cjs/MultiRange.js +87 -133
  18. package/dist/cjs/{Pagination-71e85fa9.js → Pagination-b5ddc906.js} +70 -83
  19. package/dist/cjs/PreferencesConsumer-eb265924.js +75 -0
  20. package/dist/cjs/RangeInput.js +163 -171
  21. package/dist/cjs/RangeSlider.js +81 -109
  22. package/dist/cjs/ReactiveBase.js +139 -157
  23. package/dist/cjs/ReactiveComponent-eb8db4c1.js +2189 -0
  24. package/dist/cjs/ReactiveComponent.js +46 -340
  25. package/dist/cjs/ReactiveGoogleMap.js +445 -655
  26. package/dist/cjs/ReactiveList.js +179 -304
  27. package/dist/cjs/ResultCard.js +36 -36
  28. package/dist/cjs/ResultList.js +48 -56
  29. package/dist/cjs/SelectedFilters.js +62 -69
  30. package/dist/cjs/SingleDropdownList.js +117 -177
  31. package/dist/cjs/SingleList.js +121 -205
  32. package/dist/cjs/SingleRange.js +78 -105
  33. package/dist/cjs/StateProvider.js +74 -47
  34. package/dist/cjs/Title-8802a218.js +12 -0
  35. package/dist/cjs/ToggleButton.js +72 -119
  36. package/dist/cjs/{_rollupPluginBabelHelpers-c705cbe6.js → _rollupPluginBabelHelpers-f8b843f8.js} +0 -15
  37. package/dist/cjs/{index-6a167fe0.js → index-d8d8f291.js} +38 -108
  38. package/dist/cjs/index.js +44 -41
  39. package/dist/cjs/initReactivesearch.js +69 -152
  40. package/dist/cjs/install.js +47 -43
  41. package/dist/cjs/ssr-6907ada3.js +66 -0
  42. package/dist/cjs/{utils-d6a52588.js → utils-83fd01e9.js} +7 -16
  43. package/dist/cjs/version.js +1 -1
  44. package/dist/cjs/{vueTypes-727b7c63.js → vueTypes-1bf00978.js} +8 -19
  45. package/dist/es/Button-474510e3.js +53 -0
  46. package/dist/es/{Card-450683f1.js → Card-38cbe652.js} +3 -3
  47. package/dist/es/{ComponentWrapper-424e86fd.js → ComponentWrapper-5166c76a.js} +42 -56
  48. package/dist/es/{Container-ba826e96.js → Container-d00219f7.js} +2 -2
  49. package/dist/es/DropDown-8764360c.js +688 -0
  50. package/dist/es/DynamicRangeSlider.js +103 -155
  51. package/dist/es/Flex-a08e22d7.js +46 -0
  52. package/dist/es/FormControlList-fe6eaee4.js +38 -0
  53. package/dist/es/Input-4a8ef1f3.js +69 -0
  54. package/dist/es/{ListItem-cad14c5e.js → ListItem-16756c02.js} +7 -8
  55. package/dist/es/MultiDropdownList.js +124 -240
  56. package/dist/es/MultiList.js +123 -261
  57. package/dist/es/MultiRange.js +87 -133
  58. package/dist/es/{Pagination-784bf143.js → Pagination-72bd1d9e.js} +70 -83
  59. package/dist/es/PreferencesConsumer-c276709c.js +73 -0
  60. package/dist/es/RangeInput.js +163 -170
  61. package/dist/es/RangeSlider.js +81 -109
  62. package/dist/es/ReactiveBase.js +138 -155
  63. package/dist/es/ReactiveComponent-f9fa5780.js +2183 -0
  64. package/dist/es/ReactiveComponent.js +42 -337
  65. package/dist/es/ReactiveGoogleMap.js +440 -649
  66. package/dist/es/ReactiveList.js +177 -301
  67. package/dist/es/ResultCard.js +36 -36
  68. package/dist/es/ResultList.js +48 -56
  69. package/dist/es/SelectedFilters.js +62 -69
  70. package/dist/es/SingleDropdownList.js +117 -177
  71. package/dist/es/SingleList.js +121 -205
  72. package/dist/es/SingleRange.js +78 -105
  73. package/dist/es/StateProvider.js +75 -48
  74. package/dist/es/{Title-3342664a.js → Title-863dfa42.js} +2 -2
  75. package/dist/es/ToggleButton.js +72 -119
  76. package/dist/es/{_rollupPluginBabelHelpers-76660dab.js → _rollupPluginBabelHelpers-ded08042.js} +0 -15
  77. package/dist/es/{index-7788a843.js → index-4520a598.js} +39 -107
  78. package/dist/es/index.js +30 -32
  79. package/dist/es/initReactivesearch.js +69 -152
  80. package/dist/es/install.js +49 -41
  81. package/dist/es/{ssr-b2c0b401.js → ssr-af398f0c.js} +36 -7
  82. package/dist/es/{utils-9e68acee.js → utils-9e5a16a1.js} +7 -16
  83. package/dist/es/version.js +1 -1
  84. package/dist/es/{vueTypes-b8146772.js → vueTypes-f1923c72.js} +8 -19
  85. package/package.json +10 -9
  86. package/dist/cjs/Button-446f819e.js +0 -68
  87. package/dist/cjs/CancelSvg-9f258f4f.js +0 -449
  88. package/dist/cjs/Card-642547a8.js +0 -30
  89. package/dist/cjs/Container-daf30918.js +0 -15
  90. package/dist/cjs/DataSearch-6cf29cf0.js +0 -2323
  91. package/dist/cjs/DataSearch.js +0 -30
  92. package/dist/cjs/DropDown-c479bbb0.js +0 -328
  93. package/dist/cjs/Flex-aa517a13.js +0 -52
  94. package/dist/cjs/FormControlList-c195a592.js +0 -47
  95. package/dist/cjs/Input-e6603a7e.js +0 -79
  96. package/dist/cjs/ListItem-8c9e0d68.js +0 -46
  97. package/dist/cjs/Title-1de7d0f4.js +0 -15
  98. package/dist/cjs/install-42ba1d44.js +0 -1409
  99. package/dist/cjs/ssr-3027b848.js +0 -39
  100. package/dist/es/Button-d8bc15ea.js +0 -59
  101. package/dist/es/CancelSvg-4cfae5fd.js +0 -440
  102. package/dist/es/DataSearch-4888aa43.js +0 -2308
  103. package/dist/es/DataSearch.js +0 -22
  104. package/dist/es/DropDown-05a644a5.js +0 -322
  105. package/dist/es/Flex-1f0795c3.js +0 -47
  106. package/dist/es/FormControlList-c22d64f6.js +0 -40
  107. package/dist/es/Input-7a2a9fac.js +0 -71
  108. package/dist/es/install-80bc2764.js +0 -1402
@@ -6,28 +6,33 @@ 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-c705cbe6.js');
10
- var VueTypes = _interopDefault(require('vue-types'));
11
9
  var constants = require('@appbaseio/reactivecore/lib/utils/constants');
12
- require('emotion');
10
+ var _transformOn = _interopDefault(require('@vue/babel-helper-vue-transform-on'));
11
+ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-f8b843f8.js');
12
+ var vue = require('vue');
13
+ var VueTypes = _interopDefault(require('vue-types'));
13
14
  require('@appbaseio/vue-emotion');
14
15
  require('polished');
15
- var vueTypes = require('./vueTypes-727b7c63.js');
16
+ var vueTypes = require('./vueTypes-1bf00978.js');
16
17
  require('@appbaseio/reactivecore/lib/utils/transform');
17
18
  require('redux');
18
- var index = require('./index-6a167fe0.js');
19
- var ComponentWrapper = require('./ComponentWrapper-ad3dad02.js');
20
- var Title = require('./Title-1de7d0f4.js');
21
- var Container = require('./Container-daf30918.js');
22
- var FormControlList = require('./FormControlList-c195a592.js');
23
-
19
+ var index = require('./index-d8d8f291.js');
20
+ var ComponentWrapper = require('./ComponentWrapper-75f88599.js');
21
+ var PreferencesConsumer = require('./PreferencesConsumer-eb265924.js');
22
+ var Title = require('./Title-8802a218.js');
23
+ var Container = require('./Container-29f049b2.js');
24
+ var FormControlList = require('./FormControlList-fadd792f.js');
25
+
26
+ function _isSlot(s) {
27
+ return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
28
+ }
24
29
  var updateQuery = configureStore.Actions.updateQuery,
25
- setQueryOptions = configureStore.Actions.setQueryOptions,
26
- setCustomQuery = configureStore.Actions.setCustomQuery;
30
+ setQueryOptions = configureStore.Actions.setQueryOptions,
31
+ setCustomQuery = configureStore.Actions.setCustomQuery;
27
32
  var isEqual = configureStore.helper.isEqual,
28
- checkValueChange = configureStore.helper.checkValueChange,
29
- getClassName = configureStore.helper.getClassName,
30
- getOptionsFromQuery = configureStore.helper.getOptionsFromQuery;
33
+ checkValueChange = configureStore.helper.checkValueChange,
34
+ getClassName = configureStore.helper.getClassName,
35
+ getOptionsFromQuery = configureStore.helper.getOptionsFromQuery;
31
36
  var MultiRange = {
32
37
  name: 'MultiRange',
33
38
  data: function data() {
@@ -62,7 +67,6 @@ var MultiRange = {
62
67
  methods: {
63
68
  handleClick: function handleClick(e) {
64
69
  var value = this.$props.value;
65
-
66
70
  if (value === undefined) {
67
71
  this.selectItem(e.target.value);
68
72
  } else {
@@ -72,22 +76,17 @@ var MultiRange = {
72
76
  },
73
77
  selectItem: function selectItem(item, isDefaultValue, props, reset) {
74
78
  var _this = this;
75
-
76
79
  if (isDefaultValue === void 0) {
77
80
  isDefaultValue = false;
78
81
  }
79
-
80
82
  if (props === void 0) {
81
83
  props = this.$props;
82
84
  }
83
-
84
85
  if (reset === void 0) {
85
86
  reset = false;
86
87
  }
87
-
88
88
  var currentValue = this.currentValue,
89
- selectedValues = this.selectedValues;
90
-
89
+ selectedValues = this.selectedValues;
91
90
  if (!item) {
92
91
  currentValue = [];
93
92
  selectedValues = {};
@@ -97,7 +96,6 @@ var MultiRange = {
97
96
  currentValue.forEach(function (value) {
98
97
  values[[value.label]] = true;
99
98
  });
100
-
101
99
  if (reset) {
102
100
  selectedValues = values;
103
101
  } else {
@@ -107,48 +105,37 @@ var MultiRange = {
107
105
  currentValue = currentValue.filter(function (value) {
108
106
  return value.label !== item;
109
107
  });
110
-
111
108
  var _selectedValues = selectedValues,
112
- del = _selectedValues[item],
113
- selected = _rollupPluginBabelHelpers._objectWithoutPropertiesLoose(_selectedValues, [item].map(_rollupPluginBabelHelpers._toPropertyKey));
114
-
109
+ del = _selectedValues[item],
110
+ selected = _rollupPluginBabelHelpers._objectWithoutPropertiesLoose(_selectedValues, [item].map(_rollupPluginBabelHelpers._toPropertyKey));
115
111
  selectedValues = selected;
116
112
  } else {
117
113
  var _extends2;
118
-
119
114
  var currentItems = props.data.filter(function (value) {
120
115
  return item.indexOf(value.label) !== -1;
121
116
  });
122
117
  currentValue = [].concat(currentValue, currentItems);
123
118
  selectedValues = _rollupPluginBabelHelpers._extends({}, selectedValues, (_extends2 = {}, _extends2[typeof item === 'object' ? item.label : item] = true, _extends2));
124
119
  }
125
-
126
120
  var performUpdate = function performUpdate() {
127
121
  _this.currentValue = currentValue;
128
122
  _this.selectedValues = selectedValues;
129
-
130
123
  _this.updateQueryHandler(currentValue, props);
131
-
132
124
  _this.$emit('valueChange', Object.keys(selectedValues));
133
-
134
125
  _this.$emit('value-change', Object.keys(selectedValues));
135
126
  };
136
-
137
127
  checkValueChange(props.componentId, currentValue, props.beforeValueChange, performUpdate);
138
128
  },
139
129
  updateQueryHandler: function updateQueryHandler(value, props) {
140
130
  var customQuery = props.customQuery;
141
131
  var query = MultiRange.defaultQuery(value, props);
142
-
143
132
  if (customQuery) {
144
133
  var _ref = customQuery(value, props) || {};
145
-
146
134
  query = _ref.query;
147
135
  var customQueryOptions = getOptionsFromQuery(customQuery(value, props));
148
136
  index.updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, this.currentValue);
149
137
  this.setQueryOptions(props.componentId, customQueryOptions, false);
150
138
  }
151
-
152
139
  this.updateQuery({
153
140
  componentId: props.componentId,
154
141
  query: query,
@@ -174,7 +161,13 @@ var MultiRange = {
174
161
  },
175
162
  selectedValue: function selectedValue(newVal) {
176
163
  if (!isEqual(this.$data.currentValue, newVal)) {
177
- this.selectItem(newVal, true, undefined, true);
164
+ var processSelectedValues = newVal ? newVal.map(function (item) {
165
+ if (typeof item === 'object' && 'label' in item) {
166
+ return item.label;
167
+ }
168
+ return item;
169
+ }) : null;
170
+ this.selectItem(processSelectedValues, true, undefined, true);
178
171
  }
179
172
  },
180
173
  customQuery: function customQuery(newVal, oldVal) {
@@ -184,11 +177,7 @@ var MultiRange = {
184
177
  }
185
178
  },
186
179
  created: function created() {
187
- if (!this.enableAppbase && this.$props.index) {
188
- console.warn('Warning(ReactiveSearch): In order to use the `index` prop, the `enableAppbase` prop must be set to true in `ReactiveBase`.');
189
- } // Set custom query in store
190
-
191
-
180
+ // Set custom query in store
192
181
  index.updateCustomQuery(this.componentId, this.setCustomQuery, this.$props, this.currentValue);
193
182
  },
194
183
  beforeMount: function beforeMount() {
@@ -201,118 +190,83 @@ var MultiRange = {
201
190
  }
202
191
  },
203
192
  render: function render() {
193
+ var _slot;
204
194
  var _this2 = this;
205
-
206
- var h = arguments[0];
207
- return h(Container.Container, {
195
+ return vue.createVNode(Container.Container, {
208
196
  "class": this.$props.className
209
- }, [this.$props.title && h(Title.Title, {
210
- "class": getClassName(this.$props.innerClass, 'title')
211
- }, [this.$props.title]), h(FormControlList.UL, {
212
- "class": getClassName(this.$props.innerClass, 'list')
213
- }, [this.$props.data.map(function (item) {
214
- var selected = !!_this2.$data.currentValue && _this2.$data.currentValue.label === item.label;
215
- return h("li", {
216
- "key": item.label,
217
- "class": "" + (selected ? 'active' : '')
218
- }, [h(FormControlList.Checkbox, {
219
- "class": getClassName(_this2.$props.innerClass, 'checkbox'),
220
- "attrs": {
221
- "id": _this2.$props.componentId + "-" + item.label,
222
- "name": _this2.$props.componentId,
223
- "value": item.label,
224
- "type": "Checkbox",
225
- "show": _this2.$props.showCheckbox
226
- },
227
- "domProps": _rollupPluginBabelHelpers._extends({}, {
228
- checked: _this2.selectedValues[item.label]
229
- }),
230
- "on": _rollupPluginBabelHelpers._extends({}, {
231
- click: _this2.handleClick
232
- })
233
- }), h("label", {
234
- "class": getClassName(_this2.$props.innerClass, 'label'),
235
- "attrs": {
236
- "for": _this2.$props.componentId + "-" + item.label
237
- }
238
- }, [item.label])]);
239
- })])]);
197
+ }, {
198
+ "default": function _default() {
199
+ return [_this2.$props.title && vue.createVNode(Title.Title, {
200
+ "class": getClassName(_this2.$props.innerClass, 'title')
201
+ }, {
202
+ "default": function _default() {
203
+ return [_this2.$props.title];
204
+ }
205
+ }), vue.createVNode(FormControlList.UL, {
206
+ "class": getClassName(_this2.$props.innerClass, 'list')
207
+ }, _isSlot(_slot = _this2.$props.data.map(function (item) {
208
+ var selected = !!_this2.$data.currentValue && _this2.$data.currentValue.label === item.label;
209
+ return vue.createVNode("li", {
210
+ "key": item.label,
211
+ "class": "" + (selected ? 'active' : '')
212
+ }, [vue.createVNode(FormControlList.Checkbox, vue.mergeProps(_transformOn({
213
+ click: _this2.handleClick
214
+ }), {
215
+ "class": getClassName(_this2.$props.innerClass, 'checkbox'),
216
+ "id": _this2.$props.componentId + "-" + item.label,
217
+ "name": _this2.$props.componentId,
218
+ "value": item.label,
219
+ "type": "Checkbox",
220
+ "show": _this2.$props.showCheckbox,
221
+ "checked": _this2.selectedValues[item.label]
222
+ }), null), vue.createVNode("label", {
223
+ "class": getClassName(_this2.$props.innerClass, 'label'),
224
+ "for": _this2.$props.componentId + "-" + item.label
225
+ }, [item.label])]);
226
+ })) ? _slot : {
227
+ "default": function _default() {
228
+ return [_slot];
229
+ }
230
+ })];
231
+ }
232
+ });
240
233
  }
241
234
  };
242
-
243
235
  MultiRange.parseValue = function (value, props) {
244
236
  return value ? props.data.filter(function (item) {
245
237
  return value.includes(item.label);
246
238
  }) : null;
247
239
  };
248
-
249
- MultiRange.defaultQuery = function (values, props) {
250
- var generateRangeQuery = function generateRangeQuery(dataField, items) {
251
- if (items.length > 0) {
252
- return items.map(function (value) {
253
- var _range;
254
-
255
- return {
256
- range: (_range = {}, _range[dataField] = {
257
- gte: value.start,
258
- lte: value.end,
259
- boost: 2.0
260
- }, _range)
261
- };
262
- });
240
+ MultiRange.defaultQuery = function (value, props) {
241
+ return {
242
+ query: {
243
+ queryFormat: props.queryFormat,
244
+ dataField: props.dataField,
245
+ value: value,
246
+ showMissing: props.showMissing
263
247
  }
264
-
265
- return null;
266
248
  };
267
-
268
- var query = null;
269
-
270
- if (values && values.length) {
271
- query = {
272
- bool: {
273
- should: generateRangeQuery(props.dataField, values),
274
- minimum_should_match: 1,
275
- boost: 1.0
276
- }
277
- };
278
- }
279
-
280
- if (query && props.nestedField) {
281
- return {
282
- query: {
283
- nested: {
284
- path: props.nestedField,
285
- query: query
286
- }
287
- }
288
- };
289
- }
290
-
291
- return query;
292
249
  };
293
-
294
250
  var mapStateToProps = function mapStateToProps(state, props) {
295
251
  return {
296
252
  selectedValue: state.selectedValues[props.componentId] && state.selectedValues[props.componentId].value || null,
297
- componentProps: state.props[props.componentId],
298
- enableAppbase: state.config.enableAppbase
253
+ componentProps: state.props[props.componentId]
299
254
  };
300
255
  };
301
-
302
256
  var mapDispatchtoProps = {
303
257
  updateQuery: updateQuery,
304
258
  setQueryOptions: setQueryOptions,
305
259
  setCustomQuery: setCustomQuery
306
260
  };
307
- var RangeConnected = ComponentWrapper.ComponentWrapper(index.connect(mapStateToProps, mapDispatchtoProps)(MultiRange), {
261
+ var RangeConnected = PreferencesConsumer.PreferencesConsumer(ComponentWrapper.ComponentWrapper(index.connect(mapStateToProps, mapDispatchtoProps)(MultiRange), {
308
262
  componentType: constants.componentTypes.multiRange
309
- });
310
-
311
- MultiRange.install = function (Vue) {
312
- Vue.component(MultiRange.name, RangeConnected);
313
- }; // Add componentType for SSR
314
-
315
-
316
- MultiRange.componentType = constants.componentTypes.multiRange;
263
+ }));
264
+ RangeConnected.name = MultiRange.name;
265
+ RangeConnected.install = function (Vue) {
266
+ Vue.component(RangeConnected.name, RangeConnected);
267
+ };
268
+ // Add componentType for SSR
269
+ RangeConnected.componentType = constants.componentTypes.multiRange;
317
270
 
318
- exports.default = MultiRange;
271
+ exports.RangeConnected = RangeConnected;
272
+ exports.default = RangeConnected;
@@ -4,19 +4,22 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
4
4
 
5
5
  var configureStore = require('@appbaseio/reactivecore');
6
6
  var configureStore__default = _interopDefault(configureStore);
7
+ var _transformOn = _interopDefault(require('@vue/babel-helper-vue-transform-on'));
8
+ var vue = require('vue');
7
9
  var VueTypes = _interopDefault(require('vue-types'));
8
- var Button = require('./Button-446f819e.js');
9
- var vueTypes = require('./vueTypes-727b7c63.js');
10
+ var Button = require('./Button-ad042719.js');
11
+ var vueTypes = require('./vueTypes-1bf00978.js');
10
12
 
13
+ function _isSlot(s) {
14
+ return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
15
+ }
11
16
  var getClassName = configureStore.helper.getClassName,
12
- handleA11yAction = configureStore.helper.handleA11yAction;
13
-
17
+ handleA11yAction = configureStore.helper.handleA11yAction;
14
18
  function getStartPage(totalPages, currentPage, showEndPage) {
15
19
  var midValue = parseInt(totalPages / 2, 10);
16
20
  var start = currentPage - (showEndPage ? Math.ceil(midValue / 2) - 1 : midValue);
17
21
  return start > 1 ? start : 2;
18
22
  }
19
-
20
23
  var Pagination = {
21
24
  name: 'Pagination',
22
25
  functional: true,
@@ -30,151 +33,135 @@ var Pagination = {
30
33
  prevLabel: vueTypes.types.string,
31
34
  nextLabel: vueTypes.types.string
32
35
  },
33
- render: function render(createElement, context) {
34
- var h = arguments[0];
35
- var props = context.props;
36
-
36
+ render: function render(context) {
37
+ var props = context.$props;
37
38
  var onPrevPage = function onPrevPage() {
38
39
  if (props.currentPage) {
39
40
  props.setPage(props.currentPage - 1);
40
41
  }
41
42
  };
42
-
43
43
  var onNextPage = function onNextPage() {
44
44
  if (props.currentPage < props.totalPages - 1) {
45
45
  props.setPage(props.currentPage + 1);
46
46
  }
47
47
  };
48
-
49
48
  if (!props.totalPages) {
50
49
  return null;
51
50
  }
52
-
53
51
  var innerClassName = getClassName(props.innerClass, 'button');
54
52
  var primary = props.currentPage === 0;
55
53
  var className = innerClassName || primary ? innerClassName + " " + (primary ? 'active' : '') : '';
56
-
57
54
  var buildPaginationDOM = function buildPaginationDOM(position) {
58
55
  var pages = props.pages,
59
- currentPage = props.currentPage,
60
- totalPages = props.totalPages,
61
- setPage = props.setPage,
62
- showEndPage = props.showEndPage;
56
+ currentPage = props.currentPage,
57
+ totalPages = props.totalPages,
58
+ setPage = props.setPage,
59
+ showEndPage = props.showEndPage;
63
60
  var start = position === 'start' ? getStartPage(pages, currentPage, showEndPage) : Math.max(2, Math.ceil(totalPages - (pages - 1) / 2 + 1));
64
61
  var paginationButtons = [];
65
62
  var endPage = start;
66
-
67
63
  if (start <= totalPages) {
68
64
  var totalPagesToShow = pages < totalPages ? start + (pages - 1) : totalPages + 1;
69
-
70
65
  if (showEndPage) {
71
66
  totalPagesToShow = position === 'start' ? start + (Math.ceil(pages / 2) - pages % 2) : totalPages + 1;
72
67
  }
73
-
74
68
  if (currentPage > totalPages - pages + 2) {
75
69
  start = Math.max(2, totalPages - pages + 2);
76
70
  totalPagesToShow = start + pages;
77
71
  }
78
-
79
72
  var _loop = function _loop(i) {
80
73
  var activeButton = currentPage === i - 1;
81
74
  var classNameBtn = innerClassName || activeButton ? innerClassName + " " + (activeButton ? 'active' : '') : '';
82
- var pageBtn = h(Button.Button, {
75
+ var pageBtn = vue.createVNode(Button.Button, {
83
76
  "class": classNameBtn,
84
- "attrs": {
85
- "primary": activeButton,
86
- "tabIndex": "0",
87
- "alt": "page-" + i
88
- },
89
- "on": {
90
- "keyPress": function keyPress(event) {
91
- return handleA11yAction(event, function () {
92
- return setPage(i - 1);
93
- });
94
- },
95
- "click": function click() {
77
+ "primary": activeButton,
78
+ "tabIndex": "0",
79
+ "onKeyPress": function onKeyPress(event) {
80
+ return handleA11yAction(event, function () {
96
81
  return setPage(i - 1);
97
- }
82
+ });
83
+ },
84
+ "alt": "page-" + i,
85
+ "onClick": function onClick() {
86
+ return setPage(i - 1);
98
87
  }
99
- }, [i]);
100
-
88
+ }, _isSlot(i) ? i : {
89
+ "default": function _default() {
90
+ return [i];
91
+ }
92
+ });
101
93
  if (i <= totalPages + 1) {
102
94
  paginationButtons.push(pageBtn);
103
-
104
95
  if (i === Math.min(totalPages + 1, totalPagesToShow) - 1) {
105
96
  endPage = i;
106
97
  }
107
98
  }
108
99
  };
109
-
110
100
  for (var i = start; i < Math.min(totalPages + 1, totalPagesToShow); i += 1) {
111
101
  _loop(i);
112
102
  }
113
103
  }
114
-
115
104
  return [paginationButtons, start, endPage];
116
105
  };
117
-
118
106
  var buildIntermediatePaginationDom = function buildIntermediatePaginationDom() {
119
107
  var showEndPage = props.showEndPage,
120
- currentPage = props.currentPage,
121
- totalPages = props.totalPages,
122
- pages = props.pages;
108
+ currentPage = props.currentPage,
109
+ totalPages = props.totalPages,
110
+ pages = props.pages;
123
111
  if (!showEndPage) return buildPaginationDOM('start')[0];
124
-
125
112
  if (currentPage <= totalPages - pages + 2 || totalPages < pages) {
126
113
  return buildPaginationDOM('start')[0];
127
114
  }
128
-
129
115
  return null;
130
116
  };
131
-
132
- return h("div", {
117
+ return vue.createVNode("div", {
133
118
  "class": Button.pagination + " " + getClassName(props.innerClass, 'pagination')
134
- }, [h(Button.Button, {
119
+ }, [vue.createVNode(Button.Button, vue.mergeProps(_transformOn({
120
+ click: onPrevPage,
121
+ 'key-press': function keyPress(event) {
122
+ return handleA11yAction(event, onPrevPage);
123
+ }
124
+ }), {
135
125
  "class": getClassName(props.innerClass, 'button') || '',
136
- "attrs": {
137
- "disabled": props.currentPage === 0,
138
- "tabIndex": "0"
139
- },
140
- "on": {
141
- "keyPress": function keyPress(event) {
142
- return handleA11yAction(event, onPrevPage);
143
- },
144
- "click": onPrevPage
126
+ "disabled": props.currentPage === 0,
127
+ "tabIndex": "0"
128
+ }), {
129
+ "default": function _default() {
130
+ return [props.prevLabel || 'Prev'];
145
131
  }
146
- }, [props.prevLabel || 'Prev']), h(Button.Button, {
132
+ }), vue.createVNode(Button.Button, vue.mergeProps(_transformOn({
133
+ click: function click() {
134
+ return props.setPage(0);
135
+ }
136
+ }), {
147
137
  "class": className,
148
- "attrs": {
149
- "primary": primary,
150
- "tabIndex": "0"
151
- },
152
- "on": {
153
- "keyPress": function keyPress(event) {
154
- return handleA11yAction(event, function () {
155
- return props.setPage(0);
156
- });
157
- },
158
- "click": function click() {
138
+ "primary": primary,
139
+ "onKeyPress": function onKeyPress(event) {
140
+ return handleA11yAction(event, function () {
159
141
  return props.setPage(0);
160
- }
142
+ });
143
+ },
144
+ "tabIndex": "0"
145
+ }), {
146
+ "default": function _default() {
147
+ return [vue.createTextVNode("1")];
148
+ }
149
+ }), props.showEndPage && props.currentPage >= Math.floor(props.pages / 2) + !!(props.pages % 2) && buildPaginationDOM('start')[1] !== 2 ? vue.createVNode("span", null, [vue.createTextVNode("...")]) : null, buildIntermediatePaginationDom(), props.showEndPage && props.pages > 2 && props.currentPage <= props.totalPages - Math.ceil(props.pages * 0.75) && buildPaginationDOM('start')[2] !== buildPaginationDOM('end')[1] - 1 ? vue.createVNode("span", null, [vue.createTextVNode("...")]) : null, props.showEndPage && props.totalPages >= props.pages && buildPaginationDOM('end')[0], vue.createVNode(Button.Button, vue.mergeProps(_transformOn({
150
+ click: onNextPage,
151
+ 'key-press': function keyPress(event) {
152
+ return handleA11yAction(event, onNextPage);
161
153
  }
162
- }, ["1"]), props.showEndPage && props.currentPage >= Math.floor(props.pages / 2) + !!(props.pages % 2) && buildPaginationDOM('start')[1] !== 2 ? h("span", ["..."]) : null, buildIntermediatePaginationDom(), props.showEndPage && props.pages > 2 && props.currentPage <= props.totalPages - Math.ceil(props.pages * 0.75) && buildPaginationDOM('start')[2] !== buildPaginationDOM('end')[1] - 1 ? h("span", ["..."]) : null, props.showEndPage && props.totalPages >= props.pages && buildPaginationDOM('end')[0], h(Button.Button, {
154
+ }), {
163
155
  "class": getClassName(props.innerClass, 'button') || '',
164
- "attrs": {
165
- "disabled": props.currentPage >= props.totalPages - 1,
166
- "tabIndex": "0"
167
- },
168
- "on": {
169
- "keyPress": function keyPress(event) {
170
- return handleA11yAction(event, onNextPage);
171
- },
172
- "click": onNextPage
156
+ "disabled": props.currentPage >= props.totalPages - 1,
157
+ "tabIndex": "0"
158
+ }), {
159
+ "default": function _default() {
160
+ return [props.nextLabel || 'Next'];
173
161
  }
174
- }, [props.nextLabel || 'Next'])]);
162
+ })]);
175
163
  }
176
164
  };
177
-
178
165
  Pagination.install = function (Vue) {
179
166
  Vue.component(Pagination.name, Pagination);
180
167
  };
@@ -0,0 +1,75 @@
1
+ 'use strict';
2
+
3
+ var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-f8b843f8.js');
4
+ var vue = require('vue');
5
+ var index = require('./index-d8d8f291.js');
6
+
7
+ var deepValue = function deepValue(o, p) {
8
+ return p.split('.').reduce(function (a, v) {
9
+ return a ? a[v] : null;
10
+ }, o);
11
+ };
12
+ /**
13
+ * PreferencesConsumer reads the preferences from SearchPreferencesContext
14
+ * and set the props from preferences to the component
15
+ *
16
+ */
17
+ var PreferencesConsumer = function PreferencesConsumer(component) {
18
+ return {
19
+ name: 'PreferencesConsumer',
20
+ inject: {
21
+ $searchPreferences: {
22
+ "default": null
23
+ }
24
+ },
25
+ render: function render() {
26
+ var _this = this;
27
+ var userProps = Object.keys(this.$attrs).reduce(function (result, key) {
28
+ var _extends2;
29
+ return _rollupPluginBabelHelpers._extends({}, result, (_extends2 = {}, _extends2[index.getCamelCase(key)] = _this.$attrs[key], _extends2));
30
+ }, {});
31
+ var context = this.$searchPreferences;
32
+ if (!userProps || !userProps.componentId) {
33
+ throw Error('ReactiveSearch: componentId is required');
34
+ }
35
+ var componentId = userProps.componentId;
36
+ var preferencesPath = userProps.preferencesPath;
37
+ var preferences;
38
+ if (context) {
39
+ if (preferencesPath) {
40
+ // read preferences from path
41
+ preferences = deepValue(context, preferencesPath);
42
+ } else {
43
+ preferences = deepValue(context, ['componentSettings', componentId].join('.'));
44
+ // read preferences from componentSettings
45
+ }
46
+ }
47
+ // Retrieve component specific preferences
48
+ var componentProps = userProps;
49
+ if (preferences) {
50
+ if (preferences.rsConfig) {
51
+ componentProps = _rollupPluginBabelHelpers._extends({}, preferences.rsConfig, componentProps);
52
+ } else {
53
+ componentProps = _rollupPluginBabelHelpers._extends({}, preferences, componentProps);
54
+ }
55
+ if (preferences.enabled !== undefined && !preferences.enabled) {
56
+ return null;
57
+ }
58
+ }
59
+ // Parse component props
60
+ Object.keys(componentProps).forEach(function (p) {
61
+ if (typeof componentProps[p] === 'string') {
62
+ if (['defaultQuery', 'customQuery', 'setOption'].includes(p)) {
63
+ // eslint-disable-next-line
64
+ componentProps[p] = eval(componentProps[p]);
65
+ }
66
+ }
67
+ });
68
+ return vue.h(component, {
69
+ attrs: componentProps
70
+ }, this.$slots);
71
+ }
72
+ };
73
+ };
74
+
75
+ exports.PreferencesConsumer = PreferencesConsumer;