instantsearch.js 4.44.1 → 4.45.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/CHANGELOG.md +9 -0
- package/cjs/connectors/hits-per-page/connectHitsPerPage.js +3 -1
- package/cjs/connectors/numeric-menu/connectNumericMenu.js +27 -2
- package/cjs/connectors/rating-menu/connectRatingMenu.js +8 -2
- package/cjs/connectors/sort-by/connectSortBy.js +3 -1
- package/cjs/lib/version.js +1 -1
- package/dist/instantsearch.development.d.ts +20 -0
- package/dist/instantsearch.development.js +98 -8
- package/dist/instantsearch.development.js.map +1 -1
- package/dist/instantsearch.production.d.ts +20 -0
- package/dist/instantsearch.production.min.d.ts +20 -0
- package/dist/instantsearch.production.min.js +2 -2
- package/dist/instantsearch.production.min.js.map +1 -1
- package/es/connectors/hits-per-page/connectHitsPerPage.d.ts +5 -0
- package/es/connectors/hits-per-page/connectHitsPerPage.js +3 -1
- package/es/connectors/numeric-menu/connectNumericMenu.d.ts +8 -0
- package/es/connectors/numeric-menu/connectNumericMenu.js +27 -2
- package/es/connectors/rating-menu/connectRatingMenu.d.ts +2 -0
- package/es/connectors/rating-menu/connectRatingMenu.js +8 -2
- package/es/connectors/sort-by/connectSortBy.d.ts +5 -0
- package/es/connectors/sort-by/connectSortBy.js +3 -1
- package/es/lib/version.d.ts +1 -1
- package/es/lib/version.js +1 -1
- package/package.json +3 -3
|
@@ -50,8 +50,13 @@ export declare type HitsPerPageRenderState = {
|
|
|
50
50
|
refine: (value: number) => void;
|
|
51
51
|
/**
|
|
52
52
|
* Indicates whether or not the search has results.
|
|
53
|
+
* @deprecated Use `canRefine` instead.
|
|
53
54
|
*/
|
|
54
55
|
hasNoResults: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Indicates if search state can be refined.
|
|
58
|
+
*/
|
|
59
|
+
canRefine: boolean;
|
|
55
60
|
};
|
|
56
61
|
export declare type HitsPerPageWidgetDescription = {
|
|
57
62
|
$$type: 'ais.hitsPerPage';
|
|
@@ -119,6 +119,7 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
|
|
|
119
119
|
results = _ref5.results,
|
|
120
120
|
createURL = _ref5.createURL,
|
|
121
121
|
helper = _ref5.helper;
|
|
122
|
+
var canRefine = results ? results.nbHits > 0 : false;
|
|
122
123
|
return {
|
|
123
124
|
items: transformItems(normalizeItems(state), {
|
|
124
125
|
results: results
|
|
@@ -128,7 +129,8 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
|
|
|
128
129
|
state: state,
|
|
129
130
|
createURL: createURL
|
|
130
131
|
}),
|
|
131
|
-
hasNoResults:
|
|
132
|
+
hasNoResults: !canRefine,
|
|
133
|
+
canRefine: canRefine,
|
|
132
134
|
widgetParams: widgetParams
|
|
133
135
|
};
|
|
134
136
|
},
|
|
@@ -56,8 +56,16 @@ export declare type NumericMenuRenderState = {
|
|
|
56
56
|
createURL: CreateURL<NumericMenuRenderStateItem['value']>;
|
|
57
57
|
/**
|
|
58
58
|
* `true` if the last search contains no result
|
|
59
|
+
* @deprecated Use `canRefine` instead.
|
|
59
60
|
*/
|
|
60
61
|
hasNoResults: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Indicates if search state can be refined.
|
|
64
|
+
*
|
|
65
|
+
* This is `true` if the last search contains no result and
|
|
66
|
+
* "All" range is selected
|
|
67
|
+
*/
|
|
68
|
+
canRefine: boolean;
|
|
61
69
|
/**
|
|
62
70
|
* Sets the selected value and trigger a new search
|
|
63
71
|
*/
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
2
|
+
|
|
1
3
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
4
|
|
|
3
5
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
@@ -177,12 +179,35 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
|
177
179
|
});
|
|
178
180
|
}
|
|
179
181
|
|
|
182
|
+
var hasNoResults = results ? results.nbHits === 0 : true;
|
|
183
|
+
var preparedItems = prepareItems(state);
|
|
184
|
+
var allIsSelected = true;
|
|
185
|
+
|
|
186
|
+
var _iterator = _createForOfIteratorHelper(preparedItems),
|
|
187
|
+
_step;
|
|
188
|
+
|
|
189
|
+
try {
|
|
190
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
191
|
+
var item = _step.value;
|
|
192
|
+
|
|
193
|
+
if (item.isRefined && decodeURI(item.value) !== '{}') {
|
|
194
|
+
allIsSelected = false;
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
} catch (err) {
|
|
199
|
+
_iterator.e(err);
|
|
200
|
+
} finally {
|
|
201
|
+
_iterator.f();
|
|
202
|
+
}
|
|
203
|
+
|
|
180
204
|
return {
|
|
181
205
|
createURL: connectorState.createURL(state),
|
|
182
|
-
items: transformItems(
|
|
206
|
+
items: transformItems(preparedItems, {
|
|
183
207
|
results: results
|
|
184
208
|
}),
|
|
185
|
-
hasNoResults:
|
|
209
|
+
hasNoResults: hasNoResults,
|
|
210
|
+
canRefine: !(hasNoResults && allIsSelected),
|
|
186
211
|
refine: connectorState.refine,
|
|
187
212
|
sendEvent: connectorState.sendEvent,
|
|
188
213
|
widgetParams: widgetParams
|
|
@@ -210,6 +210,9 @@ var connectRatingMenu = function connectRatingMenu(renderFn) {
|
|
|
210
210
|
});
|
|
211
211
|
}
|
|
212
212
|
|
|
213
|
+
var refinementIsApplied = false;
|
|
214
|
+
var totalCount = 0;
|
|
215
|
+
|
|
213
216
|
if (results) {
|
|
214
217
|
var facetResults = results.getFacetValues(attribute, {});
|
|
215
218
|
var maxValuesPerFacet = facetResults.length;
|
|
@@ -225,6 +228,7 @@ var connectRatingMenu = function connectRatingMenu(renderFn) {
|
|
|
225
228
|
|
|
226
229
|
var _loop = function _loop(star) {
|
|
227
230
|
var isRefined = refinedStar === star;
|
|
231
|
+
refinementIsApplied = refinementIsApplied || isRefined;
|
|
228
232
|
var count = facetResults.filter(function (f) {
|
|
229
233
|
return Number(f.name) >= star && Number(f.name) <= max;
|
|
230
234
|
}).map(function (f) {
|
|
@@ -232,6 +236,7 @@ var connectRatingMenu = function connectRatingMenu(renderFn) {
|
|
|
232
236
|
}).reduce(function (sum, current) {
|
|
233
237
|
return sum + current;
|
|
234
238
|
}, 0);
|
|
239
|
+
totalCount += count;
|
|
235
240
|
|
|
236
241
|
if (refinedStar && !isRefined && count === 0) {
|
|
237
242
|
// skip count==0 when at least 1 refinement is enabled
|
|
@@ -261,10 +266,11 @@ var connectRatingMenu = function connectRatingMenu(renderFn) {
|
|
|
261
266
|
}
|
|
262
267
|
|
|
263
268
|
facetValues = facetValues.reverse();
|
|
269
|
+
var hasNoResults = results ? results.nbHits === 0 : true;
|
|
264
270
|
return {
|
|
265
271
|
items: facetValues,
|
|
266
|
-
hasNoResults:
|
|
267
|
-
canRefine:
|
|
272
|
+
hasNoResults: hasNoResults,
|
|
273
|
+
canRefine: (!hasNoResults || refinementIsApplied) && totalCount > 0,
|
|
268
274
|
refine: connectorState.toggleRefinementFactory(helper),
|
|
269
275
|
sendEvent: sendEvent,
|
|
270
276
|
createURL: connectorState.createURLFactory({
|
|
@@ -43,8 +43,13 @@ export declare type SortByRenderState = {
|
|
|
43
43
|
refine: (value: string) => void;
|
|
44
44
|
/**
|
|
45
45
|
* `true` if the last search contains no result.
|
|
46
|
+
* @deprecated Use `canRefine` instead.
|
|
46
47
|
*/
|
|
47
48
|
hasNoResults: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* `true` if we can refine.
|
|
51
|
+
*/
|
|
52
|
+
canRefine: boolean;
|
|
48
53
|
};
|
|
49
54
|
export declare type SortByWidgetDescription = {
|
|
50
55
|
$$type: 'ais.sortBy';
|
|
@@ -77,13 +77,15 @@ var connectSortBy = function connectSortBy(renderFn) {
|
|
|
77
77
|
};
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
+
var hasNoResults = results ? results.nbHits === 0 : true;
|
|
80
81
|
return {
|
|
81
82
|
currentRefinement: state.index,
|
|
82
83
|
options: transformItems(items, {
|
|
83
84
|
results: results
|
|
84
85
|
}),
|
|
85
86
|
refine: connectorState.setIndex,
|
|
86
|
-
hasNoResults:
|
|
87
|
+
hasNoResults: hasNoResults,
|
|
88
|
+
canRefine: !hasNoResults && items.length > 0,
|
|
87
89
|
widgetParams: widgetParams
|
|
88
90
|
};
|
|
89
91
|
},
|
package/es/lib/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: "4.
|
|
1
|
+
declare const _default: "4.45.0";
|
|
2
2
|
export default _default;
|
package/es/lib/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export default '4.
|
|
1
|
+
export default '4.45.0';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "instantsearch.js",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.45.0",
|
|
4
4
|
"description": "InstantSearch.js is a JavaScript library for building performant and instant search experiences with Algolia.",
|
|
5
5
|
"homepage": "https://www.algolia.com/doc/guides/building-search-ui/what-is-instantsearch/js/",
|
|
6
6
|
"types": "es/index.d.ts",
|
|
@@ -157,11 +157,11 @@
|
|
|
157
157
|
"bundlesize": [
|
|
158
158
|
{
|
|
159
159
|
"path": "./dist/instantsearch.production.min.js",
|
|
160
|
-
"maxSize": "70.
|
|
160
|
+
"maxSize": "70.50 kB"
|
|
161
161
|
},
|
|
162
162
|
{
|
|
163
163
|
"path": "./dist/instantsearch.development.js",
|
|
164
|
-
"maxSize": "
|
|
164
|
+
"maxSize": "152.00 kB"
|
|
165
165
|
}
|
|
166
166
|
]
|
|
167
167
|
}
|