instantsearch.js 4.56.4 → 4.56.5
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/cjs/connectors/breadcrumb/connectBreadcrumb.js +31 -4
- package/cjs/connectors/hierarchical-menu/connectHierarchicalMenu.js +9 -3
- package/cjs/connectors/hits-per-page/connectHitsPerPage.js +12 -3
- package/cjs/connectors/menu/connectMenu.js +7 -1
- package/cjs/connectors/numeric-menu/connectNumericMenu.js +7 -1
- package/cjs/connectors/pagination/connectPagination.js +7 -5
- package/cjs/connectors/rating-menu/connectRatingMenu.js +12 -3
- package/cjs/connectors/refinement-list/connectRefinementList.js +7 -1
- package/cjs/connectors/toggle-refinement/connectToggleRefinement.js +15 -3
- package/cjs/lib/version.js +1 -1
- package/cjs/middlewares/createRouterMiddleware.js +9 -1
- package/cjs/widgets/index/index.js +6 -3
- package/dist/instantsearch.development.d.ts +7 -3
- package/dist/instantsearch.development.js +124 -30
- package/dist/instantsearch.development.js.map +1 -1
- package/dist/instantsearch.production.d.ts +7 -3
- package/dist/instantsearch.production.min.d.ts +7 -3
- package/dist/instantsearch.production.min.js +2 -2
- package/dist/instantsearch.production.min.js.map +1 -1
- package/es/connectors/breadcrumb/connectBreadcrumb.js +31 -4
- package/es/connectors/hierarchical-menu/connectHierarchicalMenu.js +9 -3
- package/es/connectors/hits-per-page/connectHitsPerPage.d.ts +5 -1
- package/es/connectors/hits-per-page/connectHitsPerPage.js +12 -3
- package/es/connectors/menu/connectMenu.js +7 -1
- package/es/connectors/numeric-menu/connectNumericMenu.js +7 -1
- package/es/connectors/pagination/connectPagination.js +7 -5
- package/es/connectors/rating-menu/connectRatingMenu.js +12 -3
- package/es/connectors/refinement-list/connectRefinementList.js +7 -1
- package/es/connectors/toggle-refinement/connectToggleRefinement.d.ts +1 -1
- package/es/connectors/toggle-refinement/connectToggleRefinement.js +15 -3
- package/es/lib/utils/render-args.d.ts +222 -2
- package/es/lib/version.d.ts +1 -1
- package/es/lib/version.js +1 -1
- package/es/middlewares/createRouterMiddleware.js +9 -1
- package/es/types/widget.d.ts +1 -1
- package/es/widgets/index/index.d.ts +1 -1
- package/es/widgets/index/index.js +6 -3
- package/package.json +5 -5
|
@@ -67,6 +67,7 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
|
|
|
67
67
|
});
|
|
68
68
|
},
|
|
69
69
|
getWidgetRenderState: function getWidgetRenderState(_ref2) {
|
|
70
|
+
var _this = this;
|
|
70
71
|
var helper = _ref2.helper,
|
|
71
72
|
createURL = _ref2.createURL,
|
|
72
73
|
results = _ref2.results,
|
|
@@ -90,7 +91,12 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
|
|
|
90
91
|
var items = getItems();
|
|
91
92
|
if (!connectorState.createURL) {
|
|
92
93
|
connectorState.createURL = function (facetValue) {
|
|
93
|
-
return createURL(
|
|
94
|
+
return createURL(function (uiState) {
|
|
95
|
+
return _this.getWidgetUiState(uiState, {
|
|
96
|
+
searchParameters: getRefinedState(helper.state, facetValue),
|
|
97
|
+
helper: helper
|
|
98
|
+
});
|
|
99
|
+
});
|
|
94
100
|
};
|
|
95
101
|
}
|
|
96
102
|
if (!connectorState.refine) {
|
|
@@ -106,18 +112,39 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
|
|
|
106
112
|
widgetParams: widgetParams
|
|
107
113
|
};
|
|
108
114
|
},
|
|
109
|
-
|
|
115
|
+
getWidgetUiState: function getWidgetUiState(uiState, _ref3) {
|
|
116
|
+
var searchParameters = _ref3.searchParameters;
|
|
117
|
+
var path = searchParameters.getHierarchicalFacetBreadcrumb(hierarchicalFacetName);
|
|
118
|
+
if (!path.length) {
|
|
119
|
+
return uiState;
|
|
120
|
+
}
|
|
121
|
+
return _objectSpread(_objectSpread({}, uiState), {}, {
|
|
122
|
+
hierarchicalMenu: _objectSpread(_objectSpread({}, uiState.hierarchicalMenu), {}, _defineProperty({}, hierarchicalFacetName, path))
|
|
123
|
+
});
|
|
124
|
+
},
|
|
125
|
+
getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref4) {
|
|
126
|
+
var uiState = _ref4.uiState;
|
|
127
|
+
var values = uiState.hierarchicalMenu && uiState.hierarchicalMenu[hierarchicalFacetName];
|
|
128
|
+
if (searchParameters.isConjunctiveFacet(hierarchicalFacetName) || searchParameters.isDisjunctiveFacet(hierarchicalFacetName)) {
|
|
129
|
+
process.env.NODE_ENV === 'development' ? warning(false, "HierarchicalMenu: Attribute \"".concat(hierarchicalFacetName, "\" is already used by another widget applying conjunctive or disjunctive faceting.\nAs this is not supported, please make sure to remove this other widget or this HierarchicalMenu widget will not work at all.")) : void 0;
|
|
130
|
+
return searchParameters;
|
|
131
|
+
}
|
|
110
132
|
if (searchParameters.isHierarchicalFacet(hierarchicalFacetName)) {
|
|
111
133
|
var facet = searchParameters.getHierarchicalFacetByName(hierarchicalFacetName);
|
|
112
134
|
process.env.NODE_ENV === 'development' ? warning(isEqual(facet.attributes, attributes) && facet.separator === separator && facet.rootPath === rootPath, 'Using Breadcrumb and HierarchicalMenu on the same facet with different options overrides the configuration of the HierarchicalMenu.') : void 0;
|
|
113
|
-
return searchParameters;
|
|
114
135
|
}
|
|
115
|
-
|
|
136
|
+
var withFacetConfiguration = searchParameters.removeHierarchicalFacet(hierarchicalFacetName).addHierarchicalFacet({
|
|
116
137
|
name: hierarchicalFacetName,
|
|
117
138
|
attributes: attributes,
|
|
118
139
|
separator: separator,
|
|
119
140
|
rootPath: rootPath
|
|
120
141
|
});
|
|
142
|
+
if (!values) {
|
|
143
|
+
return withFacetConfiguration.setQueryParameters({
|
|
144
|
+
hierarchicalFacetsRefinements: _objectSpread(_objectSpread({}, withFacetConfiguration.hierarchicalFacetsRefinements), {}, _defineProperty({}, hierarchicalFacetName, []))
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
return withFacetConfiguration.addHierarchicalFacetRefinement(hierarchicalFacetName, values.join(separator));
|
|
121
148
|
}
|
|
122
149
|
};
|
|
123
150
|
};
|
|
@@ -130,6 +130,7 @@ var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
|
|
|
130
130
|
});
|
|
131
131
|
},
|
|
132
132
|
getWidgetRenderState: function getWidgetRenderState(_ref4) {
|
|
133
|
+
var _this = this;
|
|
133
134
|
var results = _ref4.results,
|
|
134
135
|
state = _ref4.state,
|
|
135
136
|
createURL = _ref4.createURL,
|
|
@@ -139,9 +140,14 @@ var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
|
|
|
139
140
|
var canToggleShowMore = false;
|
|
140
141
|
|
|
141
142
|
// Bind createURL to this specific attribute
|
|
142
|
-
function _createURL(facetValue) {
|
|
143
|
-
return createURL(
|
|
144
|
-
|
|
143
|
+
var _createURL = function _createURL(facetValue) {
|
|
144
|
+
return createURL(function (uiState) {
|
|
145
|
+
return _this.getWidgetUiState(uiState, {
|
|
146
|
+
searchParameters: state.resetPage().toggleFacetRefinement(hierarchicalFacetName, facetValue),
|
|
147
|
+
helper: helper
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
};
|
|
145
151
|
if (!sendEvent) {
|
|
146
152
|
sendEvent = createSendEventForFacet({
|
|
147
153
|
instantSearchInstance: instantSearchInstance,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Connector, TransformItems, WidgetRenderState } from '../../types';
|
|
1
|
+
import type { Connector, TransformItems, CreateURL, WidgetRenderState } from '../../types';
|
|
2
2
|
export type HitsPerPageRenderStateItem = {
|
|
3
3
|
/**
|
|
4
4
|
* Label to display in the option.
|
|
@@ -44,6 +44,10 @@ export type HitsPerPageRenderState = {
|
|
|
44
44
|
* Array of objects defining the different values and labels.
|
|
45
45
|
*/
|
|
46
46
|
items: HitsPerPageRenderStateItem[];
|
|
47
|
+
/**
|
|
48
|
+
* Creates the URL for a single item name in the list.
|
|
49
|
+
*/
|
|
50
|
+
createURL: CreateURL<HitsPerPageConnectorParamsItem['value']>;
|
|
47
51
|
/**
|
|
48
52
|
* Sets the number of hits per page and triggers a search.
|
|
49
53
|
*/
|
|
@@ -55,9 +55,16 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
|
|
|
55
55
|
},
|
|
56
56
|
createURLFactory: function createURLFactory(_ref3) {
|
|
57
57
|
var state = _ref3.state,
|
|
58
|
-
createURL = _ref3.createURL
|
|
58
|
+
createURL = _ref3.createURL,
|
|
59
|
+
getWidgetUiState = _ref3.getWidgetUiState,
|
|
60
|
+
helper = _ref3.helper;
|
|
59
61
|
return function (value) {
|
|
60
|
-
return createURL(
|
|
62
|
+
return createURL(function (uiState) {
|
|
63
|
+
return getWidgetUiState(uiState, {
|
|
64
|
+
searchParameters: state.resetPage().setQueryParameter('hitsPerPage', !value && value !== 0 ? undefined : value),
|
|
65
|
+
helper: helper
|
|
66
|
+
});
|
|
67
|
+
});
|
|
61
68
|
};
|
|
62
69
|
}
|
|
63
70
|
};
|
|
@@ -112,7 +119,9 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
|
|
|
112
119
|
refine: connectorState.getRefine(helper),
|
|
113
120
|
createURL: connectorState.createURLFactory({
|
|
114
121
|
state: state,
|
|
115
|
-
createURL: createURL
|
|
122
|
+
createURL: createURL,
|
|
123
|
+
getWidgetUiState: this.getWidgetUiState,
|
|
124
|
+
helper: helper
|
|
116
125
|
}),
|
|
117
126
|
hasNoResults: !canRefine,
|
|
118
127
|
canRefine: canRefine,
|
|
@@ -97,6 +97,7 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
97
97
|
});
|
|
98
98
|
},
|
|
99
99
|
getWidgetRenderState: function getWidgetRenderState(renderOptions) {
|
|
100
|
+
var _this = this;
|
|
100
101
|
var results = renderOptions.results,
|
|
101
102
|
createURL = renderOptions.createURL,
|
|
102
103
|
instantSearchInstance = renderOptions.instantSearchInstance,
|
|
@@ -113,7 +114,12 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
113
114
|
}
|
|
114
115
|
if (!_createURL) {
|
|
115
116
|
_createURL = function _createURL(facetValue) {
|
|
116
|
-
return createURL(
|
|
117
|
+
return createURL(function (uiState) {
|
|
118
|
+
return _this.getWidgetUiState(uiState, {
|
|
119
|
+
searchParameters: helper.state.resetPage().toggleFacetRefinement(attribute, facetValue),
|
|
120
|
+
helper: helper
|
|
121
|
+
});
|
|
122
|
+
});
|
|
117
123
|
};
|
|
118
124
|
}
|
|
119
125
|
if (!_refine) {
|
|
@@ -129,6 +129,7 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
|
129
129
|
});
|
|
130
130
|
},
|
|
131
131
|
getWidgetRenderState: function getWidgetRenderState(_ref7) {
|
|
132
|
+
var _this = this;
|
|
132
133
|
var results = _ref7.results,
|
|
133
134
|
state = _ref7.state,
|
|
134
135
|
instantSearchInstance = _ref7.instantSearchInstance,
|
|
@@ -144,7 +145,12 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
|
144
145
|
if (!connectorState.createURL) {
|
|
145
146
|
connectorState.createURL = function (newState) {
|
|
146
147
|
return function (facetValue) {
|
|
147
|
-
return createURL(
|
|
148
|
+
return createURL(function (uiState) {
|
|
149
|
+
return _this.getWidgetUiState(uiState, {
|
|
150
|
+
searchParameters: getRefinedState(newState, attribute, facetValue),
|
|
151
|
+
helper: helper
|
|
152
|
+
});
|
|
153
|
+
});
|
|
148
154
|
};
|
|
149
155
|
};
|
|
150
156
|
}
|
|
@@ -81,10 +81,12 @@ var connectPagination = function connectPagination(renderFn) {
|
|
|
81
81
|
};
|
|
82
82
|
}
|
|
83
83
|
if (!connectorState.createURL) {
|
|
84
|
-
connectorState.createURL = function (
|
|
85
|
-
return function (
|
|
86
|
-
return
|
|
87
|
-
|
|
84
|
+
connectorState.createURL = function (page) {
|
|
85
|
+
return createURL(function (uiState) {
|
|
86
|
+
return _objectSpread(_objectSpread({}, uiState), {}, {
|
|
87
|
+
page: page
|
|
88
|
+
});
|
|
89
|
+
});
|
|
88
90
|
};
|
|
89
91
|
}
|
|
90
92
|
var page = state.page || 0;
|
|
@@ -94,7 +96,7 @@ var connectPagination = function connectPagination(renderFn) {
|
|
|
94
96
|
pager.currentPage = page;
|
|
95
97
|
pager.total = nbPages;
|
|
96
98
|
return {
|
|
97
|
-
createURL: connectorState.createURL
|
|
99
|
+
createURL: connectorState.createURL,
|
|
98
100
|
refine: connectorState.refine,
|
|
99
101
|
canRefine: nbPages > 1,
|
|
100
102
|
currentRefinement: page,
|
|
@@ -136,9 +136,16 @@ var connectRatingMenu = function connectRatingMenu(renderFn) {
|
|
|
136
136
|
},
|
|
137
137
|
createURLFactory: function createURLFactory(_ref4) {
|
|
138
138
|
var state = _ref4.state,
|
|
139
|
-
createURL = _ref4.createURL
|
|
139
|
+
createURL = _ref4.createURL,
|
|
140
|
+
getWidgetUiState = _ref4.getWidgetUiState,
|
|
141
|
+
helper = _ref4.helper;
|
|
140
142
|
return function (value) {
|
|
141
|
-
return createURL(
|
|
143
|
+
return createURL(function (uiState) {
|
|
144
|
+
return getWidgetUiState(uiState, {
|
|
145
|
+
searchParameters: getRefinedState(state, value),
|
|
146
|
+
helper: helper
|
|
147
|
+
});
|
|
148
|
+
});
|
|
142
149
|
};
|
|
143
150
|
}
|
|
144
151
|
};
|
|
@@ -234,7 +241,9 @@ var connectRatingMenu = function connectRatingMenu(renderFn) {
|
|
|
234
241
|
sendEvent: sendEvent,
|
|
235
242
|
createURL: connectorState.createURLFactory({
|
|
236
243
|
state: state,
|
|
237
|
-
createURL: createURL
|
|
244
|
+
createURL: createURL,
|
|
245
|
+
helper: helper,
|
|
246
|
+
getWidgetUiState: this.getWidgetUiState
|
|
238
247
|
}),
|
|
239
248
|
widgetParams: widgetParams
|
|
240
249
|
};
|
|
@@ -157,6 +157,7 @@ var connectRefinementList = function connectRefinementList(renderFn) {
|
|
|
157
157
|
});
|
|
158
158
|
},
|
|
159
159
|
getWidgetRenderState: function getWidgetRenderState(renderOptions) {
|
|
160
|
+
var _this = this;
|
|
160
161
|
var results = renderOptions.results,
|
|
161
162
|
state = renderOptions.state,
|
|
162
163
|
_createURL = renderOptions.createURL,
|
|
@@ -210,7 +211,12 @@ var connectRefinementList = function connectRefinementList(renderFn) {
|
|
|
210
211
|
var canToggleShowMore = canShowLess || canShowMore;
|
|
211
212
|
return {
|
|
212
213
|
createURL: function createURL(facetValue) {
|
|
213
|
-
return _createURL(
|
|
214
|
+
return _createURL(function (uiState) {
|
|
215
|
+
return _this.getWidgetUiState(uiState, {
|
|
216
|
+
searchParameters: state.resetPage().toggleFacetRefinement(attribute, facetValue),
|
|
217
|
+
helper: helper
|
|
218
|
+
});
|
|
219
|
+
});
|
|
214
220
|
},
|
|
215
221
|
items: items,
|
|
216
222
|
refine: triggerRefine,
|
|
@@ -119,7 +119,9 @@ var connectToggleRefinement = function connectToggleRefinement(renderFn) {
|
|
|
119
119
|
var connectorState = {
|
|
120
120
|
createURLFactory: function createURLFactory(isRefined, _ref4) {
|
|
121
121
|
var state = _ref4.state,
|
|
122
|
-
createURL = _ref4.createURL
|
|
122
|
+
createURL = _ref4.createURL,
|
|
123
|
+
getWidgetUiState = _ref4.getWidgetUiState,
|
|
124
|
+
helper = _ref4.helper;
|
|
123
125
|
return function () {
|
|
124
126
|
state = state.resetPage();
|
|
125
127
|
var valuesToRemove = isRefined ? on : off;
|
|
@@ -134,7 +136,12 @@ var connectToggleRefinement = function connectToggleRefinement(renderFn) {
|
|
|
134
136
|
state = state.addDisjunctiveFacetRefinement(attribute, v);
|
|
135
137
|
});
|
|
136
138
|
}
|
|
137
|
-
return createURL(
|
|
139
|
+
return createURL(function (uiState) {
|
|
140
|
+
return getWidgetUiState(uiState, {
|
|
141
|
+
searchParameters: state,
|
|
142
|
+
helper: helper
|
|
143
|
+
});
|
|
144
|
+
});
|
|
138
145
|
};
|
|
139
146
|
}
|
|
140
147
|
};
|
|
@@ -239,7 +246,9 @@ var connectToggleRefinement = function connectToggleRefinement(renderFn) {
|
|
|
239
246
|
},
|
|
240
247
|
createURL: connectorState.createURLFactory(isRefined, {
|
|
241
248
|
state: state,
|
|
242
|
-
createURL: createURL
|
|
249
|
+
createURL: createURL,
|
|
250
|
+
helper: helper,
|
|
251
|
+
getWidgetUiState: this.getWidgetUiState
|
|
243
252
|
}),
|
|
244
253
|
sendEvent: sendEvent,
|
|
245
254
|
canRefine: Boolean(results ? nextRefinement.count : null),
|
|
@@ -253,6 +262,9 @@ var connectToggleRefinement = function connectToggleRefinement(renderFn) {
|
|
|
253
262
|
return searchParameters.isDisjunctiveFacetRefined(attribute, v);
|
|
254
263
|
});
|
|
255
264
|
if (!isRefined) {
|
|
265
|
+
var _uiState$toggle;
|
|
266
|
+
// This needs to be done in the case `uiState` comes from `createURL`
|
|
267
|
+
(_uiState$toggle = uiState.toggle) === null || _uiState$toggle === void 0 ? true : delete _uiState$toggle[attribute];
|
|
256
268
|
return uiState;
|
|
257
269
|
}
|
|
258
270
|
return _objectSpread(_objectSpread({}, uiState), {}, {
|
|
@@ -8,7 +8,117 @@ export declare function createInitArgs(instantSearchInstance: InstantSearch, par
|
|
|
8
8
|
state: import("algoliasearch-helper").SearchParameters;
|
|
9
9
|
renderState: import("../../types").RenderState;
|
|
10
10
|
templatesConfig: Record<string, unknown>;
|
|
11
|
-
createURL: (
|
|
11
|
+
createURL: (nextState: import("algoliasearch-helper").SearchParameters | ((state: Partial<{
|
|
12
|
+
query: string;
|
|
13
|
+
} & {
|
|
14
|
+
configure: import("algoliasearch-helper").PlainSearchParameters;
|
|
15
|
+
} & {
|
|
16
|
+
geoSearch: {
|
|
17
|
+
boundingBox: string;
|
|
18
|
+
};
|
|
19
|
+
} & {
|
|
20
|
+
hierarchicalMenu: {
|
|
21
|
+
[rootAttribute: string]: string[];
|
|
22
|
+
};
|
|
23
|
+
} & {
|
|
24
|
+
hitsPerPage: number;
|
|
25
|
+
} & {
|
|
26
|
+
page: number;
|
|
27
|
+
} & {
|
|
28
|
+
menu: {
|
|
29
|
+
[attribute: string]: string;
|
|
30
|
+
};
|
|
31
|
+
} & {
|
|
32
|
+
numericMenu: {
|
|
33
|
+
[attribute: string]: string;
|
|
34
|
+
};
|
|
35
|
+
} & {
|
|
36
|
+
page: number;
|
|
37
|
+
} & {
|
|
38
|
+
range: {
|
|
39
|
+
[attribute: string]: string;
|
|
40
|
+
};
|
|
41
|
+
} & {
|
|
42
|
+
ratingMenu: {
|
|
43
|
+
[attribute: string]: number;
|
|
44
|
+
};
|
|
45
|
+
} & {
|
|
46
|
+
refinementList: {
|
|
47
|
+
[attribute: string]: string[];
|
|
48
|
+
};
|
|
49
|
+
} & {
|
|
50
|
+
relevantSort: number;
|
|
51
|
+
} & {
|
|
52
|
+
query: string;
|
|
53
|
+
} & {
|
|
54
|
+
sortBy: string;
|
|
55
|
+
} & {
|
|
56
|
+
toggle: {
|
|
57
|
+
[attribute: string]: boolean;
|
|
58
|
+
};
|
|
59
|
+
} & {
|
|
60
|
+
query: string;
|
|
61
|
+
} & {
|
|
62
|
+
places: {
|
|
63
|
+
query: string;
|
|
64
|
+
position: string;
|
|
65
|
+
};
|
|
66
|
+
}>) => Partial<{
|
|
67
|
+
query: string;
|
|
68
|
+
} & {
|
|
69
|
+
configure: import("algoliasearch-helper").PlainSearchParameters;
|
|
70
|
+
} & {
|
|
71
|
+
geoSearch: {
|
|
72
|
+
boundingBox: string;
|
|
73
|
+
};
|
|
74
|
+
} & {
|
|
75
|
+
hierarchicalMenu: {
|
|
76
|
+
[rootAttribute: string]: string[];
|
|
77
|
+
};
|
|
78
|
+
} & {
|
|
79
|
+
hitsPerPage: number;
|
|
80
|
+
} & {
|
|
81
|
+
page: number;
|
|
82
|
+
} & {
|
|
83
|
+
menu: {
|
|
84
|
+
[attribute: string]: string;
|
|
85
|
+
};
|
|
86
|
+
} & {
|
|
87
|
+
numericMenu: {
|
|
88
|
+
[attribute: string]: string;
|
|
89
|
+
};
|
|
90
|
+
} & {
|
|
91
|
+
page: number;
|
|
92
|
+
} & {
|
|
93
|
+
range: {
|
|
94
|
+
[attribute: string]: string;
|
|
95
|
+
};
|
|
96
|
+
} & {
|
|
97
|
+
ratingMenu: {
|
|
98
|
+
[attribute: string]: number;
|
|
99
|
+
};
|
|
100
|
+
} & {
|
|
101
|
+
refinementList: {
|
|
102
|
+
[attribute: string]: string[];
|
|
103
|
+
};
|
|
104
|
+
} & {
|
|
105
|
+
relevantSort: number;
|
|
106
|
+
} & {
|
|
107
|
+
query: string;
|
|
108
|
+
} & {
|
|
109
|
+
sortBy: string;
|
|
110
|
+
} & {
|
|
111
|
+
toggle: {
|
|
112
|
+
[attribute: string]: boolean;
|
|
113
|
+
};
|
|
114
|
+
} & {
|
|
115
|
+
query: string;
|
|
116
|
+
} & {
|
|
117
|
+
places: {
|
|
118
|
+
query: string;
|
|
119
|
+
position: string;
|
|
120
|
+
};
|
|
121
|
+
}>)) => string;
|
|
12
122
|
scopedResults: never[];
|
|
13
123
|
searchMetadata: {
|
|
14
124
|
isSearchStalled: boolean;
|
|
@@ -25,7 +135,117 @@ export declare function createRenderArgs(instantSearchInstance: InstantSearch, p
|
|
|
25
135
|
state: import("algoliasearch-helper").SearchParameters;
|
|
26
136
|
renderState: import("../../types").RenderState;
|
|
27
137
|
templatesConfig: Record<string, unknown>;
|
|
28
|
-
createURL: (
|
|
138
|
+
createURL: (nextState: import("algoliasearch-helper").SearchParameters | ((state: Partial<{
|
|
139
|
+
query: string;
|
|
140
|
+
} & {
|
|
141
|
+
configure: import("algoliasearch-helper").PlainSearchParameters;
|
|
142
|
+
} & {
|
|
143
|
+
geoSearch: {
|
|
144
|
+
boundingBox: string;
|
|
145
|
+
};
|
|
146
|
+
} & {
|
|
147
|
+
hierarchicalMenu: {
|
|
148
|
+
[rootAttribute: string]: string[];
|
|
149
|
+
};
|
|
150
|
+
} & {
|
|
151
|
+
hitsPerPage: number;
|
|
152
|
+
} & {
|
|
153
|
+
page: number;
|
|
154
|
+
} & {
|
|
155
|
+
menu: {
|
|
156
|
+
[attribute: string]: string;
|
|
157
|
+
};
|
|
158
|
+
} & {
|
|
159
|
+
numericMenu: {
|
|
160
|
+
[attribute: string]: string;
|
|
161
|
+
};
|
|
162
|
+
} & {
|
|
163
|
+
page: number;
|
|
164
|
+
} & {
|
|
165
|
+
range: {
|
|
166
|
+
[attribute: string]: string;
|
|
167
|
+
};
|
|
168
|
+
} & {
|
|
169
|
+
ratingMenu: {
|
|
170
|
+
[attribute: string]: number;
|
|
171
|
+
};
|
|
172
|
+
} & {
|
|
173
|
+
refinementList: {
|
|
174
|
+
[attribute: string]: string[];
|
|
175
|
+
};
|
|
176
|
+
} & {
|
|
177
|
+
relevantSort: number;
|
|
178
|
+
} & {
|
|
179
|
+
query: string;
|
|
180
|
+
} & {
|
|
181
|
+
sortBy: string;
|
|
182
|
+
} & {
|
|
183
|
+
toggle: {
|
|
184
|
+
[attribute: string]: boolean;
|
|
185
|
+
};
|
|
186
|
+
} & {
|
|
187
|
+
query: string;
|
|
188
|
+
} & {
|
|
189
|
+
places: {
|
|
190
|
+
query: string;
|
|
191
|
+
position: string;
|
|
192
|
+
};
|
|
193
|
+
}>) => Partial<{
|
|
194
|
+
query: string;
|
|
195
|
+
} & {
|
|
196
|
+
configure: import("algoliasearch-helper").PlainSearchParameters;
|
|
197
|
+
} & {
|
|
198
|
+
geoSearch: {
|
|
199
|
+
boundingBox: string;
|
|
200
|
+
};
|
|
201
|
+
} & {
|
|
202
|
+
hierarchicalMenu: {
|
|
203
|
+
[rootAttribute: string]: string[];
|
|
204
|
+
};
|
|
205
|
+
} & {
|
|
206
|
+
hitsPerPage: number;
|
|
207
|
+
} & {
|
|
208
|
+
page: number;
|
|
209
|
+
} & {
|
|
210
|
+
menu: {
|
|
211
|
+
[attribute: string]: string;
|
|
212
|
+
};
|
|
213
|
+
} & {
|
|
214
|
+
numericMenu: {
|
|
215
|
+
[attribute: string]: string;
|
|
216
|
+
};
|
|
217
|
+
} & {
|
|
218
|
+
page: number;
|
|
219
|
+
} & {
|
|
220
|
+
range: {
|
|
221
|
+
[attribute: string]: string;
|
|
222
|
+
};
|
|
223
|
+
} & {
|
|
224
|
+
ratingMenu: {
|
|
225
|
+
[attribute: string]: number;
|
|
226
|
+
};
|
|
227
|
+
} & {
|
|
228
|
+
refinementList: {
|
|
229
|
+
[attribute: string]: string[];
|
|
230
|
+
};
|
|
231
|
+
} & {
|
|
232
|
+
relevantSort: number;
|
|
233
|
+
} & {
|
|
234
|
+
query: string;
|
|
235
|
+
} & {
|
|
236
|
+
sortBy: string;
|
|
237
|
+
} & {
|
|
238
|
+
toggle: {
|
|
239
|
+
[attribute: string]: boolean;
|
|
240
|
+
};
|
|
241
|
+
} & {
|
|
242
|
+
query: string;
|
|
243
|
+
} & {
|
|
244
|
+
places: {
|
|
245
|
+
query: string;
|
|
246
|
+
position: string;
|
|
247
|
+
};
|
|
248
|
+
}>)) => string;
|
|
29
249
|
searchMetadata: {
|
|
30
250
|
isSearchStalled: boolean;
|
|
31
251
|
};
|
package/es/lib/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: "4.56.
|
|
1
|
+
declare const _default: "4.56.5";
|
|
2
2
|
export default _default;
|
package/es/lib/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export default '4.56.
|
|
1
|
+
export default '4.56.5';
|
|
@@ -18,9 +18,17 @@ export var createRouterMiddleware = function createRouterMiddleware() {
|
|
|
18
18
|
return function (_ref) {
|
|
19
19
|
var instantSearchInstance = _ref.instantSearchInstance;
|
|
20
20
|
function topLevelCreateURL(nextState) {
|
|
21
|
+
var previousUiState =
|
|
22
|
+
// If only the mainIndex is initialized, we don't yet know what other
|
|
23
|
+
// index widgets are used. Therefore we fall back to the initialUiState.
|
|
24
|
+
// We can't indiscriminately use the initialUiState because then we
|
|
25
|
+
// reintroduce state that was changed by the user.
|
|
26
|
+
// When there are no widgets, we are sure the user can't yet have made
|
|
27
|
+
// any changes.
|
|
28
|
+
instantSearchInstance.mainIndex.getWidgets().length === 0 ? instantSearchInstance._initialUiState : instantSearchInstance.mainIndex.getWidgetUiState({});
|
|
21
29
|
var uiState = Object.keys(nextState).reduce(function (acc, indexId) {
|
|
22
30
|
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, indexId, nextState[indexId]));
|
|
23
|
-
},
|
|
31
|
+
}, previousUiState);
|
|
24
32
|
var route = stateMapping.stateToRoute(uiState);
|
|
25
33
|
return router.createURL(route);
|
|
26
34
|
}
|
package/es/types/widget.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ type SharedRenderOptions = {
|
|
|
24
24
|
};
|
|
25
25
|
status: InstantSearch['status'];
|
|
26
26
|
error: InstantSearch['error'];
|
|
27
|
-
createURL: (state:
|
|
27
|
+
createURL: (nextState: SearchParameters | ((state: IndexUiState) => IndexUiState)) => string;
|
|
28
28
|
};
|
|
29
29
|
export type InitOptions = SharedRenderOptions & {
|
|
30
30
|
uiState: UiState;
|
|
@@ -27,7 +27,7 @@ export type IndexWidget<TUiState extends UiState = UiState> = Omit<Widget<IndexW
|
|
|
27
27
|
getScopedResults: () => ScopedResult[];
|
|
28
28
|
getParent: () => IndexWidget | null;
|
|
29
29
|
getWidgets: () => Array<Widget | IndexWidget>;
|
|
30
|
-
createURL: (state:
|
|
30
|
+
createURL: (nextState: SearchParameters | ((state: IndexUiState) => IndexUiState)) => string;
|
|
31
31
|
addWidgets: (widgets: Array<Widget | IndexWidget>) => IndexWidget;
|
|
32
32
|
removeWidgets: (widgets: Array<Widget | IndexWidget>) => IndexWidget;
|
|
33
33
|
init: (options: IndexInitOptions) => void;
|
|
@@ -140,6 +140,9 @@ var index = function index(widgetParams) {
|
|
|
140
140
|
return localParent;
|
|
141
141
|
},
|
|
142
142
|
createURL: function createURL(nextState) {
|
|
143
|
+
if (typeof nextState === 'function') {
|
|
144
|
+
return localInstantSearchInstance._createURL(_defineProperty({}, indexId, nextState(localUiState)));
|
|
145
|
+
}
|
|
143
146
|
return localInstantSearchInstance._createURL(_defineProperty({}, indexId, getLocalWidgetsUiState(localWidgets, {
|
|
144
147
|
searchParameters: nextState,
|
|
145
148
|
helper: helper
|
|
@@ -204,7 +207,7 @@ var index = function index(widgetParams) {
|
|
|
204
207
|
return widgets.indexOf(widget) === -1;
|
|
205
208
|
});
|
|
206
209
|
if (localInstantSearchInstance && Boolean(widgets.length)) {
|
|
207
|
-
var
|
|
210
|
+
var _nextState = widgets.reduce(function (state, widget) {
|
|
208
211
|
// the `dispose` method exists at this point we already assert it
|
|
209
212
|
var next = widget.dispose({
|
|
210
213
|
helper: helper,
|
|
@@ -214,12 +217,12 @@ var index = function index(widgetParams) {
|
|
|
214
217
|
return next || state;
|
|
215
218
|
}, helper.state);
|
|
216
219
|
localUiState = getLocalWidgetsUiState(localWidgets, {
|
|
217
|
-
searchParameters:
|
|
220
|
+
searchParameters: _nextState,
|
|
218
221
|
helper: helper
|
|
219
222
|
});
|
|
220
223
|
helper.setState(getLocalWidgetsSearchParameters(localWidgets, {
|
|
221
224
|
uiState: localUiState,
|
|
222
|
-
initialSearchParameters:
|
|
225
|
+
initialSearchParameters: _nextState
|
|
223
226
|
}));
|
|
224
227
|
if (localWidgets.length) {
|
|
225
228
|
localInstantSearchInstance.scheduleSearch();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "instantsearch.js",
|
|
3
|
-
"version": "4.56.
|
|
3
|
+
"version": "4.56.5",
|
|
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",
|
|
@@ -55,9 +55,9 @@
|
|
|
55
55
|
"version": "./scripts/version/update-version.js"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@instantsearch/mocks": "1.
|
|
59
|
-
"@instantsearch/tests": "1.
|
|
60
|
-
"@instantsearch/testutils": "1.
|
|
58
|
+
"@instantsearch/mocks": "1.18.0",
|
|
59
|
+
"@instantsearch/tests": "1.18.0",
|
|
60
|
+
"@instantsearch/testutils": "1.7.0",
|
|
61
61
|
"@storybook/html": "5.3.9",
|
|
62
62
|
"@types/scriptjs": "0.0.2",
|
|
63
63
|
"algoliasearch": "4.14.3",
|
|
@@ -65,5 +65,5 @@
|
|
|
65
65
|
"scriptjs": "2.5.9",
|
|
66
66
|
"webpack": "4.41.5"
|
|
67
67
|
},
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "99119060ec345379181f0446ea4ca8d7cf331354"
|
|
69
69
|
}
|