@appbaseio/reactivesearch-vue 2.0.0-alpha.4 → 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.
- package/dist/@appbaseio/reactivesearch-vue.umd.js +17538 -25422
- package/dist/@appbaseio/reactivesearch-vue.umd.js.map +1 -1
- package/dist/@appbaseio/reactivesearch-vue.umd.min.js +6 -15
- package/dist/@appbaseio/reactivesearch-vue.umd.min.js.map +1 -1
- package/dist/cjs/Button-ad042719.js +59 -0
- package/dist/cjs/Card-f5ab024a.js +27 -0
- package/dist/cjs/{ComponentWrapper-ad3dad02.js → ComponentWrapper-75f88599.js} +42 -56
- package/dist/cjs/Container-29f049b2.js +12 -0
- package/dist/cjs/DropDown-6cf84c47.js +698 -0
- package/dist/cjs/DynamicRangeSlider.js +103 -155
- package/dist/cjs/Flex-d5675ea6.js +48 -0
- package/dist/cjs/FormControlList-fadd792f.js +42 -0
- package/dist/cjs/Input-4b434436.js +74 -0
- package/dist/cjs/ListItem-d57d648d.js +42 -0
- package/dist/cjs/MultiDropdownList.js +124 -240
- package/dist/cjs/MultiList.js +123 -261
- package/dist/cjs/MultiRange.js +87 -133
- package/dist/cjs/{Pagination-71e85fa9.js → Pagination-b5ddc906.js} +70 -83
- package/dist/cjs/PreferencesConsumer-eb265924.js +75 -0
- package/dist/cjs/RangeInput.js +163 -171
- package/dist/cjs/RangeSlider.js +81 -109
- package/dist/cjs/ReactiveBase.js +139 -157
- package/dist/cjs/ReactiveComponent-eb8db4c1.js +2189 -0
- package/dist/cjs/ReactiveComponent.js +46 -340
- package/dist/cjs/ReactiveGoogleMap.js +445 -655
- package/dist/cjs/ReactiveList.js +179 -304
- package/dist/cjs/ResultCard.js +36 -36
- package/dist/cjs/ResultList.js +48 -56
- package/dist/cjs/SelectedFilters.js +62 -69
- package/dist/cjs/SingleDropdownList.js +117 -177
- package/dist/cjs/SingleList.js +121 -205
- package/dist/cjs/SingleRange.js +78 -105
- package/dist/cjs/StateProvider.js +35 -38
- package/dist/cjs/Title-8802a218.js +12 -0
- package/dist/cjs/ToggleButton.js +72 -119
- package/dist/cjs/{_rollupPluginBabelHelpers-c705cbe6.js → _rollupPluginBabelHelpers-f8b843f8.js} +0 -15
- package/dist/cjs/{index-6a167fe0.js → index-d8d8f291.js} +38 -108
- package/dist/cjs/index.js +44 -41
- package/dist/cjs/initReactivesearch.js +63 -150
- package/dist/cjs/install.js +47 -43
- package/dist/cjs/ssr-6907ada3.js +66 -0
- package/dist/cjs/{utils-d6a52588.js → utils-83fd01e9.js} +7 -16
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/{vueTypes-727b7c63.js → vueTypes-1bf00978.js} +8 -19
- package/dist/es/Button-474510e3.js +53 -0
- package/dist/es/{Card-450683f1.js → Card-38cbe652.js} +3 -3
- package/dist/es/{ComponentWrapper-424e86fd.js → ComponentWrapper-5166c76a.js} +42 -56
- package/dist/es/{Container-ba826e96.js → Container-d00219f7.js} +2 -2
- package/dist/es/DropDown-8764360c.js +688 -0
- package/dist/es/DynamicRangeSlider.js +103 -155
- package/dist/es/Flex-a08e22d7.js +46 -0
- package/dist/es/FormControlList-fe6eaee4.js +38 -0
- package/dist/es/Input-4a8ef1f3.js +69 -0
- package/dist/es/{ListItem-cad14c5e.js → ListItem-16756c02.js} +7 -8
- package/dist/es/MultiDropdownList.js +124 -240
- package/dist/es/MultiList.js +123 -261
- package/dist/es/MultiRange.js +87 -133
- package/dist/es/{Pagination-784bf143.js → Pagination-72bd1d9e.js} +70 -83
- package/dist/es/PreferencesConsumer-c276709c.js +73 -0
- package/dist/es/RangeInput.js +163 -170
- package/dist/es/RangeSlider.js +81 -109
- package/dist/es/ReactiveBase.js +138 -155
- package/dist/es/ReactiveComponent-f9fa5780.js +2183 -0
- package/dist/es/ReactiveComponent.js +42 -337
- package/dist/es/ReactiveGoogleMap.js +440 -649
- package/dist/es/ReactiveList.js +177 -301
- package/dist/es/ResultCard.js +36 -36
- package/dist/es/ResultList.js +48 -56
- package/dist/es/SelectedFilters.js +62 -69
- package/dist/es/SingleDropdownList.js +117 -177
- package/dist/es/SingleList.js +121 -205
- package/dist/es/SingleRange.js +78 -105
- package/dist/es/StateProvider.js +36 -39
- package/dist/es/{Title-3342664a.js → Title-863dfa42.js} +2 -2
- package/dist/es/ToggleButton.js +72 -119
- package/dist/es/{_rollupPluginBabelHelpers-76660dab.js → _rollupPluginBabelHelpers-ded08042.js} +0 -15
- package/dist/es/{index-7788a843.js → index-4520a598.js} +39 -107
- package/dist/es/index.js +30 -32
- package/dist/es/initReactivesearch.js +63 -150
- package/dist/es/install.js +49 -41
- package/dist/es/{ssr-b2c0b401.js → ssr-af398f0c.js} +36 -7
- package/dist/es/{utils-9e68acee.js → utils-9e5a16a1.js} +7 -16
- package/dist/es/version.js +1 -1
- package/dist/es/{vueTypes-b8146772.js → vueTypes-f1923c72.js} +8 -19
- package/package.json +10 -9
- package/dist/cjs/Button-446f819e.js +0 -68
- package/dist/cjs/CancelSvg-9f258f4f.js +0 -449
- package/dist/cjs/Card-642547a8.js +0 -30
- package/dist/cjs/Container-daf30918.js +0 -15
- package/dist/cjs/DataSearch-aa04dc6e.js +0 -2352
- package/dist/cjs/DataSearch.js +0 -30
- package/dist/cjs/DropDown-c479bbb0.js +0 -328
- package/dist/cjs/Flex-aa517a13.js +0 -52
- package/dist/cjs/FormControlList-c195a592.js +0 -47
- package/dist/cjs/Input-e6603a7e.js +0 -79
- package/dist/cjs/ListItem-8c9e0d68.js +0 -46
- package/dist/cjs/Title-1de7d0f4.js +0 -15
- package/dist/cjs/install-b97dbac4.js +0 -1409
- package/dist/cjs/ssr-3027b848.js +0 -39
- package/dist/es/Button-d8bc15ea.js +0 -59
- package/dist/es/CancelSvg-4cfae5fd.js +0 -440
- package/dist/es/DataSearch-b86a6675.js +0 -2337
- package/dist/es/DataSearch.js +0 -22
- package/dist/es/DropDown-05a644a5.js +0 -322
- package/dist/es/Flex-1f0795c3.js +0 -47
- package/dist/es/FormControlList-c22d64f6.js +0 -40
- package/dist/es/Input-7a2a9fac.js +0 -71
- package/dist/es/install-ac8a1edb.js +0 -1402
package/dist/cjs/MultiRange.js
CHANGED
|
@@ -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('
|
|
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-
|
|
16
|
+
var vueTypes = require('./vueTypes-1bf00978.js');
|
|
16
17
|
require('@appbaseio/reactivecore/lib/utils/transform');
|
|
17
18
|
require('redux');
|
|
18
|
-
var index = require('./index-
|
|
19
|
-
var ComponentWrapper = require('./ComponentWrapper-
|
|
20
|
-
var
|
|
21
|
-
var
|
|
22
|
-
var
|
|
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
|
-
|
|
26
|
-
|
|
30
|
+
setQueryOptions = configureStore.Actions.setQueryOptions,
|
|
31
|
+
setCustomQuery = configureStore.Actions.setCustomQuery;
|
|
27
32
|
var isEqual = configureStore.helper.isEqual,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
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
|
-
|
|
113
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
},
|
|
210
|
-
"
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
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
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
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
|
-
|
|
312
|
-
Vue.component(
|
|
313
|
-
};
|
|
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.
|
|
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-
|
|
9
|
-
var vueTypes = require('./vueTypes-
|
|
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
|
-
|
|
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(
|
|
34
|
-
var
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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 =
|
|
75
|
+
var pageBtn = vue.createVNode(Button.Button, {
|
|
83
76
|
"class": classNameBtn,
|
|
84
|
-
"
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
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
|
-
},
|
|
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
|
-
|
|
121
|
-
|
|
122
|
-
|
|
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
|
-
}, [
|
|
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
|
-
"
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
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
|
-
},
|
|
132
|
+
}), vue.createVNode(Button.Button, vue.mergeProps(_transformOn({
|
|
133
|
+
click: function click() {
|
|
134
|
+
return props.setPage(0);
|
|
135
|
+
}
|
|
136
|
+
}), {
|
|
147
137
|
"class": className,
|
|
148
|
-
"
|
|
149
|
-
|
|
150
|
-
|
|
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
|
-
}
|
|
154
|
+
}), {
|
|
163
155
|
"class": getClassName(props.innerClass, 'button') || '',
|
|
164
|
-
"
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
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
|
-
}
|
|
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;
|