instantsearch.js 4.37.3 → 4.38.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 +14 -0
- package/cjs/connectors/breadcrumb/connectBreadcrumb.js +3 -1
- package/cjs/connectors/clear-refinements/connectClearRefinements.js +11 -6
- package/cjs/connectors/current-refinements/connectCurrentRefinements.js +6 -2
- package/cjs/connectors/geo-search/connectGeoSearch.js +3 -1
- package/cjs/connectors/hierarchical-menu/connectHierarchicalMenu.js +3 -1
- package/cjs/connectors/hits/connectHits.js +3 -1
- package/cjs/connectors/hits-per-page/connectHitsPerPage.js +3 -1
- package/cjs/connectors/infinite-hits/connectInfiniteHits.js +3 -1
- package/cjs/connectors/menu/connectMenu.js +3 -1
- package/cjs/connectors/numeric-menu/connectNumericMenu.js +5 -3
- package/cjs/connectors/query-rules/connectQueryRules.js +3 -1
- package/cjs/connectors/refinement-list/connectRefinementList.js +8 -3
- package/cjs/connectors/sort-by/connectSortBy.js +3 -1
- package/cjs/lib/version.js +1 -1
- package/dist/instantsearch.development.d.ts +9 -7
- package/dist/instantsearch.development.js +59 -25
- package/dist/instantsearch.development.js.map +1 -1
- package/dist/instantsearch.production.d.ts +9 -7
- package/dist/instantsearch.production.min.d.ts +9 -7
- package/dist/instantsearch.production.min.js +2 -2
- package/dist/instantsearch.production.min.js.map +1 -1
- package/es/connectors/breadcrumb/connectBreadcrumb.js +3 -1
- package/es/connectors/clear-refinements/connectClearRefinements.js +11 -6
- package/es/connectors/current-refinements/connectCurrentRefinements.js +6 -2
- package/es/connectors/dynamic-widgets/connectDynamicWidgets.d.ts +4 -5
- package/es/connectors/geo-search/connectGeoSearch.js +3 -1
- package/es/connectors/hierarchical-menu/connectHierarchicalMenu.js +3 -1
- package/es/connectors/hits/connectHits.js +3 -1
- package/es/connectors/hits-per-page/connectHitsPerPage.js +3 -1
- package/es/connectors/infinite-hits/connectInfiniteHits.js +3 -1
- package/es/connectors/menu/connectMenu.js +3 -1
- package/es/connectors/numeric-menu/connectNumericMenu.js +5 -3
- package/es/connectors/query-rules/connectQueryRules.d.ts +1 -2
- package/es/connectors/query-rules/connectQueryRules.js +3 -1
- package/es/connectors/refinement-list/connectRefinementList.js +8 -3
- 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/es/types/widget.d.ts +4 -1
- package/package.json +1 -1
- package/dist/instantsearch.development.min.d.ts +0 -5246
|
@@ -98,7 +98,9 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
|
|
|
98
98
|
|
|
99
99
|
var facetValues = results.getFacetValues(facetName, {});
|
|
100
100
|
var data = Array.isArray(facetValues.data) ? facetValues.data : [];
|
|
101
|
-
var items = transformItems(shiftItemsValues(prepareItems(data))
|
|
101
|
+
var items = transformItems(shiftItemsValues(prepareItems(data)), {
|
|
102
|
+
results: results
|
|
103
|
+
});
|
|
102
104
|
return items;
|
|
103
105
|
}
|
|
104
106
|
|
|
@@ -80,13 +80,15 @@ var connectClearRefinements = function connectClearRefinements(renderFn) {
|
|
|
80
80
|
},
|
|
81
81
|
getWidgetRenderState: function getWidgetRenderState(_ref2) {
|
|
82
82
|
var createURL = _ref2.createURL,
|
|
83
|
-
scopedResults = _ref2.scopedResults
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
scopedResults = _ref2.scopedResults,
|
|
84
|
+
results = _ref2.results;
|
|
85
|
+
connectorState.attributesToClear = scopedResults.reduce(function (attributesToClear, scopedResult) {
|
|
86
|
+
return attributesToClear.concat(getAttributesToClear({
|
|
86
87
|
scopedResult: scopedResult,
|
|
87
88
|
includedAttributes: includedAttributes,
|
|
88
89
|
excludedAttributes: excludedAttributes,
|
|
89
|
-
transformItems: transformItems
|
|
90
|
+
transformItems: transformItems,
|
|
91
|
+
results: results
|
|
90
92
|
}));
|
|
91
93
|
}, []);
|
|
92
94
|
|
|
@@ -131,7 +133,8 @@ function getAttributesToClear(_ref5) {
|
|
|
131
133
|
var scopedResult = _ref5.scopedResult,
|
|
132
134
|
includedAttributes = _ref5.includedAttributes,
|
|
133
135
|
excludedAttributes = _ref5.excludedAttributes,
|
|
134
|
-
transformItems = _ref5.transformItems
|
|
136
|
+
transformItems = _ref5.transformItems,
|
|
137
|
+
results = _ref5.results;
|
|
135
138
|
var includesQuery = includedAttributes.indexOf('query') !== -1 || excludedAttributes.indexOf('query') === -1;
|
|
136
139
|
return {
|
|
137
140
|
helper: scopedResult.helper,
|
|
@@ -147,7 +150,9 @@ function getAttributesToClear(_ref5) {
|
|
|
147
150
|
attribute === 'query' && includesQuery || // Otherwise, ignore the excluded attributes
|
|
148
151
|
excludedAttributes.indexOf(attribute) === -1
|
|
149
152
|
);
|
|
150
|
-
}))
|
|
153
|
+
})), {
|
|
154
|
+
results: results
|
|
155
|
+
})
|
|
151
156
|
};
|
|
152
157
|
}
|
|
153
158
|
|
|
@@ -74,7 +74,9 @@ var connectCurrentRefinements = function connectCurrentRefinements(renderFn) {
|
|
|
74
74
|
helper: helper,
|
|
75
75
|
includedAttributes: includedAttributes,
|
|
76
76
|
excludedAttributes: excludedAttributes
|
|
77
|
-
})
|
|
77
|
+
}), {
|
|
78
|
+
results: results
|
|
79
|
+
});
|
|
78
80
|
}
|
|
79
81
|
|
|
80
82
|
return scopedResults.reduce(function (accResults, scopedResult) {
|
|
@@ -83,7 +85,9 @@ var connectCurrentRefinements = function connectCurrentRefinements(renderFn) {
|
|
|
83
85
|
helper: scopedResult.helper,
|
|
84
86
|
includedAttributes: includedAttributes,
|
|
85
87
|
excludedAttributes: excludedAttributes
|
|
86
|
-
})
|
|
88
|
+
}), {
|
|
89
|
+
results: results
|
|
90
|
+
}));
|
|
87
91
|
}, []);
|
|
88
92
|
}
|
|
89
93
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { Connector, Widget } from '../../types';
|
|
1
|
+
import type { Connector, TransformItems, TransformItemsMetadata, Widget } from '../../types';
|
|
3
2
|
export declare type DynamicWidgetsRenderState = {
|
|
4
3
|
attributesToRender: string[];
|
|
5
4
|
};
|
|
@@ -20,9 +19,9 @@ export declare type DynamicWidgetsConnectorParams = {
|
|
|
20
19
|
* Function to transform the items to render.
|
|
21
20
|
* The function also exposes the full search response.
|
|
22
21
|
*/
|
|
23
|
-
transformItems
|
|
24
|
-
results:
|
|
25
|
-
}
|
|
22
|
+
transformItems?: TransformItems<string, Omit<TransformItemsMetadata, 'results'> & {
|
|
23
|
+
results: NonNullable<TransformItemsMetadata['results']>;
|
|
24
|
+
}>;
|
|
26
25
|
/**
|
|
27
26
|
* To prevent unneeded extra network requests when widgets mount or unmount,
|
|
28
27
|
* we request all facet values.
|
|
@@ -161,7 +161,9 @@ var connectGeoSearch = function connectGeoSearch(renderFn) {
|
|
|
161
161
|
var state = helper.state;
|
|
162
162
|
var items = results ? transformItems(results.hits.filter(function (hit) {
|
|
163
163
|
return hit._geoloc;
|
|
164
|
-
})
|
|
164
|
+
}), {
|
|
165
|
+
results: results
|
|
166
|
+
}) : [];
|
|
165
167
|
|
|
166
168
|
if (!sendEvent) {
|
|
167
169
|
sendEvent = createSendEventForHits({
|
|
@@ -192,7 +192,9 @@ var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
|
|
|
192
192
|
|
|
193
193
|
var hasExhaustiveItems = (state.maxValuesPerFacet || 0) > getLimit() ? facetItems.length <= getLimit() : facetItems.length < getLimit();
|
|
194
194
|
canToggleShowMore = showMore && (isShowingMore || !hasExhaustiveItems);
|
|
195
|
-
items = transformItems(_prepareFacetValues(facetItems)
|
|
195
|
+
items = transformItems(_prepareFacetValues(facetItems), {
|
|
196
|
+
results: results
|
|
197
|
+
});
|
|
196
198
|
}
|
|
197
199
|
|
|
198
200
|
return {
|
|
@@ -79,7 +79,9 @@ var connectHits = function connectHits(renderFn) {
|
|
|
79
79
|
|
|
80
80
|
var hitsWithAbsolutePosition = addAbsolutePosition(results.hits, results.page, results.hitsPerPage);
|
|
81
81
|
var hitsWithAbsolutePositionAndQueryID = addQueryID(hitsWithAbsolutePosition, results.queryID);
|
|
82
|
-
var transformedHits = transformItems(hitsWithAbsolutePositionAndQueryID
|
|
82
|
+
var transformedHits = transformItems(hitsWithAbsolutePositionAndQueryID, {
|
|
83
|
+
results: results
|
|
84
|
+
});
|
|
83
85
|
return {
|
|
84
86
|
hits: transformedHits,
|
|
85
87
|
results: results,
|
|
@@ -120,7 +120,9 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
|
|
|
120
120
|
createURL = _ref5.createURL,
|
|
121
121
|
helper = _ref5.helper;
|
|
122
122
|
return {
|
|
123
|
-
items: transformItems(normalizeItems(state)
|
|
123
|
+
items: transformItems(normalizeItems(state), {
|
|
124
|
+
results: results
|
|
125
|
+
}),
|
|
124
126
|
refine: connectorState.getRefine(helper),
|
|
125
127
|
createURL: connectorState.createURLFactory({
|
|
126
128
|
state: state,
|
|
@@ -176,7 +176,9 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
176
176
|
|
|
177
177
|
var hitsWithAbsolutePosition = addAbsolutePosition(results.hits, results.page, results.hitsPerPage);
|
|
178
178
|
var hitsWithAbsolutePositionAndQueryID = addQueryID(hitsWithAbsolutePosition, results.queryID);
|
|
179
|
-
var transformedHits = transformItems(hitsWithAbsolutePositionAndQueryID
|
|
179
|
+
var transformedHits = transformItems(hitsWithAbsolutePositionAndQueryID, {
|
|
180
|
+
results: results
|
|
181
|
+
});
|
|
180
182
|
|
|
181
183
|
if (cachedHits[_page] === undefined) {
|
|
182
184
|
cachedHits[_page] = transformedHits;
|
|
@@ -78,8 +78,8 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
|
78
78
|
_ref2$items = _ref2.items,
|
|
79
79
|
items = _ref2$items === void 0 ? [] : _ref2$items,
|
|
80
80
|
_ref2$transformItems = _ref2.transformItems,
|
|
81
|
-
transformItems = _ref2$transformItems === void 0 ? function (
|
|
82
|
-
return
|
|
81
|
+
transformItems = _ref2$transformItems === void 0 ? function (item) {
|
|
82
|
+
return item;
|
|
83
83
|
} : _ref2$transformItems;
|
|
84
84
|
|
|
85
85
|
if (attribute === '') {
|
|
@@ -216,7 +216,9 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
|
216
216
|
|
|
217
217
|
return {
|
|
218
218
|
createURL: connectorState.createURL(state),
|
|
219
|
-
items: transformItems(prepareItems(state)
|
|
219
|
+
items: transformItems(prepareItems(state), {
|
|
220
|
+
results: results
|
|
221
|
+
}),
|
|
220
222
|
hasNoResults: results ? results.nbHits === 0 : true,
|
|
221
223
|
refine: connectorState.refine,
|
|
222
224
|
sendEvent: connectorState.sendEvent,
|
|
@@ -4,11 +4,10 @@ export declare type ParamTrackedFilters = {
|
|
|
4
4
|
[facetName: string]: (facetValues: TrackedFilterRefinement[]) => TrackedFilterRefinement[];
|
|
5
5
|
};
|
|
6
6
|
export declare type ParamTransformRuleContexts = (ruleContexts: string[]) => string[];
|
|
7
|
-
declare type ParamTransformItems = TransformItems<any>;
|
|
8
7
|
export declare type QueryRulesConnectorParams = {
|
|
9
8
|
trackedFilters?: ParamTrackedFilters;
|
|
10
9
|
transformRuleContexts?: ParamTransformRuleContexts;
|
|
11
|
-
transformItems?:
|
|
10
|
+
transformItems?: TransformItems<any>;
|
|
12
11
|
};
|
|
13
12
|
export declare type QueryRulesRenderState = {
|
|
14
13
|
items: any[];
|
|
@@ -152,7 +152,9 @@ var connectQueryRules = function connectQueryRules(_render) {
|
|
|
152
152
|
_ref4$userData = _ref4.userData,
|
|
153
153
|
userData = _ref4$userData === void 0 ? [] : _ref4$userData;
|
|
154
154
|
|
|
155
|
-
var items = transformItems(userData
|
|
155
|
+
var items = transformItems(userData, {
|
|
156
|
+
results: results
|
|
157
|
+
});
|
|
156
158
|
return {
|
|
157
159
|
items: items,
|
|
158
160
|
widgetParams: widgetParams
|
|
@@ -105,7 +105,8 @@ var connectRefinementList = function connectRefinementList(renderFn) {
|
|
|
105
105
|
var createSearchForFacetValues = function createSearchForFacetValues(helper, widget) {
|
|
106
106
|
return function (renderOptions) {
|
|
107
107
|
return function (query) {
|
|
108
|
-
var instantSearchInstance = renderOptions.instantSearchInstance
|
|
108
|
+
var instantSearchInstance = renderOptions.instantSearchInstance,
|
|
109
|
+
searchResults = renderOptions.results;
|
|
109
110
|
|
|
110
111
|
if (query === '' && lastItemsFromMainSearch) {
|
|
111
112
|
// render with previous data from the helper.
|
|
@@ -132,7 +133,9 @@ var connectRefinementList = function connectRefinementList(renderFn) {
|
|
|
132
133
|
value: value,
|
|
133
134
|
label: value
|
|
134
135
|
});
|
|
135
|
-
})
|
|
136
|
+
}), {
|
|
137
|
+
results: searchResults
|
|
138
|
+
});
|
|
136
139
|
renderFn(_objectSpread(_objectSpread({}, widget.getWidgetRenderState(_objectSpread(_objectSpread({}, renderOptions), {}, {
|
|
137
140
|
results: lastResultsFromMainSearch
|
|
138
141
|
}))), {}, {
|
|
@@ -196,7 +199,9 @@ var connectRefinementList = function connectRefinementList(renderFn) {
|
|
|
196
199
|
facetOrdering: sortBy === DEFAULT_SORT
|
|
197
200
|
});
|
|
198
201
|
facetValues = values && Array.isArray(values) ? values : [];
|
|
199
|
-
items = transformItems(facetValues.slice(0, getLimit()).map(formatItems)
|
|
202
|
+
items = transformItems(facetValues.slice(0, getLimit()).map(formatItems), {
|
|
203
|
+
results: results
|
|
204
|
+
});
|
|
200
205
|
var maxValuesPerFacetConfig = state.maxValuesPerFacet;
|
|
201
206
|
var currentLimit = getLimit(); // If the limit is the max number of facet retrieved it is impossible to know
|
|
202
207
|
// if the facets are exhaustive. The only moment we are sure it is exhaustive
|
|
@@ -79,7 +79,9 @@ var connectSortBy = function connectSortBy(renderFn) {
|
|
|
79
79
|
|
|
80
80
|
return {
|
|
81
81
|
currentRefinement: state.index,
|
|
82
|
-
options: transformItems(items
|
|
82
|
+
options: transformItems(items, {
|
|
83
|
+
results: results
|
|
84
|
+
}),
|
|
83
85
|
refine: connectorState.setIndex,
|
|
84
86
|
hasNoResults: results ? results.nbHits === 0 : true,
|
|
85
87
|
widgetParams: widgetParams
|
package/es/lib/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: "4.
|
|
1
|
+
declare const _default: "4.38.0";
|
|
2
2
|
export default _default;
|
package/es/lib/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export default '4.
|
|
1
|
+
export default '4.38.0';
|
package/es/types/widget.d.ts
CHANGED
|
@@ -129,10 +129,13 @@ declare type RenderStateLifeCycle<TWidgetDescription extends WidgetDescription &
|
|
|
129
129
|
export declare type Widget<TWidgetDescription extends WidgetDescription & WidgetParams = {
|
|
130
130
|
$$type: string;
|
|
131
131
|
}> = Expand<RequiredWidgetLifeCycle<TWidgetDescription> & WidgetType<TWidgetDescription> & UiStateLifeCycle<TWidgetDescription> & RenderStateLifeCycle<TWidgetDescription>>;
|
|
132
|
+
export declare type TransformItemsMetadata = {
|
|
133
|
+
results?: SearchResults;
|
|
134
|
+
};
|
|
132
135
|
/**
|
|
133
136
|
* Transforms the given items.
|
|
134
137
|
*/
|
|
135
|
-
export declare type TransformItems<TItem> = (items: TItem[]) => TItem[];
|
|
138
|
+
export declare type TransformItems<TItem, TMetadata = TransformItemsMetadata> = (items: TItem[], metadata: TMetadata) => TItem[];
|
|
136
139
|
/**
|
|
137
140
|
* Transforms the given items.
|
|
138
141
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "instantsearch.js",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.38.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",
|