instantsearch.js 4.54.1 → 4.56.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/cjs/components/Breadcrumb/Breadcrumb.js +2 -2
- package/cjs/components/Hits/Hits.js +16 -7
- package/cjs/components/InfiniteHits/InfiniteHits.js +13 -2
- package/cjs/components/RangeInput/RangeInput.js +22 -11
- package/cjs/components/RefinementList/RefinementList.js +34 -52
- package/cjs/components/Slider/Rheostat.js +163 -249
- package/cjs/connectors/autocomplete/connectAutocomplete.js +1 -1
- package/cjs/connectors/geo-search/connectGeoSearch.js +1 -1
- package/cjs/connectors/hierarchical-menu/connectHierarchicalMenu.js +1 -1
- package/cjs/connectors/hits/connectHits.js +1 -1
- package/cjs/connectors/infinite-hits/connectInfiniteHits.js +55 -32
- package/cjs/connectors/menu/connectMenu.js +1 -1
- package/cjs/connectors/numeric-menu/connectNumericMenu.js +1 -1
- package/cjs/connectors/rating-menu/connectRatingMenu.js +7 -3
- package/cjs/connectors/refinement-list/connectRefinementList.js +1 -1
- package/cjs/connectors/toggle-refinement/connectToggleRefinement.js +14 -4
- package/cjs/helpers/insights.js +3 -4
- package/cjs/lib/InstantSearch.js +20 -6
- package/cjs/lib/insights/listener.js +43 -36
- package/cjs/lib/routers/history.js +55 -1
- package/cjs/lib/stateMappings/simple.js +1 -0
- package/cjs/lib/stateMappings/singleIndex.js +1 -0
- package/cjs/lib/utils/createSendEventForFacet.js +12 -2
- package/cjs/lib/utils/createSendEventForHits.js +34 -11
- package/cjs/lib/utils/render-args.js +3 -2
- package/cjs/lib/version.js +1 -1
- package/cjs/middlewares/createInsightsMiddleware.js +135 -33
- package/cjs/middlewares/createMetadataMiddleware.js +17 -5
- package/cjs/middlewares/createRouterMiddleware.js +5 -1
- package/cjs/widgets/hits/hits.js +1 -2
- package/cjs/widgets/hits-per-page/hits-per-page.js +3 -1
- package/cjs/widgets/index/index.js +8 -8
- package/cjs/widgets/infinite-hits/infinite-hits.js +1 -2
- package/dist/instantsearch.development.d.ts +143 -84
- package/dist/instantsearch.development.js +770 -584
- package/dist/instantsearch.development.js.map +1 -1
- package/dist/instantsearch.production.d.ts +143 -84
- package/dist/instantsearch.production.min.d.ts +143 -84
- package/dist/instantsearch.production.min.js +2 -2
- package/dist/instantsearch.production.min.js.map +1 -1
- package/es/components/Breadcrumb/Breadcrumb.d.ts +2 -2
- package/es/components/Breadcrumb/Breadcrumb.js +2 -2
- package/es/components/GeoSearchControls/GeoSearchButton.d.ts +1 -1
- package/es/components/GeoSearchControls/GeoSearchControls.d.ts +3 -3
- package/es/components/GeoSearchControls/GeoSearchToggle.d.ts +1 -1
- package/es/components/Hits/Hits.d.ts +5 -5
- package/es/components/Hits/Hits.js +15 -5
- package/es/components/InfiniteHits/InfiniteHits.d.ts +3 -2
- package/es/components/InfiniteHits/InfiniteHits.js +13 -2
- package/es/components/Pagination/Pagination.d.ts +2 -2
- package/es/components/RangeInput/RangeInput.d.ts +7 -4
- package/es/components/RangeInput/RangeInput.js +22 -11
- package/es/components/RefinementList/RefinementList.d.ts +0 -1
- package/es/components/RefinementList/RefinementList.js +34 -52
- package/es/components/RelevantSort/RelevantSort.d.ts +1 -1
- package/es/components/Selector/Selector.d.ts +2 -2
- package/es/components/Slider/Rheostat.d.ts +23 -17
- package/es/components/Slider/Rheostat.js +163 -249
- package/es/components/Slider/Slider.d.ts +1 -1
- package/es/connectors/autocomplete/connectAutocomplete.js +1 -1
- package/es/connectors/current-refinements/connectCurrentRefinements.d.ts +2 -2
- package/es/connectors/dynamic-widgets/connectDynamicWidgets.d.ts +2 -2
- package/es/connectors/geo-search/connectGeoSearch.d.ts +7 -7
- package/es/connectors/geo-search/connectGeoSearch.js +1 -1
- package/es/connectors/hierarchical-menu/connectHierarchicalMenu.js +1 -1
- package/es/connectors/hits/connectHits.js +1 -1
- package/es/connectors/infinite-hits/connectInfiniteHits.js +56 -33
- package/es/connectors/menu/connectMenu.d.ts +2 -2
- package/es/connectors/menu/connectMenu.js +1 -1
- package/es/connectors/numeric-menu/connectNumericMenu.js +1 -1
- package/es/connectors/pagination/connectPagination.d.ts +1 -1
- package/es/connectors/range/connectRange.d.ts +3 -3
- package/es/connectors/rating-menu/connectRatingMenu.js +7 -3
- package/es/connectors/refinement-list/connectRefinementList.d.ts +3 -3
- package/es/connectors/refinement-list/connectRefinementList.js +1 -1
- package/es/connectors/relevant-sort/connectRelevantSort.d.ts +1 -1
- package/es/connectors/toggle-refinement/connectToggleRefinement.js +13 -3
- package/es/helpers/insights.d.ts +2 -1
- package/es/helpers/insights.js +3 -3
- package/es/lib/InstantSearch.d.ts +24 -14
- package/es/lib/InstantSearch.js +21 -7
- package/es/lib/insights/listener.d.ts +10 -6
- package/es/lib/insights/listener.js +42 -36
- package/es/lib/routers/history.d.ts +3 -2
- package/es/lib/routers/history.js +56 -2
- package/es/lib/stateMappings/simple.js +1 -0
- package/es/lib/stateMappings/singleIndex.js +1 -0
- package/es/lib/utils/createSendEventForFacet.js +12 -2
- package/es/lib/utils/createSendEventForHits.d.ts +8 -0
- package/es/lib/utils/createSendEventForHits.js +33 -11
- package/es/lib/utils/defer.d.ts +2 -2
- package/es/lib/utils/render-args.js +3 -2
- package/es/lib/version.d.ts +1 -1
- package/es/lib/version.js +1 -1
- package/es/middlewares/createInsightsMiddleware.d.ts +12 -12
- package/es/middlewares/createInsightsMiddleware.js +136 -34
- package/es/middlewares/createMetadataMiddleware.d.ts +3 -1
- package/es/middlewares/createMetadataMiddleware.js +17 -5
- package/es/middlewares/createRouterMiddleware.js +5 -1
- package/es/types/insights.d.ts +19 -1
- package/es/types/middleware.d.ts +22 -6
- package/es/types/router.d.ts +15 -7
- package/es/types/widget.d.ts +1 -1
- package/es/widgets/dynamic-widgets/dynamic-widgets.d.ts +2 -2
- package/es/widgets/geo-search/createHTMLMarker.d.ts +1 -1
- package/es/widgets/geo-search/geo-search.d.ts +1 -1
- package/es/widgets/hits/hits.js +2 -3
- package/es/widgets/hits-per-page/hits-per-page.js +3 -1
- package/es/widgets/index/index.d.ts +20 -20
- package/es/widgets/index/index.js +8 -8
- package/es/widgets/infinite-hits/infinite-hits.js +2 -3
- package/es/widgets/panel/panel.d.ts +2 -2
- package/es/widgets/range-slider/range-slider.d.ts +1 -1
- package/package.json +7 -7
|
@@ -35,7 +35,7 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
|
|
|
35
35
|
renderState.indices.forEach(function (_ref3) {
|
|
36
36
|
var sendEvent = _ref3.sendEvent,
|
|
37
37
|
hits = _ref3.hits;
|
|
38
|
-
sendEvent('view', hits);
|
|
38
|
+
sendEvent('view:internal', hits);
|
|
39
39
|
});
|
|
40
40
|
renderFn(_objectSpread(_objectSpread({}, renderState), {}, {
|
|
41
41
|
instantSearchInstance: instantSearchInstance
|
|
@@ -53,7 +53,7 @@ export type CurrentRefinementsConnectorParamsItem = {
|
|
|
53
53
|
/**
|
|
54
54
|
* Removes the given refinement and triggers a new search.
|
|
55
55
|
*/
|
|
56
|
-
refine(refinement: CurrentRefinementsConnectorParamsRefinement)
|
|
56
|
+
refine: (refinement: CurrentRefinementsConnectorParamsRefinement) => void;
|
|
57
57
|
};
|
|
58
58
|
export type CurrentRefinementsConnectorParams = {
|
|
59
59
|
/**
|
|
@@ -87,7 +87,7 @@ export type CurrentRefinementsRenderState = {
|
|
|
87
87
|
/**
|
|
88
88
|
* Removes the given refinement and triggers a new search.
|
|
89
89
|
*/
|
|
90
|
-
refine(refinement: CurrentRefinementsConnectorParamsRefinement)
|
|
90
|
+
refine: (refinement: CurrentRefinementsConnectorParamsRefinement) => void;
|
|
91
91
|
/**
|
|
92
92
|
* Generates a URL for the next state.
|
|
93
93
|
*/
|
|
@@ -11,10 +11,10 @@ export type DynamicWidgetsConnectorParams = {
|
|
|
11
11
|
* Function to return a fallback widget when an attribute isn't found in
|
|
12
12
|
* `widgets`.
|
|
13
13
|
*/
|
|
14
|
-
fallbackWidget
|
|
14
|
+
fallbackWidget?: (args: {
|
|
15
15
|
/** The attribute name to create a widget for. */
|
|
16
16
|
attribute: string;
|
|
17
|
-
})
|
|
17
|
+
}) => Widget;
|
|
18
18
|
/**
|
|
19
19
|
* Function to transform the items to render.
|
|
20
20
|
* The function also exposes the full search response.
|
|
@@ -15,7 +15,7 @@ export type GeoSearchRenderState<THit extends BaseHit = Record<string, any>> = {
|
|
|
15
15
|
/**
|
|
16
16
|
* Reset the current bounding box refinement.
|
|
17
17
|
*/
|
|
18
|
-
clearMapRefinement()
|
|
18
|
+
clearMapRefinement: () => void;
|
|
19
19
|
/**
|
|
20
20
|
* The current bounding box of the search.
|
|
21
21
|
*/
|
|
@@ -23,15 +23,15 @@ export type GeoSearchRenderState<THit extends BaseHit = Record<string, any>> = {
|
|
|
23
23
|
/**
|
|
24
24
|
* Return true if the map has move since the last refinement.
|
|
25
25
|
*/
|
|
26
|
-
hasMapMoveSinceLastRefine()
|
|
26
|
+
hasMapMoveSinceLastRefine: () => boolean;
|
|
27
27
|
/**
|
|
28
28
|
* Return true if the current refinement is set with the map bounds.
|
|
29
29
|
*/
|
|
30
|
-
isRefinedWithMap()
|
|
30
|
+
isRefinedWithMap: () => boolean;
|
|
31
31
|
/**
|
|
32
32
|
* Return true if the user is able to refine on map move.
|
|
33
33
|
*/
|
|
34
|
-
isRefineOnMapMove()
|
|
34
|
+
isRefineOnMapMove: () => boolean;
|
|
35
35
|
/**
|
|
36
36
|
* The matched hits from Algolia API.
|
|
37
37
|
*/
|
|
@@ -43,7 +43,7 @@ export type GeoSearchRenderState<THit extends BaseHit = Record<string, any>> = {
|
|
|
43
43
|
/**
|
|
44
44
|
* Sets a bounding box to filter the results from the given map bounds.
|
|
45
45
|
*/
|
|
46
|
-
refine(bounds: Bounds)
|
|
46
|
+
refine: (bounds: Bounds) => void;
|
|
47
47
|
/**
|
|
48
48
|
* Send event to insights middleware
|
|
49
49
|
*/
|
|
@@ -53,11 +53,11 @@ export type GeoSearchRenderState<THit extends BaseHit = Record<string, any>> = {
|
|
|
53
53
|
* called on each map move. The call to the function triggers a new rendering
|
|
54
54
|
* only when the value change.
|
|
55
55
|
*/
|
|
56
|
-
setMapMoveSinceLastRefine()
|
|
56
|
+
setMapMoveSinceLastRefine: () => void;
|
|
57
57
|
/**
|
|
58
58
|
* Toggle the fact that the user is able to refine on map move.
|
|
59
59
|
*/
|
|
60
|
-
toggleRefineOnMapMove()
|
|
60
|
+
toggleRefineOnMapMove: () => void;
|
|
61
61
|
};
|
|
62
62
|
export type GeoSearchConnectorParams<THit extends BaseHit = Record<string, any>> = {
|
|
63
63
|
/**
|
|
@@ -131,7 +131,7 @@ var connectGeoSearch = function connectGeoSearch(renderFn) {
|
|
|
131
131
|
widgetState.internalToggleRefineOnMapMove = createInternalToggleRefinementOnMapMove(renderArgs, this.render.bind(this));
|
|
132
132
|
widgetState.internalSetMapMoveSinceLastRefine = createInternalSetMapMoveSinceLastRefine(renderArgs, this.render.bind(this));
|
|
133
133
|
var widgetRenderState = this.getWidgetRenderState(renderArgs);
|
|
134
|
-
sendEvent('view', widgetRenderState.items);
|
|
134
|
+
sendEvent('view:internal', widgetRenderState.items);
|
|
135
135
|
renderFn(_objectSpread(_objectSpread({}, widgetRenderState), {}, {
|
|
136
136
|
instantSearchInstance: instantSearchInstance
|
|
137
137
|
}), isFirstRendering);
|
|
@@ -155,7 +155,7 @@ var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
|
|
|
155
155
|
}
|
|
156
156
|
if (!_refine) {
|
|
157
157
|
_refine = function _refine(facetValue) {
|
|
158
|
-
sendEvent('click', facetValue);
|
|
158
|
+
sendEvent('click:internal', facetValue);
|
|
159
159
|
helper.toggleFacetRefinement(hierarchicalFacetName, facetValue).search();
|
|
160
160
|
};
|
|
161
161
|
}
|
|
@@ -34,7 +34,7 @@ var connectHits = function connectHits(renderFn) {
|
|
|
34
34
|
renderFn(_objectSpread(_objectSpread({}, renderState), {}, {
|
|
35
35
|
instantSearchInstance: renderOptions.instantSearchInstance
|
|
36
36
|
}), false);
|
|
37
|
-
renderState.sendEvent('view', renderState.hits);
|
|
37
|
+
renderState.sendEvent('view:internal', renderState.hits);
|
|
38
38
|
},
|
|
39
39
|
getRenderState: function getRenderState(renderState, renderOptions) {
|
|
40
40
|
return _objectSpread(_objectSpread({}, renderState), {}, {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
-
var _excluded = ["page"]
|
|
2
|
+
var _excluded = ["page"],
|
|
3
|
+
_excluded2 = ["clickAnalytics", "userToken"];
|
|
3
4
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
4
5
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
5
6
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
@@ -13,7 +14,7 @@ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToAr
|
|
|
13
14
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
14
15
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
15
16
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
16
|
-
import { escapeHits, TAG_PLACEHOLDER, checkRendering, createDocumentationMessageGenerator, isEqual, addAbsolutePosition, addQueryID, noop, createSendEventForHits, createBindEventForHits } from "../../lib/utils/index.js";
|
|
17
|
+
import { escapeHits, TAG_PLACEHOLDER, checkRendering, createDocumentationMessageGenerator, isEqual, addAbsolutePosition, addQueryID, noop, createSendEventForHits, createBindEventForHits, walkIndex } from "../../lib/utils/index.js";
|
|
17
18
|
var withUsage = createDocumentationMessageGenerator({
|
|
18
19
|
name: 'infinite-hits',
|
|
19
20
|
connector: true
|
|
@@ -24,17 +25,24 @@ function getStateWithoutPage(state) {
|
|
|
24
25
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
25
26
|
return rest;
|
|
26
27
|
}
|
|
28
|
+
function normalizeState(state) {
|
|
29
|
+
var _ref2 = state || {},
|
|
30
|
+
clickAnalytics = _ref2.clickAnalytics,
|
|
31
|
+
userToken = _ref2.userToken,
|
|
32
|
+
rest = _objectWithoutProperties(_ref2, _excluded2);
|
|
33
|
+
return rest;
|
|
34
|
+
}
|
|
27
35
|
function getInMemoryCache() {
|
|
28
36
|
var cachedHits = null;
|
|
29
37
|
var cachedState = null;
|
|
30
38
|
return {
|
|
31
|
-
read: function read(
|
|
32
|
-
var state =
|
|
39
|
+
read: function read(_ref3) {
|
|
40
|
+
var state = _ref3.state;
|
|
33
41
|
return isEqual(cachedState, getStateWithoutPage(state)) ? cachedHits : null;
|
|
34
42
|
},
|
|
35
|
-
write: function write(
|
|
36
|
-
var state =
|
|
37
|
-
hits =
|
|
43
|
+
write: function write(_ref4) {
|
|
44
|
+
var state = _ref4.state,
|
|
45
|
+
hits = _ref4.hits;
|
|
38
46
|
cachedState = getStateWithoutPage(state);
|
|
39
47
|
cachedHits = hits;
|
|
40
48
|
}
|
|
@@ -54,15 +62,15 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
54
62
|
// @TODO: this should be a generic, but a Connector can not yet be generic itself
|
|
55
63
|
|
|
56
64
|
return function (widgetParams) {
|
|
57
|
-
var
|
|
58
|
-
|
|
59
|
-
escapeHTML =
|
|
60
|
-
|
|
61
|
-
transformItems =
|
|
65
|
+
var _ref5 = widgetParams || {},
|
|
66
|
+
_ref5$escapeHTML = _ref5.escapeHTML,
|
|
67
|
+
escapeHTML = _ref5$escapeHTML === void 0 ? true : _ref5$escapeHTML,
|
|
68
|
+
_ref5$transformItems = _ref5.transformItems,
|
|
69
|
+
transformItems = _ref5$transformItems === void 0 ? function (items) {
|
|
62
70
|
return items;
|
|
63
|
-
} :
|
|
64
|
-
|
|
65
|
-
cache =
|
|
71
|
+
} : _ref5$transformItems,
|
|
72
|
+
_ref5$cache = _ref5.cache,
|
|
73
|
+
cache = _ref5$cache === void 0 ? getInMemoryCache() : _ref5$cache;
|
|
66
74
|
var showPrevious;
|
|
67
75
|
var showMore;
|
|
68
76
|
var sendEvent;
|
|
@@ -93,7 +101,7 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
93
101
|
// avoid updating the browser URL when the user displays the previous page.
|
|
94
102
|
helper.overrideStateWithoutTriggeringChangeEvent(_objectSpread(_objectSpread({}, helper.state), {}, {
|
|
95
103
|
page: getFirstReceivedPage(helper.state, cache.read({
|
|
96
|
-
state: helper.state
|
|
104
|
+
state: normalizeState(helper.state)
|
|
97
105
|
}) || {}) - 1
|
|
98
106
|
})).searchWithoutTriggeringOnStateChange();
|
|
99
107
|
};
|
|
@@ -101,7 +109,7 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
101
109
|
var getShowMore = function getShowMore(helper) {
|
|
102
110
|
return function () {
|
|
103
111
|
helper.setPage(getLastReceivedPage(helper.state, cache.read({
|
|
104
|
-
state: helper.state
|
|
112
|
+
state: normalizeState(helper.state)
|
|
105
113
|
}) || {}) + 1).search();
|
|
106
114
|
};
|
|
107
115
|
};
|
|
@@ -118,19 +126,19 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
118
126
|
renderFn(_objectSpread(_objectSpread({}, widgetRenderState), {}, {
|
|
119
127
|
instantSearchInstance: instantSearchInstance
|
|
120
128
|
}), false);
|
|
121
|
-
sendEvent('view', widgetRenderState.currentPageHits);
|
|
129
|
+
sendEvent('view:internal', widgetRenderState.currentPageHits);
|
|
122
130
|
},
|
|
123
131
|
getRenderState: function getRenderState(renderState, renderOptions) {
|
|
124
132
|
return _objectSpread(_objectSpread({}, renderState), {}, {
|
|
125
133
|
infiniteHits: this.getWidgetRenderState(renderOptions)
|
|
126
134
|
});
|
|
127
135
|
},
|
|
128
|
-
getWidgetRenderState: function getWidgetRenderState(
|
|
129
|
-
var results =
|
|
130
|
-
helper =
|
|
131
|
-
parent =
|
|
132
|
-
existingState =
|
|
133
|
-
instantSearchInstance =
|
|
136
|
+
getWidgetRenderState: function getWidgetRenderState(_ref6) {
|
|
137
|
+
var results = _ref6.results,
|
|
138
|
+
helper = _ref6.helper,
|
|
139
|
+
parent = _ref6.parent,
|
|
140
|
+
existingState = _ref6.state,
|
|
141
|
+
instantSearchInstance = _ref6.instantSearchInstance;
|
|
134
142
|
var isFirstPage;
|
|
135
143
|
var currentPageHits = [];
|
|
136
144
|
/**
|
|
@@ -140,7 +148,7 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
140
148
|
*/
|
|
141
149
|
var state = parent.getPreviousState() || existingState;
|
|
142
150
|
var cachedHits = cache.read({
|
|
143
|
-
state: state
|
|
151
|
+
state: normalizeState(state)
|
|
144
152
|
}) || {};
|
|
145
153
|
if (!results) {
|
|
146
154
|
showPrevious = getShowPrevious(helper);
|
|
@@ -157,6 +165,7 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
157
165
|
});
|
|
158
166
|
isFirstPage = state.page === undefined || getFirstReceivedPage(state, cachedHits) === 0;
|
|
159
167
|
} else {
|
|
168
|
+
var _results$disjunctiveF, _results$facets, _results$hierarchical;
|
|
160
169
|
var _state$page3 = state.page,
|
|
161
170
|
_page = _state$page3 === void 0 ? 0 : _state$page3;
|
|
162
171
|
if (escapeHTML && results.hits.length > 0) {
|
|
@@ -167,10 +176,24 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
167
176
|
var transformedHits = transformItems(hitsWithAbsolutePositionAndQueryID, {
|
|
168
177
|
results: results
|
|
169
178
|
});
|
|
170
|
-
|
|
179
|
+
|
|
180
|
+
/*
|
|
181
|
+
With dynamic widgets, facets are not included in the state before their relevant widgets are mounted. Until then, we need to bail out of writing this incomplete state representation in cache.
|
|
182
|
+
*/
|
|
183
|
+
var hasDynamicWidgets = false;
|
|
184
|
+
walkIndex(instantSearchInstance.mainIndex, function (indexWidget) {
|
|
185
|
+
if (!hasDynamicWidgets && indexWidget.getWidgets().some(function (_ref7) {
|
|
186
|
+
var $$type = _ref7.$$type;
|
|
187
|
+
return $$type === 'ais.dynamicWidgets';
|
|
188
|
+
})) {
|
|
189
|
+
hasDynamicWidgets = true;
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
var hasNoFacets = !((_results$disjunctiveF = results.disjunctiveFacets) !== null && _results$disjunctiveF !== void 0 && _results$disjunctiveF.length) && !((_results$facets = results.facets) !== null && _results$facets !== void 0 && _results$facets.length) && !((_results$hierarchical = results.hierarchicalFacets) !== null && _results$hierarchical !== void 0 && _results$hierarchical.length);
|
|
193
|
+
if (cachedHits[_page] === undefined && !results.__isArtificial && instantSearchInstance.status === 'idle' && !(hasDynamicWidgets && hasNoFacets)) {
|
|
171
194
|
cachedHits[_page] = transformedHits;
|
|
172
195
|
cache.write({
|
|
173
|
-
state: state,
|
|
196
|
+
state: normalizeState(state),
|
|
174
197
|
hits: cachedHits
|
|
175
198
|
});
|
|
176
199
|
}
|
|
@@ -192,8 +215,8 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
192
215
|
widgetParams: widgetParams
|
|
193
216
|
};
|
|
194
217
|
},
|
|
195
|
-
dispose: function dispose(
|
|
196
|
-
var state =
|
|
218
|
+
dispose: function dispose(_ref8) {
|
|
219
|
+
var state = _ref8.state;
|
|
197
220
|
unmountFn();
|
|
198
221
|
var stateWithoutPage = state.setQueryParameter('page', undefined);
|
|
199
222
|
if (!escapeHTML) {
|
|
@@ -203,8 +226,8 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
203
226
|
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));
|
|
204
227
|
}, {}));
|
|
205
228
|
},
|
|
206
|
-
getWidgetUiState: function getWidgetUiState(uiState,
|
|
207
|
-
var searchParameters =
|
|
229
|
+
getWidgetUiState: function getWidgetUiState(uiState, _ref9) {
|
|
230
|
+
var searchParameters = _ref9.searchParameters;
|
|
208
231
|
var page = searchParameters.page || 0;
|
|
209
232
|
if (!page) {
|
|
210
233
|
// return without adding `page` to uiState
|
|
@@ -217,8 +240,8 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
217
240
|
page: page + 1
|
|
218
241
|
});
|
|
219
242
|
},
|
|
220
|
-
getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters,
|
|
221
|
-
var uiState =
|
|
243
|
+
getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref10) {
|
|
244
|
+
var uiState = _ref10.uiState;
|
|
222
245
|
var widgetSearchParameters = searchParameters;
|
|
223
246
|
if (escapeHTML) {
|
|
224
247
|
widgetSearchParameters = searchParameters.setQueryParameters(TAG_PLACEHOLDER);
|
|
@@ -61,7 +61,7 @@ export type MenuRenderState = {
|
|
|
61
61
|
/**
|
|
62
62
|
* Filter the search to item value.
|
|
63
63
|
*/
|
|
64
|
-
refine(value: string)
|
|
64
|
+
refine: (value: string) => void;
|
|
65
65
|
/**
|
|
66
66
|
* True if refinement can be applied.
|
|
67
67
|
*/
|
|
@@ -73,7 +73,7 @@ export type MenuRenderState = {
|
|
|
73
73
|
/**
|
|
74
74
|
* Toggles the number of values displayed between `limit` and `showMore.limit`.
|
|
75
75
|
*/
|
|
76
|
-
toggleShowMore()
|
|
76
|
+
toggleShowMore: () => void;
|
|
77
77
|
/**
|
|
78
78
|
* `true` if the toggleShowMore button can be activated (enough items to display more or
|
|
79
79
|
* already displaying more than `limit` items)
|
|
@@ -121,7 +121,7 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
121
121
|
var _helper$getHierarchic = helper.getHierarchicalFacetBreadcrumb(attribute),
|
|
122
122
|
_helper$getHierarchic2 = _slicedToArray(_helper$getHierarchic, 1),
|
|
123
123
|
refinedItem = _helper$getHierarchic2[0];
|
|
124
|
-
sendEvent('click', facetValue ? facetValue : refinedItem);
|
|
124
|
+
sendEvent('click:internal', facetValue ? facetValue : refinedItem);
|
|
125
125
|
helper.toggleFacetRefinement(attribute, facetValue ? facetValue : refinedItem).search();
|
|
126
126
|
};
|
|
127
127
|
}
|
|
@@ -137,7 +137,7 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
|
137
137
|
if (!connectorState.refine) {
|
|
138
138
|
connectorState.refine = function (facetValue) {
|
|
139
139
|
var refinedState = getRefinedState(helper.state, attribute, facetValue);
|
|
140
|
-
connectorState.sendEvent('click', facetValue);
|
|
140
|
+
connectorState.sendEvent('click:internal', facetValue);
|
|
141
141
|
helper.setState(refinedState).search();
|
|
142
142
|
};
|
|
143
143
|
}
|
|
@@ -14,7 +14,7 @@ export type PaginationRenderState = {
|
|
|
14
14
|
/** Creates URLs for the next state, the number is the page to generate the URL for. */
|
|
15
15
|
createURL: CreateURL<number>;
|
|
16
16
|
/** Sets the current page and triggers a search. */
|
|
17
|
-
refine(page: number)
|
|
17
|
+
refine: (page: number) => void;
|
|
18
18
|
/** true if this search returned more than one page */
|
|
19
19
|
canRefine: boolean;
|
|
20
20
|
/** The number of the page currently displayed. */
|
|
@@ -14,7 +14,7 @@ export type RangeRenderState = {
|
|
|
14
14
|
* previously set bound or to set an infinite bound.
|
|
15
15
|
* @param rangeValue tuple of [min, max] bounds
|
|
16
16
|
*/
|
|
17
|
-
refine(rangeValue: RangeBoundaries)
|
|
17
|
+
refine: (rangeValue: RangeBoundaries) => void;
|
|
18
18
|
/**
|
|
19
19
|
* Indicates whether this widget can be refined
|
|
20
20
|
*/
|
|
@@ -36,8 +36,8 @@ export type RangeRenderState = {
|
|
|
36
36
|
* Both functions take a `number` as input and should output a `string`.
|
|
37
37
|
*/
|
|
38
38
|
format: {
|
|
39
|
-
from(fromValue: number)
|
|
40
|
-
to(toValue: number)
|
|
39
|
+
from: (fromValue: number) => string;
|
|
40
|
+
to: (toValue: number) => string;
|
|
41
41
|
};
|
|
42
42
|
};
|
|
43
43
|
export type RangeConnectorParams = {
|
|
@@ -35,10 +35,13 @@ var createSendEvent = function createSendEvent(_ref) {
|
|
|
35
35
|
instantSearchInstance.sendEventToInsights(args[0]);
|
|
36
36
|
return;
|
|
37
37
|
}
|
|
38
|
-
var
|
|
39
|
-
facetValue = args[1],
|
|
38
|
+
var facetValue = args[1],
|
|
40
39
|
_args$ = args[2],
|
|
41
40
|
eventName = _args$ === void 0 ? 'Filter Applied' : _args$;
|
|
41
|
+
var _args$0$split = args[0].split(':'),
|
|
42
|
+
_args$0$split2 = _slicedToArray(_args$0$split, 2),
|
|
43
|
+
eventType = _args$0$split2[0],
|
|
44
|
+
eventModifier = _args$0$split2[1];
|
|
42
45
|
if (eventType !== 'click') {
|
|
43
46
|
return;
|
|
44
47
|
}
|
|
@@ -48,6 +51,7 @@ var createSendEvent = function createSendEvent(_ref) {
|
|
|
48
51
|
insightsMethod: 'clickedFilters',
|
|
49
52
|
widgetType: $$type,
|
|
50
53
|
eventType: eventType,
|
|
54
|
+
eventModifier: eventModifier,
|
|
51
55
|
payload: {
|
|
52
56
|
eventName: eventName,
|
|
53
57
|
index: helper.getIndex(),
|
|
@@ -123,7 +127,7 @@ var connectRatingMenu = function connectRatingMenu(renderFn) {
|
|
|
123
127
|
return emptyState;
|
|
124
128
|
}
|
|
125
129
|
var toggleRefinement = function toggleRefinement(helper, facetValue) {
|
|
126
|
-
sendEvent('click', facetValue);
|
|
130
|
+
sendEvent('click:internal', facetValue);
|
|
127
131
|
helper.setState(getRefinedState(helper.state, facetValue)).search();
|
|
128
132
|
};
|
|
129
133
|
var connectorState = {
|
|
@@ -79,7 +79,7 @@ export type RefinementListRenderState = {
|
|
|
79
79
|
/**
|
|
80
80
|
* Action to apply selected refinements.
|
|
81
81
|
*/
|
|
82
|
-
refine(value: string)
|
|
82
|
+
refine: (value: string) => void;
|
|
83
83
|
/**
|
|
84
84
|
* Send event to insights middleware
|
|
85
85
|
*/
|
|
@@ -87,7 +87,7 @@ export type RefinementListRenderState = {
|
|
|
87
87
|
/**
|
|
88
88
|
* Searches for values inside the list.
|
|
89
89
|
*/
|
|
90
|
-
searchForItems(query: string)
|
|
90
|
+
searchForItems: (query: string) => void;
|
|
91
91
|
/**
|
|
92
92
|
* `true` if the values are from an index search.
|
|
93
93
|
*/
|
|
@@ -108,7 +108,7 @@ export type RefinementListRenderState = {
|
|
|
108
108
|
/**
|
|
109
109
|
* Toggles the number of values displayed between `limit` and `showMoreLimit`.
|
|
110
110
|
*/
|
|
111
|
-
toggleShowMore()
|
|
111
|
+
toggleShowMore: () => void;
|
|
112
112
|
};
|
|
113
113
|
export type RefinementListWidgetDescription = {
|
|
114
114
|
$$type: 'ais.refinementList';
|
|
@@ -172,7 +172,7 @@ var connectRefinementList = function connectRefinementList(renderFn) {
|
|
|
172
172
|
widgetType: this.$$type
|
|
173
173
|
});
|
|
174
174
|
triggerRefine = function triggerRefine(facetValue) {
|
|
175
|
-
sendEvent('click', facetValue);
|
|
175
|
+
sendEvent('click:internal', facetValue);
|
|
176
176
|
helper.toggleFacetRefinement(attribute, facetValue).search();
|
|
177
177
|
};
|
|
178
178
|
searchForFacetValues = createSearchForFacetValues(helper, this);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Connector, WidgetRenderState } from '../../types';
|
|
2
2
|
export type RelevantSortConnectorParams = Record<string, unknown>;
|
|
3
|
-
type Refine = (relevancyStrictness: number) => void;
|
|
3
|
+
type Refine = (relevancyStrictness: number | undefined) => void;
|
|
4
4
|
export type RelevantSortRenderState = {
|
|
5
5
|
/**
|
|
6
6
|
* Indicates if it has appliedRelevancyStrictness greater than zero
|
|
@@ -4,6 +4,12 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
4
4
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
5
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
6
6
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
7
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
8
|
+
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."); }
|
|
9
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
10
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
11
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
12
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
13
|
import { checkRendering, escapeFacetValue, createDocumentationMessageGenerator, find, noop, toArray, warning } from "../../lib/utils/index.js";
|
|
8
14
|
var withUsage = createDocumentationMessageGenerator({
|
|
9
15
|
name: 'toggle-refinement',
|
|
@@ -23,10 +29,13 @@ var createSendEvent = function createSendEvent(_ref) {
|
|
|
23
29
|
instantSearchInstance.sendEventToInsights(args[0]);
|
|
24
30
|
return;
|
|
25
31
|
}
|
|
26
|
-
var
|
|
27
|
-
isRefined = args[1],
|
|
32
|
+
var isRefined = args[1],
|
|
28
33
|
_args$ = args[2],
|
|
29
34
|
eventName = _args$ === void 0 ? 'Filter Applied' : _args$;
|
|
35
|
+
var _args$0$split = args[0].split(':'),
|
|
36
|
+
_args$0$split2 = _slicedToArray(_args$0$split, 2),
|
|
37
|
+
eventType = _args$0$split2[0],
|
|
38
|
+
eventModifier = _args$0$split2[1];
|
|
30
39
|
if (eventType !== 'click' || on === undefined) {
|
|
31
40
|
return;
|
|
32
41
|
}
|
|
@@ -38,6 +47,7 @@ var createSendEvent = function createSendEvent(_ref) {
|
|
|
38
47
|
insightsMethod: 'clickedFilters',
|
|
39
48
|
widgetType: $$type,
|
|
40
49
|
eventType: eventType,
|
|
50
|
+
eventModifier: eventModifier,
|
|
41
51
|
payload: {
|
|
42
52
|
eventName: eventName,
|
|
43
53
|
index: helper.getIndex(),
|
|
@@ -84,7 +94,7 @@ var connectToggleRefinement = function connectToggleRefinement(renderFn) {
|
|
|
84
94
|
},
|
|
85
95
|
isRefined = _ref3.isRefined;
|
|
86
96
|
if (!isRefined) {
|
|
87
|
-
sendEvent('click', isRefined);
|
|
97
|
+
sendEvent('click:internal', isRefined);
|
|
88
98
|
if (hasAnOffValue) {
|
|
89
99
|
off.forEach(function (v) {
|
|
90
100
|
return helper.removeDisjunctiveFacetRefinement(attribute, v);
|
package/es/helpers/insights.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { InsightsClientMethod, InsightsClientPayload } from '../types';
|
|
2
|
+
/** @deprecated use bindEvent instead */
|
|
2
3
|
export declare function readDataAttributes(domElement: HTMLElement): {
|
|
3
4
|
method: InsightsClientMethod;
|
|
4
5
|
payload: Partial<InsightsClientPayload>;
|
|
5
6
|
};
|
|
6
|
-
|
|
7
|
+
/** @deprecated use bindEvent instead */
|
|
7
8
|
export declare function writeDataAttributes({ method, payload, }: {
|
|
8
9
|
method: InsightsClientMethod;
|
|
9
10
|
payload: Partial<InsightsClientPayload>;
|
package/es/helpers/insights.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
2
|
import { warning, serializePayload, deserializePayload } from "../lib/utils/index.js";
|
|
3
|
+
/** @deprecated use bindEvent instead */
|
|
3
4
|
export function readDataAttributes(domElement) {
|
|
4
5
|
var method = domElement.getAttribute('data-insights-method');
|
|
5
6
|
var serializedPayload = domElement.getAttribute('data-insights-payload');
|
|
@@ -16,9 +17,8 @@ export function readDataAttributes(domElement) {
|
|
|
16
17
|
throw new Error('The insights helper was unable to parse `data-insights-payload`.');
|
|
17
18
|
}
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
20
|
+
|
|
21
|
+
/** @deprecated use bindEvent instead */
|
|
22
22
|
export function writeDataAttributes(_ref) {
|
|
23
23
|
var method = _ref.method,
|
|
24
24
|
payload = _ref.payload;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import EventEmitter from '@algolia/events';
|
|
2
|
-
import type { InsightsEvent } from '../middlewares/createInsightsMiddleware';
|
|
2
|
+
import type { InsightsEvent, InsightsProps } from '../middlewares/createInsightsMiddleware';
|
|
3
3
|
import type { RouterProps } from '../middlewares/createRouterMiddleware';
|
|
4
4
|
import type { InsightsClient as AlgoliaInsightsClient, SearchClient, Widget, UiState, CreateURL, Middleware, MiddlewareDefinition, RenderState, InitialResults } from '../types';
|
|
5
5
|
import type { IndexWidget } from '../widgets/index/index';
|
|
@@ -10,9 +10,9 @@ type NoInfer<T> = T extends infer S ? S : never;
|
|
|
10
10
|
*/
|
|
11
11
|
export type InstantSearchOptions<TUiState extends UiState = UiState, TRouteState = TUiState> = {
|
|
12
12
|
/**
|
|
13
|
-
* The name of the main index
|
|
13
|
+
* The name of the main index. If no indexName is provided, you have to manually add an index widget.
|
|
14
14
|
*/
|
|
15
|
-
indexName
|
|
15
|
+
indexName?: string;
|
|
16
16
|
/**
|
|
17
17
|
* The search client to plug to InstantSearch.js
|
|
18
18
|
*
|
|
@@ -61,7 +61,7 @@ export type InstantSearchOptions<TUiState extends UiState = UiState, TRouteState
|
|
|
61
61
|
*/
|
|
62
62
|
onStateChange?: (params: {
|
|
63
63
|
uiState: TUiState;
|
|
64
|
-
setUiState(uiState: TUiState | ((previousUiState: TUiState) => TUiState))
|
|
64
|
+
setUiState: (uiState: TUiState | ((previousUiState: TUiState) => TUiState)) => void;
|
|
65
65
|
}) => void;
|
|
66
66
|
/**
|
|
67
67
|
* Injects a `uiState` to the `instantsearch` instance. You can use this option
|
|
@@ -79,6 +79,16 @@ export type InstantSearchOptions<TUiState extends UiState = UiState, TRouteState
|
|
|
79
79
|
* client side persistence. Passing `true` will use the default URL options.
|
|
80
80
|
*/
|
|
81
81
|
routing?: RouterProps<TUiState, TRouteState> | boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Enables the Insights middleware and loads the Insights library
|
|
84
|
+
* if not already loaded.
|
|
85
|
+
*
|
|
86
|
+
* The Insights middleware sends view and click events automatically, and lets
|
|
87
|
+
* you set up your own events.
|
|
88
|
+
*
|
|
89
|
+
* @default false
|
|
90
|
+
*/
|
|
91
|
+
insights?: InsightsProps | boolean;
|
|
82
92
|
/**
|
|
83
93
|
* the instance of search-insights to use for sending insights events inside
|
|
84
94
|
* widgets like `hits`.
|
|
@@ -112,8 +122,8 @@ declare class InstantSearch<TUiState extends UiState = UiState, TRouteState = TU
|
|
|
112
122
|
_searchFunction?: InstantSearchOptions['searchFunction'];
|
|
113
123
|
_mainHelperSearch?: AlgoliaSearchHelper['search'];
|
|
114
124
|
middleware: Array<{
|
|
115
|
-
creator: Middleware
|
|
116
|
-
instance: MiddlewareDefinition
|
|
125
|
+
creator: Middleware<TUiState>;
|
|
126
|
+
instance: MiddlewareDefinition<TUiState>;
|
|
117
127
|
}>;
|
|
118
128
|
sendEventToInsights: (event: InsightsEvent) => void;
|
|
119
129
|
/**
|
|
@@ -133,11 +143,11 @@ declare class InstantSearch<TUiState extends UiState = UiState, TRouteState = TU
|
|
|
133
143
|
/**
|
|
134
144
|
* Hooks a middleware into the InstantSearch lifecycle.
|
|
135
145
|
*/
|
|
136
|
-
use(...middleware: Middleware
|
|
146
|
+
use(...middleware: Array<Middleware<TUiState>>): this;
|
|
137
147
|
/**
|
|
138
148
|
* Removes a middleware from the InstantSearch lifecycle.
|
|
139
149
|
*/
|
|
140
|
-
unuse(...middlewareToUnuse: Middleware
|
|
150
|
+
unuse(...middlewareToUnuse: Array<Middleware<TUiState>>): this;
|
|
141
151
|
EXPERIMENTAL_use(...middleware: Middleware[]): this;
|
|
142
152
|
/**
|
|
143
153
|
* Adds a widget to the search instance.
|
|
@@ -183,12 +193,12 @@ declare class InstantSearch<TUiState extends UiState = UiState, TRouteState = TU
|
|
|
183
193
|
*/
|
|
184
194
|
dispose(): void;
|
|
185
195
|
scheduleSearch: (() => void) & {
|
|
186
|
-
wait()
|
|
187
|
-
cancel()
|
|
196
|
+
wait: () => Promise<void>;
|
|
197
|
+
cancel: () => void;
|
|
188
198
|
};
|
|
189
199
|
scheduleRender: ((shouldResetStatus?: boolean) => void) & {
|
|
190
|
-
wait()
|
|
191
|
-
cancel()
|
|
200
|
+
wait: () => Promise<void>;
|
|
201
|
+
cancel: () => void;
|
|
192
202
|
};
|
|
193
203
|
scheduleStalledRender(): void;
|
|
194
204
|
/**
|
|
@@ -199,8 +209,8 @@ declare class InstantSearch<TUiState extends UiState = UiState, TRouteState = TU
|
|
|
199
209
|
setUiState(uiState: TUiState | ((previousUiState: TUiState) => TUiState), callOnStateChange?: boolean): void;
|
|
200
210
|
getUiState(): TUiState;
|
|
201
211
|
onInternalStateChange: (() => void) & {
|
|
202
|
-
wait()
|
|
203
|
-
cancel()
|
|
212
|
+
wait: () => Promise<void>;
|
|
213
|
+
cancel: () => void;
|
|
204
214
|
};
|
|
205
215
|
createURL(nextState?: TUiState): string;
|
|
206
216
|
refresh(): void;
|