instantsearch.js 4.69.0 → 4.71.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/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.js +1 -2
- package/cjs/connectors/geo-search/connectGeoSearch.js +4 -3
- package/cjs/connectors/hits/connectHits.js +10 -7
- package/cjs/connectors/infinite-hits/connectInfiniteHits.js +7 -8
- package/cjs/connectors/looking-similar/connectLookingSimilar.js +2 -3
- package/cjs/connectors/related-products/connectRelatedProducts.js +2 -3
- package/cjs/connectors/trending-items/connectTrendingItems.js +5 -3
- package/cjs/lib/InstantSearch.js +3 -2
- package/cjs/lib/server.js +28 -9
- package/cjs/lib/utils/addWidgetId.js +4 -0
- package/cjs/lib/utils/hydrateRecommendCache.js +23 -0
- package/cjs/lib/utils/hydrateSearchClient.js +7 -3
- package/cjs/lib/utils/index.js +22 -0
- package/cjs/lib/version.js +1 -1
- package/cjs/widgets/frequently-bought-together/frequently-bought-together.js +1 -3
- package/cjs/widgets/geo-search/geo-search.js +4 -3
- package/cjs/widgets/hits/defaultTemplates.js +2 -0
- package/cjs/widgets/hits/hits.js +3 -4
- package/cjs/widgets/index/index.js +8 -1
- package/cjs/widgets/infinite-hits/infinite-hits.js +3 -4
- package/cjs/widgets/looking-similar/looking-similar.js +4 -6
- package/cjs/widgets/rating-menu/defaultTemplates.js +1 -0
- package/cjs/widgets/related-products/related-products.js +1 -3
- package/cjs/widgets/trending-items/trending-items.js +1 -3
- package/dist/instantsearch.development.d.ts +4306 -237
- package/dist/instantsearch.development.js +8572 -8530
- package/dist/instantsearch.development.js.map +1 -1
- package/dist/instantsearch.production.d.ts +4306 -237
- package/dist/instantsearch.production.min.d.ts +4306 -237
- package/dist/instantsearch.production.min.js +2 -2
- package/dist/instantsearch.production.min.js.map +1 -1
- package/es/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.d.ts +311 -7
- package/es/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.js +2 -3
- package/es/connectors/geo-search/connectGeoSearch.d.ts +218 -8
- package/es/connectors/geo-search/connectGeoSearch.js +5 -4
- package/es/connectors/hits/connectHits.d.ts +128 -7
- package/es/connectors/hits/connectHits.js +11 -8
- package/es/connectors/hits/connectHitsWithInsights.d.ts +190 -1
- package/es/connectors/infinite-hits/connectInfiniteHits.d.ts +192 -12
- package/es/connectors/infinite-hits/connectInfiniteHits.js +8 -9
- package/es/connectors/infinite-hits/connectInfiniteHitsWithInsights.d.ts +249 -1
- package/es/connectors/looking-similar/connectLookingSimilar.d.ts +303 -7
- package/es/connectors/looking-similar/connectLookingSimilar.js +3 -4
- package/es/connectors/related-products/connectRelatedProducts.d.ts +303 -7
- package/es/connectors/related-products/connectRelatedProducts.js +3 -4
- package/es/connectors/trending-items/connectTrendingItems.d.ts +310 -9
- package/es/connectors/trending-items/connectTrendingItems.js +7 -5
- package/es/lib/InstantSearch.d.ts +1 -2
- package/es/lib/InstantSearch.js +3 -2
- package/es/lib/server.d.ts +1 -1
- package/es/lib/server.js +28 -9
- package/es/lib/utils/addWidgetId.d.ts +1 -0
- package/es/lib/utils/addWidgetId.js +3 -0
- package/es/lib/utils/checkIndexUiState.d.ts +1 -2
- package/es/lib/utils/checkRendering.d.ts +1 -1
- package/es/lib/utils/getWidgetAttribute.d.ts +1 -2
- package/es/lib/utils/hydrateRecommendCache.d.ts +3 -0
- package/es/lib/utils/hydrateRecommendCache.js +17 -0
- package/es/lib/utils/hydrateSearchClient.js +7 -3
- package/es/lib/utils/index.d.ts +2 -0
- package/es/lib/utils/index.js +2 -0
- package/es/lib/utils/isIndexWidget.d.ts +1 -2
- package/es/lib/utils/render-args.d.ts +1 -2
- package/es/lib/utils/resolveSearchParameters.d.ts +1 -1
- package/es/lib/utils/setIndexHelperState.d.ts +1 -2
- package/es/lib/version.d.ts +1 -1
- package/es/lib/version.js +1 -1
- package/es/types/index.d.ts +0 -1
- package/es/types/index.js +1 -4
- package/es/types/results.d.ts +11 -6
- package/es/types/widget.d.ts +2 -2
- package/es/widgets/frequently-bought-together/frequently-bought-together.d.ts +306 -9
- package/es/widgets/frequently-bought-together/frequently-bought-together.js +2 -4
- package/es/widgets/geo-search/geo-search.d.ts +328 -8
- package/es/widgets/geo-search/geo-search.js +5 -4
- package/es/widgets/hits/defaultTemplates.d.ts +32 -2
- package/es/widgets/hits/defaultTemplates.js +3 -0
- package/es/widgets/hits/hits.d.ts +204 -8
- package/es/widgets/hits/hits.js +4 -5
- package/es/widgets/index/index.js +8 -1
- package/es/widgets/index.d.ts +1 -0
- package/es/widgets/infinite-hits/infinite-hits.d.ts +262 -9
- package/es/widgets/infinite-hits/infinite-hits.js +4 -5
- package/es/widgets/looking-similar/looking-similar.d.ts +309 -9
- package/es/widgets/looking-similar/looking-similar.js +5 -7
- package/es/widgets/rating-menu/defaultTemplates.js +1 -0
- package/es/widgets/related-products/related-products.d.ts +306 -9
- package/es/widgets/related-products/related-products.js +2 -4
- package/es/widgets/trending-items/trending-items.d.ts +310 -9
- package/es/widgets/trending-items/trending-items.js +2 -4
- package/package.json +6 -6
|
@@ -176,7 +176,9 @@ var connectGeoSearch = function connectGeoSearch(renderFn) {
|
|
|
176
176
|
widgetParams: widgetParams
|
|
177
177
|
};
|
|
178
178
|
},
|
|
179
|
-
getRenderState: function getRenderState(renderState, renderOptions
|
|
179
|
+
getRenderState: function getRenderState(renderState, renderOptions
|
|
180
|
+
// Type is explicitly redefined, to avoid having the TWidgetParams type in the definition
|
|
181
|
+
) {
|
|
180
182
|
return _objectSpread(_objectSpread({}, renderState), {}, {
|
|
181
183
|
geoSearch: this.getWidgetRenderState(renderOptions)
|
|
182
184
|
});
|
|
@@ -208,5 +210,4 @@ var connectGeoSearch = function connectGeoSearch(renderFn) {
|
|
|
208
210
|
};
|
|
209
211
|
};
|
|
210
212
|
};
|
|
211
|
-
|
|
212
|
-
exports.default = _default;
|
|
213
|
+
exports.default = connectGeoSearch;
|
|
@@ -40,9 +40,11 @@ var connectHits = function connectHits(renderFn) {
|
|
|
40
40
|
renderFn(_objectSpread(_objectSpread({}, renderState), {}, {
|
|
41
41
|
instantSearchInstance: renderOptions.instantSearchInstance
|
|
42
42
|
}), false);
|
|
43
|
-
renderState.sendEvent('view:internal', renderState.
|
|
43
|
+
renderState.sendEvent('view:internal', renderState.items);
|
|
44
44
|
},
|
|
45
|
-
getRenderState: function getRenderState(renderState, renderOptions
|
|
45
|
+
getRenderState: function getRenderState(renderState, renderOptions
|
|
46
|
+
// Type is explicitly redefined, to avoid having the TWidgetParams type in the definition
|
|
47
|
+
) {
|
|
46
48
|
return _objectSpread(_objectSpread({}, renderState), {}, {
|
|
47
49
|
hits: this.getWidgetRenderState(renderOptions)
|
|
48
50
|
});
|
|
@@ -73,6 +75,7 @@ var connectHits = function connectHits(renderFn) {
|
|
|
73
75
|
if (!results) {
|
|
74
76
|
return {
|
|
75
77
|
hits: [],
|
|
78
|
+
items: [],
|
|
76
79
|
results: undefined,
|
|
77
80
|
banner: undefined,
|
|
78
81
|
sendEvent: sendEvent,
|
|
@@ -85,12 +88,13 @@ var connectHits = function connectHits(renderFn) {
|
|
|
85
88
|
}
|
|
86
89
|
var hitsWithAbsolutePosition = (0, _utils.addAbsolutePosition)(results.hits, results.page, results.hitsPerPage);
|
|
87
90
|
var hitsWithAbsolutePositionAndQueryID = (0, _utils.addQueryID)(hitsWithAbsolutePosition, results.queryID);
|
|
88
|
-
var
|
|
91
|
+
var items = transformItems(hitsWithAbsolutePositionAndQueryID, {
|
|
89
92
|
results: results
|
|
90
93
|
});
|
|
91
94
|
var banner = (_results$renderingCon = results.renderingContent) === null || _results$renderingCon === void 0 ? void 0 : (_results$renderingCon2 = _results$renderingCon.widgets) === null || _results$renderingCon2 === void 0 ? void 0 : (_results$renderingCon3 = _results$renderingCon2.banners) === null || _results$renderingCon3 === void 0 ? void 0 : _results$renderingCon3[0];
|
|
92
95
|
return {
|
|
93
|
-
hits:
|
|
96
|
+
hits: items,
|
|
97
|
+
items: items,
|
|
94
98
|
results: results,
|
|
95
99
|
banner: banner,
|
|
96
100
|
sendEvent: sendEvent,
|
|
@@ -108,7 +112,7 @@ var connectHits = function connectHits(renderFn) {
|
|
|
108
112
|
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));
|
|
109
113
|
}, {}));
|
|
110
114
|
},
|
|
111
|
-
getWidgetSearchParameters: function getWidgetSearchParameters(state) {
|
|
115
|
+
getWidgetSearchParameters: function getWidgetSearchParameters(state, _uiState) {
|
|
112
116
|
if (!escapeHTML) {
|
|
113
117
|
return state;
|
|
114
118
|
}
|
|
@@ -119,5 +123,4 @@ var connectHits = function connectHits(renderFn) {
|
|
|
119
123
|
};
|
|
120
124
|
};
|
|
121
125
|
};
|
|
122
|
-
|
|
123
|
-
exports.default = _default;
|
|
126
|
+
exports.default = connectHits;
|
|
@@ -64,9 +64,6 @@ function extractHitsFromCachedHits(cachedHits) {
|
|
|
64
64
|
var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
65
65
|
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
|
|
66
66
|
(0, _utils.checkRendering)(renderFn, withUsage());
|
|
67
|
-
|
|
68
|
-
// @TODO: this should be a generic, but a Connector can not yet be generic itself
|
|
69
|
-
|
|
70
67
|
return function (widgetParams) {
|
|
71
68
|
var _ref5 = widgetParams || {},
|
|
72
69
|
_ref5$escapeHTML = _ref5.escapeHTML,
|
|
@@ -134,7 +131,9 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
134
131
|
}), false);
|
|
135
132
|
sendEvent('view:internal', widgetRenderState.currentPageHits);
|
|
136
133
|
},
|
|
137
|
-
getRenderState: function getRenderState(renderState, renderOptions
|
|
134
|
+
getRenderState: function getRenderState(renderState, renderOptions
|
|
135
|
+
// Type is explicitly redefined, to avoid having the TWidgetParams type in the definition
|
|
136
|
+
) {
|
|
138
137
|
return _objectSpread(_objectSpread({}, renderState), {}, {
|
|
139
138
|
infiniteHits: this.getWidgetRenderState(renderOptions)
|
|
140
139
|
});
|
|
@@ -212,10 +211,11 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
212
211
|
currentPageHits = transformedHits;
|
|
213
212
|
isFirstPage = getFirstReceivedPage(state, cachedHits) === 0;
|
|
214
213
|
}
|
|
215
|
-
var
|
|
214
|
+
var items = extractHitsFromCachedHits(cachedHits);
|
|
216
215
|
var isLastPage = results ? results.nbPages <= getLastReceivedPage(state, cachedHits) + 1 : true;
|
|
217
216
|
return {
|
|
218
|
-
hits:
|
|
217
|
+
hits: items,
|
|
218
|
+
items: items,
|
|
219
219
|
currentPageHits: currentPageHits,
|
|
220
220
|
sendEvent: sendEvent,
|
|
221
221
|
bindEvent: bindEvent,
|
|
@@ -268,5 +268,4 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
268
268
|
};
|
|
269
269
|
};
|
|
270
270
|
};
|
|
271
|
-
|
|
272
|
-
exports.default = _default;
|
|
271
|
+
exports.default = connectInfiniteHits;
|
|
@@ -18,7 +18,7 @@ var withUsage = (0, _utils.createDocumentationMessageGenerator)({
|
|
|
18
18
|
var connectLookingSimilar = function connectLookingSimilar(renderFn) {
|
|
19
19
|
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
|
|
20
20
|
(0, _utils.checkRendering)(renderFn, withUsage());
|
|
21
|
-
return function
|
|
21
|
+
return function (widgetParams) {
|
|
22
22
|
var _ref = widgetParams || {},
|
|
23
23
|
_ref$escapeHTML = _ref.escapeHTML,
|
|
24
24
|
escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML,
|
|
@@ -90,5 +90,4 @@ var connectLookingSimilar = function connectLookingSimilar(renderFn) {
|
|
|
90
90
|
};
|
|
91
91
|
};
|
|
92
92
|
};
|
|
93
|
-
|
|
94
|
-
exports.default = _default;
|
|
93
|
+
exports.default = connectLookingSimilar;
|
|
@@ -18,7 +18,7 @@ var withUsage = (0, _utils.createDocumentationMessageGenerator)({
|
|
|
18
18
|
var connectRelatedProducts = function connectRelatedProducts(renderFn) {
|
|
19
19
|
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
|
|
20
20
|
(0, _utils.checkRendering)(renderFn, withUsage());
|
|
21
|
-
return function
|
|
21
|
+
return function (widgetParams) {
|
|
22
22
|
var _ref = widgetParams || {},
|
|
23
23
|
_ref$escapeHTML = _ref.escapeHTML,
|
|
24
24
|
escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML,
|
|
@@ -90,5 +90,4 @@ var connectRelatedProducts = function connectRelatedProducts(renderFn) {
|
|
|
90
90
|
};
|
|
91
91
|
};
|
|
92
92
|
};
|
|
93
|
-
|
|
94
|
-
exports.default = _default;
|
|
93
|
+
exports.default = connectRelatedProducts;
|
|
@@ -18,7 +18,7 @@ var withUsage = (0, _utils.createDocumentationMessageGenerator)({
|
|
|
18
18
|
var connectTrendingItems = function connectTrendingItems(renderFn) {
|
|
19
19
|
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
|
|
20
20
|
(0, _utils.checkRendering)(renderFn, withUsage());
|
|
21
|
-
return function
|
|
21
|
+
return function (widgetParams) {
|
|
22
22
|
var _ref = widgetParams || {},
|
|
23
23
|
facetName = _ref.facetName,
|
|
24
24
|
facetValue = _ref.facetValue,
|
|
@@ -32,6 +32,9 @@ var connectTrendingItems = function connectTrendingItems(renderFn) {
|
|
|
32
32
|
transformItems = _ref$transformItems === void 0 ? function (items) {
|
|
33
33
|
return items;
|
|
34
34
|
} : _ref$transformItems;
|
|
35
|
+
if (facetName && !facetValue || !facetName && facetValue) {
|
|
36
|
+
throw new Error(withUsage("When you provide facetName (received type ".concat((0, _utils.getObjectType)(facetName), "), you must also provide facetValue (received type ").concat((0, _utils.getObjectType)(facetValue), ").")));
|
|
37
|
+
}
|
|
35
38
|
return {
|
|
36
39
|
dependsOn: 'recommend',
|
|
37
40
|
$$type: 'ais.trendingItems',
|
|
@@ -86,5 +89,4 @@ var connectTrendingItems = function connectTrendingItems(renderFn) {
|
|
|
86
89
|
};
|
|
87
90
|
};
|
|
88
91
|
};
|
|
89
|
-
|
|
90
|
-
exports.default = _default;
|
|
92
|
+
exports.default = connectTrendingItems;
|
package/cjs/lib/InstantSearch.js
CHANGED
|
@@ -9,7 +9,7 @@ var _algoliasearchHelper = _interopRequireDefault(require("algoliasearch-helper"
|
|
|
9
9
|
var _createInsightsMiddleware = require("../middlewares/createInsightsMiddleware");
|
|
10
10
|
var _createMetadataMiddleware = require("../middlewares/createMetadataMiddleware");
|
|
11
11
|
var _createRouterMiddleware = require("../middlewares/createRouterMiddleware");
|
|
12
|
-
var
|
|
12
|
+
var _widgets = require("../widgets");
|
|
13
13
|
var _createHelpers = _interopRequireDefault(require("./createHelpers"));
|
|
14
14
|
var _utils = require("./utils");
|
|
15
15
|
var _version = _interopRequireDefault(require("./version"));
|
|
@@ -175,7 +175,7 @@ var InstantSearch = /*#__PURE__*/function (_EventEmitter) {
|
|
|
175
175
|
_this.indexName = indexName;
|
|
176
176
|
_this.helper = null;
|
|
177
177
|
_this.mainHelper = null;
|
|
178
|
-
_this.mainIndex = (0,
|
|
178
|
+
_this.mainIndex = (0, _widgets.index)({
|
|
179
179
|
indexName: indexName
|
|
180
180
|
});
|
|
181
181
|
_this.onStateChange = onStateChange;
|
|
@@ -467,6 +467,7 @@ var InstantSearch = /*#__PURE__*/function (_EventEmitter) {
|
|
|
467
467
|
});
|
|
468
468
|
if (this._initialResults) {
|
|
469
469
|
(0, _utils.hydrateSearchClient)(this.client, this._initialResults);
|
|
470
|
+
(0, _utils.hydrateRecommendCache)(this.mainHelper, this._initialResults);
|
|
470
471
|
var originalScheduleSearch = this.scheduleSearch;
|
|
471
472
|
// We don't schedule a first search when initial results are provided
|
|
472
473
|
// because we already have the results to render. This skips the initial
|
package/cjs/lib/server.js
CHANGED
|
@@ -17,13 +17,14 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
|
|
|
17
17
|
* in `getServerState()`.
|
|
18
18
|
*/
|
|
19
19
|
function waitForResults(search) {
|
|
20
|
+
var skipRecommend = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
20
21
|
var helper = search.mainHelper;
|
|
21
22
|
|
|
22
23
|
// Extract search parameters from the search client to use them
|
|
23
24
|
// later during hydration.
|
|
24
25
|
var requestParamsList;
|
|
25
26
|
var client = helper.getClient();
|
|
26
|
-
helper.setClient({
|
|
27
|
+
helper.setClient(_objectSpread(_objectSpread({}, client), {}, {
|
|
27
28
|
search: function search(queries) {
|
|
28
29
|
requestParamsList = queries.map(function (_ref) {
|
|
29
30
|
var params = _ref.params;
|
|
@@ -31,13 +32,25 @@ function waitForResults(search) {
|
|
|
31
32
|
});
|
|
32
33
|
return client.search(queries);
|
|
33
34
|
}
|
|
34
|
-
});
|
|
35
|
-
helper.searchOnlyWithDerivedHelpers();
|
|
35
|
+
}));
|
|
36
|
+
search._hasSearchWidget && helper.searchOnlyWithDerivedHelpers();
|
|
37
|
+
!skipRecommend && search._hasRecommendWidget && helper.recommend();
|
|
36
38
|
return new Promise(function (resolve, reject) {
|
|
39
|
+
var searchResultsReceived = !search._hasSearchWidget;
|
|
40
|
+
var recommendResultsReceived = !search._hasRecommendWidget || skipRecommend;
|
|
37
41
|
// All derived helpers resolve in the same tick so we're safe only relying
|
|
38
42
|
// on the first one.
|
|
39
43
|
helper.derivedHelpers[0].on('result', function () {
|
|
40
|
-
|
|
44
|
+
searchResultsReceived = true;
|
|
45
|
+
if (recommendResultsReceived) {
|
|
46
|
+
resolve(requestParamsList);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
helper.derivedHelpers[0].on('recommend:result', function () {
|
|
50
|
+
recommendResultsReceived = true;
|
|
51
|
+
if (searchResultsReceived) {
|
|
52
|
+
resolve(requestParamsList);
|
|
53
|
+
}
|
|
41
54
|
});
|
|
42
55
|
|
|
43
56
|
// However, we listen to errors that can happen on any derived helper because
|
|
@@ -68,15 +81,21 @@ requestParamsList) {
|
|
|
68
81
|
var initialResults = {};
|
|
69
82
|
var requestParamsIndex = 0;
|
|
70
83
|
(0, _utils.walkIndex)(rootIndex, function (widget) {
|
|
84
|
+
var _widget$getHelper;
|
|
71
85
|
var searchResults = widget.getResults();
|
|
72
|
-
|
|
86
|
+
var recommendResults = (_widget$getHelper = widget.getHelper()) === null || _widget$getHelper === void 0 ? void 0 : _widget$getHelper.lastRecommendResults;
|
|
87
|
+
if (searchResults || recommendResults) {
|
|
73
88
|
var requestParams = requestParamsList === null || requestParamsList === void 0 ? void 0 : requestParamsList[requestParamsIndex++];
|
|
74
|
-
initialResults[widget.getIndexId()] = _objectSpread({
|
|
75
|
-
// We convert the Helper state to a plain object to pass parsable data
|
|
76
|
-
// structures from server to client.
|
|
89
|
+
initialResults[widget.getIndexId()] = _objectSpread(_objectSpread(_objectSpread({}, searchResults && {
|
|
77
90
|
state: _objectSpread({}, searchResults._state),
|
|
78
91
|
results: searchResults._rawResults
|
|
79
|
-
},
|
|
92
|
+
}), recommendResults && {
|
|
93
|
+
recommendResults: {
|
|
94
|
+
// We have to stringify + parse because of some explicitly undefined values.
|
|
95
|
+
params: JSON.parse(JSON.stringify(recommendResults._state.params)),
|
|
96
|
+
results: recommendResults._rawResults
|
|
97
|
+
}
|
|
98
|
+
}), requestParams && {
|
|
80
99
|
requestParams: requestParams
|
|
81
100
|
});
|
|
82
101
|
}
|
|
@@ -4,10 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.addWidgetId = addWidgetId;
|
|
7
|
+
exports.resetWidgetId = resetWidgetId;
|
|
7
8
|
var id = 0;
|
|
8
9
|
function addWidgetId(widget) {
|
|
9
10
|
if (widget.dependsOn !== 'recommend') {
|
|
10
11
|
return;
|
|
11
12
|
}
|
|
12
13
|
widget.$$id = id++;
|
|
14
|
+
}
|
|
15
|
+
function resetWidgetId() {
|
|
16
|
+
id = 0;
|
|
13
17
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.hydrateRecommendCache = hydrateRecommendCache;
|
|
7
|
+
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); }
|
|
8
|
+
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; }
|
|
9
|
+
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; }
|
|
10
|
+
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; }
|
|
11
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
12
|
+
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); }
|
|
13
|
+
function hydrateRecommendCache(helper, initialResults) {
|
|
14
|
+
var recommendCache = Object.keys(initialResults).reduce(function (acc, indexName) {
|
|
15
|
+
var initialResult = initialResults[indexName];
|
|
16
|
+
if (initialResult.recommendResults) {
|
|
17
|
+
// @MAJOR: Use `Object.assign` instead of spread operator
|
|
18
|
+
return _objectSpread(_objectSpread({}, acc), initialResult.recommendResults.results);
|
|
19
|
+
}
|
|
20
|
+
return acc;
|
|
21
|
+
}, {});
|
|
22
|
+
helper._recommendCache = recommendCache;
|
|
23
|
+
}
|
|
@@ -33,16 +33,20 @@ function hydrateSearchClient(client, results) {
|
|
|
33
33
|
state = _results$key.state,
|
|
34
34
|
requestParams = _results$key.requestParams,
|
|
35
35
|
serverResults = _results$key.results;
|
|
36
|
-
return serverResults.map(function (result) {
|
|
36
|
+
return serverResults && state ? serverResults.map(function (result) {
|
|
37
37
|
return _objectSpread({
|
|
38
38
|
indexName: state.index || result.index
|
|
39
39
|
}, requestParams || result.params ? {
|
|
40
40
|
params: serializeQueryParameters(requestParams || deserializeQueryParameters(result.params))
|
|
41
41
|
} : {});
|
|
42
|
-
});
|
|
42
|
+
}) : [];
|
|
43
43
|
});
|
|
44
44
|
var cachedResults = Object.keys(results).reduce(function (acc, key) {
|
|
45
|
-
|
|
45
|
+
var res = results[key].results;
|
|
46
|
+
if (!res) {
|
|
47
|
+
return acc;
|
|
48
|
+
}
|
|
49
|
+
return acc.concat(res);
|
|
46
50
|
}, []);
|
|
47
51
|
|
|
48
52
|
// Algoliasearch API Client >= v4
|
package/cjs/lib/utils/index.js
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
var _addWidgetId = require("./addWidgetId");
|
|
7
|
+
Object.keys(_addWidgetId).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _addWidgetId[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function get() {
|
|
13
|
+
return _addWidgetId[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
6
17
|
var _capitalize = require("./capitalize");
|
|
7
18
|
Object.keys(_capitalize).forEach(function (key) {
|
|
8
19
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -322,6 +333,17 @@ Object.keys(_hitsQueryId).forEach(function (key) {
|
|
|
322
333
|
}
|
|
323
334
|
});
|
|
324
335
|
});
|
|
336
|
+
var _hydrateRecommendCache = require("./hydrateRecommendCache");
|
|
337
|
+
Object.keys(_hydrateRecommendCache).forEach(function (key) {
|
|
338
|
+
if (key === "default" || key === "__esModule") return;
|
|
339
|
+
if (key in exports && exports[key] === _hydrateRecommendCache[key]) return;
|
|
340
|
+
Object.defineProperty(exports, key, {
|
|
341
|
+
enumerable: true,
|
|
342
|
+
get: function get() {
|
|
343
|
+
return _hydrateRecommendCache[key];
|
|
344
|
+
}
|
|
345
|
+
});
|
|
346
|
+
});
|
|
325
347
|
var _hydrateSearchClient = require("./hydrateSearchClient");
|
|
326
348
|
Object.keys(_hydrateSearchClient).forEach(function (key) {
|
|
327
349
|
if (key === "default" || key === "__esModule") return;
|
package/cjs/lib/version.js
CHANGED
|
@@ -36,7 +36,6 @@ var renderer = function renderer(_ref) {
|
|
|
36
36
|
instantSearchInstance = _ref2.instantSearchInstance;
|
|
37
37
|
if (isFirstRendering) {
|
|
38
38
|
renderState.templateProps = (0, _templating.prepareTemplateProps)({
|
|
39
|
-
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
40
39
|
defaultTemplates: {},
|
|
41
40
|
templatesConfig: instantSearchInstance.templatesConfig,
|
|
42
41
|
templates: templates
|
|
@@ -116,5 +115,4 @@ var frequentlyBoughtTogether = function frequentlyBoughtTogether(widgetParams) {
|
|
|
116
115
|
$$widgetType: 'ais.frequentlyBoughtTogether'
|
|
117
116
|
});
|
|
118
117
|
};
|
|
119
|
-
|
|
120
|
-
exports.default = _default;
|
|
118
|
+
exports.default = frequentlyBoughtTogether;
|
|
@@ -156,12 +156,14 @@ var geoSearch = function geoSearch(widgetParams) {
|
|
|
156
156
|
return (0, _preact.render)(null, containerNode);
|
|
157
157
|
});
|
|
158
158
|
return _objectSpread(_objectSpread({}, makeWidget(_objectSpread(_objectSpread({}, otherWidgetParams), {}, {
|
|
159
|
+
// @TODO: this type doesn't preserve the generic correctly,
|
|
160
|
+
// (but as they're internal only it's not a big problem)
|
|
161
|
+
templates: templates,
|
|
159
162
|
renderState: {},
|
|
160
163
|
container: containerNode,
|
|
161
164
|
googleReference: googleReference,
|
|
162
165
|
initialZoom: initialZoom,
|
|
163
166
|
initialPosition: initialPosition,
|
|
164
|
-
templates: templates,
|
|
165
167
|
cssClasses: cssClasses,
|
|
166
168
|
createMarker: createMarker,
|
|
167
169
|
markerOptions: markerOptions,
|
|
@@ -172,5 +174,4 @@ var geoSearch = function geoSearch(widgetParams) {
|
|
|
172
174
|
$$widgetType: 'ais.geoSearch'
|
|
173
175
|
});
|
|
174
176
|
};
|
|
175
|
-
|
|
176
|
-
exports.default = _default;
|
|
177
|
+
exports.default = geoSearch;
|
|
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _utils = require("../../lib/utils");
|
|
8
|
+
// false positive lint error
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-imports
|
|
8
10
|
var defaultTemplates = {
|
|
9
11
|
empty: function empty() {
|
|
10
12
|
return 'No results';
|
package/cjs/widgets/hits/hits.js
CHANGED
|
@@ -38,7 +38,7 @@ var renderer = function renderer(_ref) {
|
|
|
38
38
|
containerNode = _ref.containerNode,
|
|
39
39
|
templates = _ref.templates;
|
|
40
40
|
return function (_ref2, isFirstRendering) {
|
|
41
|
-
var
|
|
41
|
+
var items = _ref2.items,
|
|
42
42
|
results = _ref2.results,
|
|
43
43
|
instantSearchInstance = _ref2.instantSearchInstance,
|
|
44
44
|
insights = _ref2.insights,
|
|
@@ -104,7 +104,7 @@ var renderer = function renderer(_ref) {
|
|
|
104
104
|
}));
|
|
105
105
|
};
|
|
106
106
|
(0, _preact.render)((0, _preact.h)(Hits, {
|
|
107
|
-
hits:
|
|
107
|
+
hits: items,
|
|
108
108
|
itemComponent: itemComponent,
|
|
109
109
|
sendEvent: sendEvent,
|
|
110
110
|
classNames: cssClasses,
|
|
@@ -143,5 +143,4 @@ var hits = function hits(widgetParams) {
|
|
|
143
143
|
$$widgetType: 'ais.hits'
|
|
144
144
|
});
|
|
145
145
|
};
|
|
146
|
-
|
|
147
|
-
exports.default = _default;
|
|
146
|
+
exports.default = hits;
|
|
@@ -403,13 +403,20 @@ var index = function index(widgetParams) {
|
|
|
403
403
|
return _this3.getHelper().recommendState;
|
|
404
404
|
});
|
|
405
405
|
var indexInitialResults = (_instantSearchInstanc = instantSearchInstance._initialResults) === null || _instantSearchInstanc === void 0 ? void 0 : _instantSearchInstanc[this.getIndexId()];
|
|
406
|
-
if (indexInitialResults) {
|
|
406
|
+
if (indexInitialResults !== null && indexInitialResults !== void 0 && indexInitialResults.results) {
|
|
407
407
|
// We restore the shape of the results provided to the instance to respect
|
|
408
408
|
// the helper's structure.
|
|
409
409
|
var results = new _algoliasearchHelper.default.SearchResults(new _algoliasearchHelper.default.SearchParameters(indexInitialResults.state), indexInitialResults.results);
|
|
410
410
|
derivedHelper.lastResults = results;
|
|
411
411
|
helper.lastResults = results;
|
|
412
412
|
}
|
|
413
|
+
if (indexInitialResults !== null && indexInitialResults !== void 0 && indexInitialResults.recommendResults) {
|
|
414
|
+
var recommendResults = new _algoliasearchHelper.default.RecommendResults(new _algoliasearchHelper.default.RecommendParameters({
|
|
415
|
+
params: indexInitialResults.recommendResults.params
|
|
416
|
+
}), indexInitialResults.recommendResults.results);
|
|
417
|
+
derivedHelper.lastRecommendResults = recommendResults;
|
|
418
|
+
helper.lastRecommendResults = recommendResults;
|
|
419
|
+
}
|
|
413
420
|
|
|
414
421
|
// Subscribe to the Helper state changes for the page before widgets
|
|
415
422
|
// are initialized. This behavior mimics the original one of the Helper.
|
|
@@ -31,7 +31,7 @@ var renderer = function renderer(_ref) {
|
|
|
31
31
|
templates = _ref.templates,
|
|
32
32
|
hasShowPrevious = _ref.showPrevious;
|
|
33
33
|
return function (_ref2, isFirstRendering) {
|
|
34
|
-
var
|
|
34
|
+
var items = _ref2.items,
|
|
35
35
|
results = _ref2.results,
|
|
36
36
|
showMore = _ref2.showMore,
|
|
37
37
|
showPrevious = _ref2.showPrevious,
|
|
@@ -51,7 +51,7 @@ var renderer = function renderer(_ref) {
|
|
|
51
51
|
}
|
|
52
52
|
(0, _preact.render)((0, _preact.h)(_InfiniteHits.default, {
|
|
53
53
|
cssClasses: cssClasses,
|
|
54
|
-
hits:
|
|
54
|
+
hits: items,
|
|
55
55
|
results: results,
|
|
56
56
|
hasShowPrevious: hasShowPrevious,
|
|
57
57
|
showPrevious: showPrevious,
|
|
@@ -125,5 +125,4 @@ var infiniteHits = function infiniteHits(widgetParams) {
|
|
|
125
125
|
$$widgetType: 'ais.infiniteHits'
|
|
126
126
|
});
|
|
127
127
|
};
|
|
128
|
-
|
|
129
|
-
exports.default = _default;
|
|
128
|
+
exports.default = infiniteHits;
|
|
@@ -25,7 +25,7 @@ var LookingSimilar = (0, _instantsearchUiComponents.createLookingSimilarComponen
|
|
|
25
25
|
createElement: _preact.h,
|
|
26
26
|
Fragment: _preact.Fragment
|
|
27
27
|
});
|
|
28
|
-
|
|
28
|
+
function createRenderer(_ref) {
|
|
29
29
|
var renderState = _ref.renderState,
|
|
30
30
|
cssClasses = _ref.cssClasses,
|
|
31
31
|
containerNode = _ref.containerNode,
|
|
@@ -36,7 +36,6 @@ var renderer = function renderer(_ref) {
|
|
|
36
36
|
instantSearchInstance = _ref2.instantSearchInstance;
|
|
37
37
|
if (isFirstRendering) {
|
|
38
38
|
renderState.templateProps = (0, _templating.prepareTemplateProps)({
|
|
39
|
-
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
40
39
|
defaultTemplates: {},
|
|
41
40
|
templatesConfig: instantSearchInstance.templatesConfig,
|
|
42
41
|
templates: templates
|
|
@@ -78,7 +77,7 @@ var renderer = function renderer(_ref) {
|
|
|
78
77
|
status: instantSearchInstance.status
|
|
79
78
|
}), containerNode);
|
|
80
79
|
};
|
|
81
|
-
}
|
|
80
|
+
}
|
|
82
81
|
var lookingSimilar = function lookingSimilar(widgetParams) {
|
|
83
82
|
var _ref4 = widgetParams || {},
|
|
84
83
|
container = _ref4.container,
|
|
@@ -97,7 +96,7 @@ var lookingSimilar = function lookingSimilar(widgetParams) {
|
|
|
97
96
|
throw new Error(withUsage('The `container` option is required.'));
|
|
98
97
|
}
|
|
99
98
|
var containerNode = (0, _utils.getContainerNode)(container);
|
|
100
|
-
var specializedRenderer =
|
|
99
|
+
var specializedRenderer = createRenderer({
|
|
101
100
|
containerNode: containerNode,
|
|
102
101
|
cssClasses: cssClasses,
|
|
103
102
|
renderState: {},
|
|
@@ -118,5 +117,4 @@ var lookingSimilar = function lookingSimilar(widgetParams) {
|
|
|
118
117
|
$$widgetType: 'ais.lookingSimilar'
|
|
119
118
|
});
|
|
120
119
|
};
|
|
121
|
-
|
|
122
|
-
exports.default = _default;
|
|
120
|
+
exports.default = lookingSimilar;
|
|
@@ -49,6 +49,7 @@ var defaultTemplates = {
|
|
|
49
49
|
xlinkHref: isFull ? '#ais-RatingMenu-starSymbol' : '#ais-RatingMenu-starEmptySymbol'
|
|
50
50
|
}));
|
|
51
51
|
}), (0, _preact.h)("span", {
|
|
52
|
+
"aria-hidden": "true",
|
|
52
53
|
className: (0, _instantsearchUiComponents.cx)(cssClasses.label)
|
|
53
54
|
}, "& Up"), count && (0, _preact.h)("span", {
|
|
54
55
|
className: (0, _instantsearchUiComponents.cx)(cssClasses.count)
|
|
@@ -36,7 +36,6 @@ function createRenderer(_ref) {
|
|
|
36
36
|
instantSearchInstance = _ref2.instantSearchInstance;
|
|
37
37
|
if (isFirstRendering) {
|
|
38
38
|
renderState.templateProps = (0, _templating.prepareTemplateProps)({
|
|
39
|
-
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
40
39
|
defaultTemplates: {},
|
|
41
40
|
templatesConfig: instantSearchInstance.templatesConfig,
|
|
42
41
|
templates: templates
|
|
@@ -118,5 +117,4 @@ var relatedProducts = function relatedProducts(widgetParams) {
|
|
|
118
117
|
$$widgetType: 'ais.relatedProducts'
|
|
119
118
|
});
|
|
120
119
|
};
|
|
121
|
-
|
|
122
|
-
exports.default = _default;
|
|
120
|
+
exports.default = relatedProducts;
|
|
@@ -36,7 +36,6 @@ function createRenderer(_ref) {
|
|
|
36
36
|
instantSearchInstance = _ref2.instantSearchInstance;
|
|
37
37
|
if (isFirstRendering) {
|
|
38
38
|
renderState.templateProps = (0, _templating.prepareTemplateProps)({
|
|
39
|
-
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
40
39
|
defaultTemplates: {},
|
|
41
40
|
templatesConfig: instantSearchInstance.templatesConfig,
|
|
42
41
|
templates: templates
|
|
@@ -122,5 +121,4 @@ var trendingItems = function trendingItems(widgetParams) {
|
|
|
122
121
|
$$widgetType: 'ais.trendingItems'
|
|
123
122
|
});
|
|
124
123
|
};
|
|
125
|
-
|
|
126
|
-
exports.default = _default;
|
|
124
|
+
exports.default = trendingItems;
|