instantsearch.js 4.68.1 → 4.70.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 +93 -0
- package/cjs/connectors/index.js +28 -0
- package/cjs/connectors/looking-similar/connectLookingSimilar.js +94 -0
- package/cjs/connectors/related-products/connectRelatedProducts.js +94 -0
- package/cjs/connectors/trending-items/connectTrendingItems.js +90 -0
- package/cjs/lib/InstantSearch.js +10 -1
- package/cjs/lib/server.js +28 -9
- package/cjs/lib/utils/addWidgetId.js +17 -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/utils/render-args.js +3 -3
- package/cjs/lib/version.js +1 -1
- package/cjs/widgets/frequently-bought-together/frequently-bought-together.js +120 -0
- package/cjs/widgets/index/index.js +89 -20
- package/cjs/widgets/index.js +28 -0
- package/cjs/widgets/looking-similar/looking-similar.js +122 -0
- package/cjs/widgets/related-products/related-products.js +122 -0
- package/cjs/widgets/trending-items/trending-items.js +126 -0
- package/dist/instantsearch.development.d.ts +411 -12
- package/dist/instantsearch.development.js +1702 -265
- package/dist/instantsearch.development.js.map +1 -1
- package/dist/instantsearch.production.d.ts +411 -12
- package/dist/instantsearch.production.min.d.ts +411 -12
- 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 +45 -0
- package/es/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.js +86 -0
- package/es/connectors/index.d.ts +4 -0
- package/es/connectors/index.js +5 -1
- package/es/connectors/looking-similar/connectLookingSimilar.d.ts +49 -0
- package/es/connectors/looking-similar/connectLookingSimilar.js +87 -0
- package/es/connectors/related-products/connectRelatedProducts.d.ts +49 -0
- package/es/connectors/related-products/connectRelatedProducts.js +87 -0
- package/es/connectors/trending-items/connectTrendingItems.d.ts +57 -0
- package/es/connectors/trending-items/connectTrendingItems.js +83 -0
- package/es/lib/InstantSearch.d.ts +2 -0
- package/es/lib/InstantSearch.js +11 -2
- package/es/lib/server.d.ts +1 -1
- package/es/lib/server.js +28 -9
- package/es/lib/templating/renderTemplate.d.ts +1 -1
- package/es/lib/utils/addWidgetId.d.ts +3 -0
- package/es/lib/utils/addWidgetId.js +10 -0
- 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/render-args.d.ts +3 -3
- package/es/lib/utils/render-args.js +3 -3
- package/es/lib/version.d.ts +1 -1
- package/es/lib/version.js +1 -1
- package/es/types/results.d.ts +7 -3
- package/es/types/templates.d.ts +1 -1
- package/es/types/widget.d.ts +16 -9
- package/es/widgets/frequently-bought-together/frequently-bought-together.d.ts +41 -0
- package/es/widgets/frequently-bought-together/frequently-bought-together.js +112 -0
- package/es/widgets/index/index.d.ts +2 -1
- package/es/widgets/index/index.js +89 -20
- package/es/widgets/index.d.ts +4 -0
- package/es/widgets/index.js +5 -1
- package/es/widgets/looking-similar/looking-similar.d.ts +41 -0
- package/es/widgets/looking-similar/looking-similar.js +114 -0
- package/es/widgets/related-products/related-products.d.ts +41 -0
- package/es/widgets/related-products/related-products.js +114 -0
- package/es/widgets/trending-items/trending-items.d.ts +41 -0
- package/es/widgets/trending-items/trending-items.js +118 -0
- package/package.json +7 -7
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _utils = require("../../lib/utils");
|
|
8
|
+
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); }
|
|
9
|
+
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; }
|
|
10
|
+
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; }
|
|
11
|
+
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; }
|
|
12
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
13
|
+
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); }
|
|
14
|
+
var withUsage = (0, _utils.createDocumentationMessageGenerator)({
|
|
15
|
+
name: 'frequently-bought-together',
|
|
16
|
+
connector: true
|
|
17
|
+
});
|
|
18
|
+
var connectFrequentlyBoughtTogether = function connectFrequentlyBoughtTogether(renderFn) {
|
|
19
|
+
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
|
|
20
|
+
(0, _utils.checkRendering)(renderFn, withUsage());
|
|
21
|
+
return function (widgetParams) {
|
|
22
|
+
var _ref = widgetParams || {},
|
|
23
|
+
_ref$escapeHTML = _ref.escapeHTML,
|
|
24
|
+
escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML,
|
|
25
|
+
_ref$transformItems = _ref.transformItems,
|
|
26
|
+
transformItems = _ref$transformItems === void 0 ? function (items) {
|
|
27
|
+
return items;
|
|
28
|
+
} : _ref$transformItems,
|
|
29
|
+
objectIDs = _ref.objectIDs,
|
|
30
|
+
limit = _ref.limit,
|
|
31
|
+
threshold = _ref.threshold,
|
|
32
|
+
queryParameters = _ref.queryParameters;
|
|
33
|
+
if (!objectIDs || objectIDs.length === 0) {
|
|
34
|
+
throw new Error(withUsage('The `objectIDs` option is required.'));
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
dependsOn: 'recommend',
|
|
38
|
+
$$type: 'ais.frequentlyBoughtTogether',
|
|
39
|
+
init: function init(initOptions) {
|
|
40
|
+
renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {
|
|
41
|
+
instantSearchInstance: initOptions.instantSearchInstance
|
|
42
|
+
}), true);
|
|
43
|
+
},
|
|
44
|
+
render: function render(renderOptions) {
|
|
45
|
+
var renderState = this.getWidgetRenderState(renderOptions);
|
|
46
|
+
renderFn(_objectSpread(_objectSpread({}, renderState), {}, {
|
|
47
|
+
instantSearchInstance: renderOptions.instantSearchInstance
|
|
48
|
+
}), false);
|
|
49
|
+
},
|
|
50
|
+
getRenderState: function getRenderState(renderState) {
|
|
51
|
+
return renderState;
|
|
52
|
+
},
|
|
53
|
+
getWidgetRenderState: function getWidgetRenderState(_ref2) {
|
|
54
|
+
var results = _ref2.results;
|
|
55
|
+
if (results === null || results === undefined) {
|
|
56
|
+
return {
|
|
57
|
+
items: [],
|
|
58
|
+
widgetParams: widgetParams
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
if (escapeHTML && results.hits.length > 0) {
|
|
62
|
+
results.hits = (0, _utils.escapeHits)(results.hits);
|
|
63
|
+
}
|
|
64
|
+
var transformedItems = transformItems(results.hits, {
|
|
65
|
+
results: results
|
|
66
|
+
});
|
|
67
|
+
return {
|
|
68
|
+
items: transformedItems,
|
|
69
|
+
widgetParams: widgetParams
|
|
70
|
+
};
|
|
71
|
+
},
|
|
72
|
+
dispose: function dispose(_ref3) {
|
|
73
|
+
var recommendState = _ref3.recommendState;
|
|
74
|
+
unmountFn();
|
|
75
|
+
return recommendState.removeParams(this.$$id);
|
|
76
|
+
},
|
|
77
|
+
getWidgetParameters: function getWidgetParameters(state) {
|
|
78
|
+
var _this = this;
|
|
79
|
+
return objectIDs.reduce(function (acc, objectID) {
|
|
80
|
+
return acc.addFrequentlyBoughtTogether({
|
|
81
|
+
objectID: objectID,
|
|
82
|
+
threshold: threshold,
|
|
83
|
+
maxRecommendations: limit,
|
|
84
|
+
queryParameters: _objectSpread(_objectSpread({}, queryParameters), escapeHTML ? _utils.TAG_PLACEHOLDER : {}),
|
|
85
|
+
$$id: _this.$$id
|
|
86
|
+
});
|
|
87
|
+
}, state.removeParams(this.$$id));
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
var _default = connectFrequentlyBoughtTogether;
|
|
93
|
+
exports.default = _default;
|
package/cjs/connectors/index.js
CHANGED
|
@@ -47,6 +47,12 @@ Object.defineProperty(exports, "connectDynamicWidgets", {
|
|
|
47
47
|
return _connectDynamicWidgets.default;
|
|
48
48
|
}
|
|
49
49
|
});
|
|
50
|
+
Object.defineProperty(exports, "connectFrequentlyBoughtTogether", {
|
|
51
|
+
enumerable: true,
|
|
52
|
+
get: function get() {
|
|
53
|
+
return _connectFrequentlyBoughtTogether.default;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
50
56
|
Object.defineProperty(exports, "connectGeoSearch", {
|
|
51
57
|
enumerable: true,
|
|
52
58
|
get: function get() {
|
|
@@ -89,6 +95,12 @@ Object.defineProperty(exports, "connectInfiniteHitsWithInsights", {
|
|
|
89
95
|
return _connectInfiniteHitsWithInsights.default;
|
|
90
96
|
}
|
|
91
97
|
});
|
|
98
|
+
Object.defineProperty(exports, "connectLookingSimilar", {
|
|
99
|
+
enumerable: true,
|
|
100
|
+
get: function get() {
|
|
101
|
+
return _connectLookingSimilar.default;
|
|
102
|
+
}
|
|
103
|
+
});
|
|
92
104
|
Object.defineProperty(exports, "connectMenu", {
|
|
93
105
|
enumerable: true,
|
|
94
106
|
get: function get() {
|
|
@@ -137,6 +149,12 @@ Object.defineProperty(exports, "connectRefinementList", {
|
|
|
137
149
|
return _connectRefinementList.default;
|
|
138
150
|
}
|
|
139
151
|
});
|
|
152
|
+
Object.defineProperty(exports, "connectRelatedProducts", {
|
|
153
|
+
enumerable: true,
|
|
154
|
+
get: function get() {
|
|
155
|
+
return _connectRelatedProducts.default;
|
|
156
|
+
}
|
|
157
|
+
});
|
|
140
158
|
Object.defineProperty(exports, "connectRelevantSort", {
|
|
141
159
|
enumerable: true,
|
|
142
160
|
get: function get() {
|
|
@@ -167,6 +185,12 @@ Object.defineProperty(exports, "connectToggleRefinement", {
|
|
|
167
185
|
return _connectToggleRefinement.default;
|
|
168
186
|
}
|
|
169
187
|
});
|
|
188
|
+
Object.defineProperty(exports, "connectTrendingItems", {
|
|
189
|
+
enumerable: true,
|
|
190
|
+
get: function get() {
|
|
191
|
+
return _connectTrendingItems.default;
|
|
192
|
+
}
|
|
193
|
+
});
|
|
170
194
|
Object.defineProperty(exports, "connectVoiceSearch", {
|
|
171
195
|
enumerable: true,
|
|
172
196
|
get: function get() {
|
|
@@ -189,11 +213,13 @@ var _connectNumericMenu = _interopRequireDefault(require("./numeric-menu/connect
|
|
|
189
213
|
var _connectPagination = _interopRequireDefault(require("./pagination/connectPagination"));
|
|
190
214
|
var _connectRange = _interopRequireDefault(require("./range/connectRange"));
|
|
191
215
|
var _connectRefinementList = _interopRequireDefault(require("./refinement-list/connectRefinementList"));
|
|
216
|
+
var _connectRelatedProducts = _interopRequireDefault(require("./related-products/connectRelatedProducts"));
|
|
192
217
|
var _connectSearchBox = _interopRequireDefault(require("./search-box/connectSearchBox"));
|
|
193
218
|
var _connectSortBy = _interopRequireDefault(require("./sort-by/connectSortBy"));
|
|
194
219
|
var _connectRatingMenu = _interopRequireDefault(require("./rating-menu/connectRatingMenu"));
|
|
195
220
|
var _connectStats = _interopRequireDefault(require("./stats/connectStats"));
|
|
196
221
|
var _connectToggleRefinement = _interopRequireDefault(require("./toggle-refinement/connectToggleRefinement"));
|
|
222
|
+
var _connectTrendingItems = _interopRequireDefault(require("./trending-items/connectTrendingItems"));
|
|
197
223
|
var _connectBreadcrumb = _interopRequireDefault(require("./breadcrumb/connectBreadcrumb"));
|
|
198
224
|
var _connectGeoSearch = _interopRequireDefault(require("./geo-search/connectGeoSearch"));
|
|
199
225
|
var _connectPoweredBy = _interopRequireDefault(require("./powered-by/connectPoweredBy"));
|
|
@@ -203,6 +229,8 @@ var _connectAutocomplete = _interopRequireDefault(require("./autocomplete/connec
|
|
|
203
229
|
var _connectQueryRules = _interopRequireDefault(require("./query-rules/connectQueryRules"));
|
|
204
230
|
var _connectVoiceSearch = _interopRequireDefault(require("./voice-search/connectVoiceSearch"));
|
|
205
231
|
var _connectRelevantSort = _interopRequireDefault(require("./relevant-sort/connectRelevantSort"));
|
|
232
|
+
var _connectFrequentlyBoughtTogether = _interopRequireDefault(require("./frequently-bought-together/connectFrequentlyBoughtTogether"));
|
|
233
|
+
var _connectLookingSimilar = _interopRequireDefault(require("./looking-similar/connectLookingSimilar"));
|
|
206
234
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
207
235
|
/** @deprecated answers is no longer supported */
|
|
208
236
|
var EXPERIMENTAL_connectAnswers = (0, _utils.deprecate)(_connectAnswers.default, 'answers is no longer supported');
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _utils = require("../../lib/utils");
|
|
8
|
+
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); }
|
|
9
|
+
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; }
|
|
10
|
+
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; }
|
|
11
|
+
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; }
|
|
12
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
13
|
+
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); }
|
|
14
|
+
var withUsage = (0, _utils.createDocumentationMessageGenerator)({
|
|
15
|
+
name: 'looking-similar',
|
|
16
|
+
connector: true
|
|
17
|
+
});
|
|
18
|
+
var connectLookingSimilar = function connectLookingSimilar(renderFn) {
|
|
19
|
+
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
|
|
20
|
+
(0, _utils.checkRendering)(renderFn, withUsage());
|
|
21
|
+
return function LookingSimilar(widgetParams) {
|
|
22
|
+
var _ref = widgetParams || {},
|
|
23
|
+
_ref$escapeHTML = _ref.escapeHTML,
|
|
24
|
+
escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML,
|
|
25
|
+
objectIDs = _ref.objectIDs,
|
|
26
|
+
limit = _ref.limit,
|
|
27
|
+
threshold = _ref.threshold,
|
|
28
|
+
fallbackParameters = _ref.fallbackParameters,
|
|
29
|
+
queryParameters = _ref.queryParameters,
|
|
30
|
+
_ref$transformItems = _ref.transformItems,
|
|
31
|
+
transformItems = _ref$transformItems === void 0 ? function (items) {
|
|
32
|
+
return items;
|
|
33
|
+
} : _ref$transformItems;
|
|
34
|
+
if (!objectIDs || objectIDs.length === 0) {
|
|
35
|
+
throw new Error(withUsage('The `objectIDs` option is required.'));
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
dependsOn: 'recommend',
|
|
39
|
+
$$type: 'ais.lookingSimilar',
|
|
40
|
+
init: function init(initOptions) {
|
|
41
|
+
renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {
|
|
42
|
+
instantSearchInstance: initOptions.instantSearchInstance
|
|
43
|
+
}), true);
|
|
44
|
+
},
|
|
45
|
+
render: function render(renderOptions) {
|
|
46
|
+
var renderState = this.getWidgetRenderState(renderOptions);
|
|
47
|
+
renderFn(_objectSpread(_objectSpread({}, renderState), {}, {
|
|
48
|
+
instantSearchInstance: renderOptions.instantSearchInstance
|
|
49
|
+
}), false);
|
|
50
|
+
},
|
|
51
|
+
getRenderState: function getRenderState(renderState) {
|
|
52
|
+
return renderState;
|
|
53
|
+
},
|
|
54
|
+
getWidgetRenderState: function getWidgetRenderState(_ref2) {
|
|
55
|
+
var results = _ref2.results;
|
|
56
|
+
if (results === null || results === undefined) {
|
|
57
|
+
return {
|
|
58
|
+
items: [],
|
|
59
|
+
widgetParams: widgetParams
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
if (escapeHTML && results.hits.length > 0) {
|
|
63
|
+
results.hits = (0, _utils.escapeHits)(results.hits);
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
items: transformItems(results.hits, {
|
|
67
|
+
results: results
|
|
68
|
+
}),
|
|
69
|
+
widgetParams: widgetParams
|
|
70
|
+
};
|
|
71
|
+
},
|
|
72
|
+
dispose: function dispose(_ref3) {
|
|
73
|
+
var recommendState = _ref3.recommendState;
|
|
74
|
+
unmountFn();
|
|
75
|
+
return recommendState.removeParams(this.$$id);
|
|
76
|
+
},
|
|
77
|
+
getWidgetParameters: function getWidgetParameters(state) {
|
|
78
|
+
var _this = this;
|
|
79
|
+
return objectIDs.reduce(function (acc, objectID) {
|
|
80
|
+
return acc.addLookingSimilar({
|
|
81
|
+
objectID: objectID,
|
|
82
|
+
maxRecommendations: limit,
|
|
83
|
+
threshold: threshold,
|
|
84
|
+
fallbackParameters: _objectSpread(_objectSpread({}, fallbackParameters), escapeHTML ? _utils.TAG_PLACEHOLDER : {}),
|
|
85
|
+
queryParameters: _objectSpread(_objectSpread({}, queryParameters), escapeHTML ? _utils.TAG_PLACEHOLDER : {}),
|
|
86
|
+
$$id: _this.$$id
|
|
87
|
+
});
|
|
88
|
+
}, state.removeParams(this.$$id));
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
var _default = connectLookingSimilar;
|
|
94
|
+
exports.default = _default;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _utils = require("../../lib/utils");
|
|
8
|
+
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); }
|
|
9
|
+
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; }
|
|
10
|
+
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; }
|
|
11
|
+
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; }
|
|
12
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
13
|
+
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); }
|
|
14
|
+
var withUsage = (0, _utils.createDocumentationMessageGenerator)({
|
|
15
|
+
name: 'related-products',
|
|
16
|
+
connector: true
|
|
17
|
+
});
|
|
18
|
+
var connectRelatedProducts = function connectRelatedProducts(renderFn) {
|
|
19
|
+
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
|
|
20
|
+
(0, _utils.checkRendering)(renderFn, withUsage());
|
|
21
|
+
return function relatedProducts(widgetParams) {
|
|
22
|
+
var _ref = widgetParams || {},
|
|
23
|
+
_ref$escapeHTML = _ref.escapeHTML,
|
|
24
|
+
escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML,
|
|
25
|
+
objectIDs = _ref.objectIDs,
|
|
26
|
+
limit = _ref.limit,
|
|
27
|
+
threshold = _ref.threshold,
|
|
28
|
+
fallbackParameters = _ref.fallbackParameters,
|
|
29
|
+
queryParameters = _ref.queryParameters,
|
|
30
|
+
_ref$transformItems = _ref.transformItems,
|
|
31
|
+
transformItems = _ref$transformItems === void 0 ? function (items) {
|
|
32
|
+
return items;
|
|
33
|
+
} : _ref$transformItems;
|
|
34
|
+
if (!objectIDs || objectIDs.length === 0) {
|
|
35
|
+
throw new Error(withUsage('The `objectIDs` option is required.'));
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
dependsOn: 'recommend',
|
|
39
|
+
$$type: 'ais.relatedProducts',
|
|
40
|
+
init: function init(initOptions) {
|
|
41
|
+
renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {
|
|
42
|
+
instantSearchInstance: initOptions.instantSearchInstance
|
|
43
|
+
}), true);
|
|
44
|
+
},
|
|
45
|
+
render: function render(renderOptions) {
|
|
46
|
+
var renderState = this.getWidgetRenderState(renderOptions);
|
|
47
|
+
renderFn(_objectSpread(_objectSpread({}, renderState), {}, {
|
|
48
|
+
instantSearchInstance: renderOptions.instantSearchInstance
|
|
49
|
+
}), false);
|
|
50
|
+
},
|
|
51
|
+
getRenderState: function getRenderState(renderState) {
|
|
52
|
+
return renderState;
|
|
53
|
+
},
|
|
54
|
+
getWidgetRenderState: function getWidgetRenderState(_ref2) {
|
|
55
|
+
var results = _ref2.results;
|
|
56
|
+
if (results === null || results === undefined) {
|
|
57
|
+
return {
|
|
58
|
+
items: [],
|
|
59
|
+
widgetParams: widgetParams
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
if (escapeHTML && results.hits.length > 0) {
|
|
63
|
+
results.hits = (0, _utils.escapeHits)(results.hits);
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
items: transformItems(results.hits, {
|
|
67
|
+
results: results
|
|
68
|
+
}),
|
|
69
|
+
widgetParams: widgetParams
|
|
70
|
+
};
|
|
71
|
+
},
|
|
72
|
+
dispose: function dispose(_ref3) {
|
|
73
|
+
var recommendState = _ref3.recommendState;
|
|
74
|
+
unmountFn();
|
|
75
|
+
return recommendState.removeParams(this.$$id);
|
|
76
|
+
},
|
|
77
|
+
getWidgetParameters: function getWidgetParameters(state) {
|
|
78
|
+
var _this = this;
|
|
79
|
+
return objectIDs.reduce(function (acc, objectID) {
|
|
80
|
+
return acc.addRelatedProducts({
|
|
81
|
+
objectID: objectID,
|
|
82
|
+
maxRecommendations: limit,
|
|
83
|
+
threshold: threshold,
|
|
84
|
+
fallbackParameters: _objectSpread(_objectSpread({}, fallbackParameters), escapeHTML ? _utils.TAG_PLACEHOLDER : {}),
|
|
85
|
+
queryParameters: _objectSpread(_objectSpread({}, queryParameters), escapeHTML ? _utils.TAG_PLACEHOLDER : {}),
|
|
86
|
+
$$id: _this.$$id
|
|
87
|
+
});
|
|
88
|
+
}, state.removeParams(this.$$id));
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
var _default = connectRelatedProducts;
|
|
94
|
+
exports.default = _default;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _utils = require("../../lib/utils");
|
|
8
|
+
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); }
|
|
9
|
+
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; }
|
|
10
|
+
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; }
|
|
11
|
+
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; }
|
|
12
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
13
|
+
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); }
|
|
14
|
+
var withUsage = (0, _utils.createDocumentationMessageGenerator)({
|
|
15
|
+
name: 'trending-items',
|
|
16
|
+
connector: true
|
|
17
|
+
});
|
|
18
|
+
var connectTrendingItems = function connectTrendingItems(renderFn) {
|
|
19
|
+
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
|
|
20
|
+
(0, _utils.checkRendering)(renderFn, withUsage());
|
|
21
|
+
return function trendingItems(widgetParams) {
|
|
22
|
+
var _ref = widgetParams || {},
|
|
23
|
+
facetName = _ref.facetName,
|
|
24
|
+
facetValue = _ref.facetValue,
|
|
25
|
+
limit = _ref.limit,
|
|
26
|
+
threshold = _ref.threshold,
|
|
27
|
+
fallbackParameters = _ref.fallbackParameters,
|
|
28
|
+
queryParameters = _ref.queryParameters,
|
|
29
|
+
_ref$escapeHTML = _ref.escapeHTML,
|
|
30
|
+
escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML,
|
|
31
|
+
_ref$transformItems = _ref.transformItems,
|
|
32
|
+
transformItems = _ref$transformItems === void 0 ? function (items) {
|
|
33
|
+
return items;
|
|
34
|
+
} : _ref$transformItems;
|
|
35
|
+
return {
|
|
36
|
+
dependsOn: 'recommend',
|
|
37
|
+
$$type: 'ais.trendingItems',
|
|
38
|
+
init: function init(initOptions) {
|
|
39
|
+
renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {
|
|
40
|
+
instantSearchInstance: initOptions.instantSearchInstance
|
|
41
|
+
}), true);
|
|
42
|
+
},
|
|
43
|
+
render: function render(renderOptions) {
|
|
44
|
+
var renderState = this.getWidgetRenderState(renderOptions);
|
|
45
|
+
renderFn(_objectSpread(_objectSpread({}, renderState), {}, {
|
|
46
|
+
instantSearchInstance: renderOptions.instantSearchInstance
|
|
47
|
+
}), false);
|
|
48
|
+
},
|
|
49
|
+
getRenderState: function getRenderState(renderState) {
|
|
50
|
+
return renderState;
|
|
51
|
+
},
|
|
52
|
+
getWidgetRenderState: function getWidgetRenderState(_ref2) {
|
|
53
|
+
var results = _ref2.results;
|
|
54
|
+
if (results === null || results === undefined) {
|
|
55
|
+
return {
|
|
56
|
+
items: [],
|
|
57
|
+
widgetParams: widgetParams
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
if (escapeHTML && results.hits.length > 0) {
|
|
61
|
+
results.hits = (0, _utils.escapeHits)(results.hits);
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
items: transformItems(results.hits, {
|
|
65
|
+
results: results
|
|
66
|
+
}),
|
|
67
|
+
widgetParams: widgetParams
|
|
68
|
+
};
|
|
69
|
+
},
|
|
70
|
+
dispose: function dispose(_ref3) {
|
|
71
|
+
var recommendState = _ref3.recommendState;
|
|
72
|
+
unmountFn();
|
|
73
|
+
return recommendState.removeParams(this.$$id);
|
|
74
|
+
},
|
|
75
|
+
getWidgetParameters: function getWidgetParameters(state) {
|
|
76
|
+
return state.removeParams(this.$$id).addTrendingItems({
|
|
77
|
+
facetName: facetName,
|
|
78
|
+
facetValue: facetValue,
|
|
79
|
+
maxRecommendations: limit,
|
|
80
|
+
threshold: threshold,
|
|
81
|
+
fallbackParameters: _objectSpread(_objectSpread({}, fallbackParameters), escapeHTML ? _utils.TAG_PLACEHOLDER : {}),
|
|
82
|
+
queryParameters: _objectSpread(_objectSpread({}, queryParameters), escapeHTML ? _utils.TAG_PLACEHOLDER : {}),
|
|
83
|
+
$$id: this.$$id
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
var _default = connectTrendingItems;
|
|
90
|
+
exports.default = _default;
|
package/cjs/lib/InstantSearch.js
CHANGED
|
@@ -82,6 +82,8 @@ var InstantSearch = /*#__PURE__*/function (_EventEmitter) {
|
|
|
82
82
|
_defineProperty(_assertThisInitialized(_this), "_createURL", void 0);
|
|
83
83
|
_defineProperty(_assertThisInitialized(_this), "_searchFunction", void 0);
|
|
84
84
|
_defineProperty(_assertThisInitialized(_this), "_mainHelperSearch", void 0);
|
|
85
|
+
_defineProperty(_assertThisInitialized(_this), "_hasSearchWidget", false);
|
|
86
|
+
_defineProperty(_assertThisInitialized(_this), "_hasRecommendWidget", false);
|
|
85
87
|
_defineProperty(_assertThisInitialized(_this), "_insights", void 0);
|
|
86
88
|
_defineProperty(_assertThisInitialized(_this), "middleware", []);
|
|
87
89
|
_defineProperty(_assertThisInitialized(_this), "sendEventToInsights", void 0);
|
|
@@ -392,7 +394,13 @@ var InstantSearch = /*#__PURE__*/function (_EventEmitter) {
|
|
|
392
394
|
// under the hood, we have a different implementation. It should be
|
|
393
395
|
// completely transparent for the rest of the codebase. Only this module
|
|
394
396
|
// is impacted.
|
|
395
|
-
|
|
397
|
+
if (_this3._hasSearchWidget) {
|
|
398
|
+
mainHelper.searchOnlyWithDerivedHelpers();
|
|
399
|
+
}
|
|
400
|
+
if (_this3._hasRecommendWidget) {
|
|
401
|
+
mainHelper.recommend();
|
|
402
|
+
}
|
|
403
|
+
return mainHelper;
|
|
396
404
|
};
|
|
397
405
|
if (this._searchFunction) {
|
|
398
406
|
// this client isn't used to actually search, but required for the helper
|
|
@@ -459,6 +467,7 @@ var InstantSearch = /*#__PURE__*/function (_EventEmitter) {
|
|
|
459
467
|
});
|
|
460
468
|
if (this._initialResults) {
|
|
461
469
|
(0, _utils.hydrateSearchClient)(this.client, this._initialResults);
|
|
470
|
+
(0, _utils.hydrateRecommendCache)(this.mainHelper, this._initialResults);
|
|
462
471
|
var originalScheduleSearch = this.scheduleSearch;
|
|
463
472
|
// We don't schedule a first search when initial results are provided
|
|
464
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
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.addWidgetId = addWidgetId;
|
|
7
|
+
exports.resetWidgetId = resetWidgetId;
|
|
8
|
+
var id = 0;
|
|
9
|
+
function addWidgetId(widget) {
|
|
10
|
+
if (widget.dependsOn !== 'recommend') {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
widget.$$id = id++;
|
|
14
|
+
}
|
|
15
|
+
function resetWidgetId() {
|
|
16
|
+
id = 0;
|
|
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;
|