instantsearch.js 4.86.1 → 4.87.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/autocomplete/connectAutocomplete.js +13 -5
- package/cjs/connectors/chat/connectChat.js +89 -17
- package/cjs/connectors/filter-suggestions/connectFilterSuggestions.js +255 -0
- package/cjs/connectors/index.js +7 -0
- package/cjs/connectors/index.umd.js +7 -0
- package/cjs/lib/chat/chat.js +3 -3
- package/cjs/lib/chat/index.js +5 -2
- package/cjs/lib/version.js +1 -1
- package/cjs/widgets/autocomplete/autocomplete.js +15 -6
- package/cjs/widgets/chat/chat.js +32 -3
- package/cjs/widgets/filter-suggestions/filter-suggestions.js +131 -0
- package/cjs/widgets/index.js +7 -0
- package/cjs/widgets/index.umd.js +7 -0
- package/dist/instantsearch.development.d.ts +885 -72
- package/dist/instantsearch.development.js +731 -184
- package/dist/instantsearch.development.js.map +1 -1
- package/dist/instantsearch.production.d.ts +885 -72
- package/dist/instantsearch.production.min.d.ts +885 -72
- package/dist/instantsearch.production.min.js +2 -2
- package/dist/instantsearch.production.min.js.map +1 -1
- package/es/connectors/autocomplete/connectAutocomplete.d.ts +10 -0
- package/es/connectors/autocomplete/connectAutocomplete.js +13 -5
- package/es/connectors/chat/connectChat.d.ts +10 -0
- package/es/connectors/chat/connectChat.js +89 -17
- package/es/connectors/filter-suggestions/connectFilterSuggestions.d.ts +95 -0
- package/es/connectors/filter-suggestions/connectFilterSuggestions.js +249 -0
- package/es/connectors/index.d.ts +1 -0
- package/es/connectors/index.js +2 -1
- package/es/connectors/index.umd.d.ts +1 -0
- package/es/connectors/index.umd.js +2 -1
- package/es/lib/chat/chat.d.ts +1 -1
- package/es/lib/chat/chat.js +3 -3
- package/es/lib/chat/index.d.ts +3 -0
- package/es/lib/chat/index.js +4 -1
- package/es/lib/version.d.ts +1 -1
- package/es/lib/version.js +1 -1
- package/es/widgets/autocomplete/autocomplete.d.ts +2 -1
- package/es/widgets/autocomplete/autocomplete.js +15 -6
- package/es/widgets/chat/chat.d.ts +8 -0
- package/es/widgets/chat/chat.js +33 -4
- package/es/widgets/filter-suggestions/filter-suggestions.d.ts +689 -0
- package/es/widgets/filter-suggestions/filter-suggestions.js +124 -0
- package/es/widgets/index.d.ts +1 -0
- package/es/widgets/index.js +2 -1
- package/es/widgets/index.umd.d.ts +1 -0
- package/es/widgets/index.umd.js +2 -1
- package/package.json +6 -6
package/cjs/widgets/chat/chat.js
CHANGED
|
@@ -179,7 +179,13 @@ function createCarouselTool(showViewAll, templates, getSearchPageURL) {
|
|
|
179
179
|
}
|
|
180
180
|
function createDefaultTools(templates, getSearchPageURL) {
|
|
181
181
|
var _ref9;
|
|
182
|
-
return _ref9 = {}, _defineProperty(_ref9, _chat.SearchIndexToolType, createCarouselTool(true, templates, getSearchPageURL)), _defineProperty(_ref9, _chat.RecommendToolType, createCarouselTool(false, templates, getSearchPageURL)), _ref9
|
|
182
|
+
return _ref9 = {}, _defineProperty(_ref9, _chat.SearchIndexToolType, createCarouselTool(true, templates, getSearchPageURL)), _defineProperty(_ref9, _chat.RecommendToolType, createCarouselTool(false, templates, getSearchPageURL)), _defineProperty(_ref9, _chat.MemorizeToolType, {
|
|
183
|
+
templates: {}
|
|
184
|
+
}), _defineProperty(_ref9, _chat.MemorySearchToolType, {
|
|
185
|
+
templates: {}
|
|
186
|
+
}), _defineProperty(_ref9, _chat.PonderToolType, {
|
|
187
|
+
templates: {}
|
|
188
|
+
}), _ref9;
|
|
183
189
|
}
|
|
184
190
|
function ChatWrapper(_ref0) {
|
|
185
191
|
var cssClasses = _ref0.cssClasses,
|
|
@@ -202,6 +208,7 @@ function ChatWrapper(_ref0) {
|
|
|
202
208
|
headerProps = _ref0.headerProps,
|
|
203
209
|
messagesProps = _ref0.messagesProps,
|
|
204
210
|
promptProps = _ref0.promptProps,
|
|
211
|
+
suggestionsProps = _ref0.suggestionsProps,
|
|
205
212
|
state = _ref0.state;
|
|
206
213
|
var _useStickToBottom = (0, _useStickToBottom2.useStickToBottom)({
|
|
207
214
|
initial: 'smooth',
|
|
@@ -230,6 +237,7 @@ function ChatWrapper(_ref0) {
|
|
|
230
237
|
},
|
|
231
238
|
headerComponent: headerProps.layoutComponent,
|
|
232
239
|
promptComponent: promptProps.layoutComponent,
|
|
240
|
+
suggestionsComponent: suggestionsProps.suggestionsComponent,
|
|
233
241
|
headerProps: {
|
|
234
242
|
onClose: function onClose() {
|
|
235
243
|
return setChatOpen(false);
|
|
@@ -293,6 +301,10 @@ function ChatWrapper(_ref0) {
|
|
|
293
301
|
headerComponent: promptProps.headerComponent,
|
|
294
302
|
footerComponent: promptProps.footerComponent,
|
|
295
303
|
translations: promptProps.translations
|
|
304
|
+
},
|
|
305
|
+
suggestionsProps: {
|
|
306
|
+
onSuggestionClick: suggestionsProps.onSuggestionClick,
|
|
307
|
+
suggestions: suggestionsProps.suggestions
|
|
296
308
|
}
|
|
297
309
|
});
|
|
298
310
|
}
|
|
@@ -326,7 +338,8 @@ var createRenderer = function createRenderer(_ref1) {
|
|
|
326
338
|
isClearing = props.isClearing,
|
|
327
339
|
clearMessages = props.clearMessages,
|
|
328
340
|
onClearTransitionEnd = props.onClearTransitionEnd,
|
|
329
|
-
toolsFromConnector = props.tools
|
|
341
|
+
toolsFromConnector = props.tools,
|
|
342
|
+
suggestions = props.suggestions;
|
|
330
343
|
if (process.env.NODE_ENV === 'development' && error) {
|
|
331
344
|
throw error;
|
|
332
345
|
}
|
|
@@ -527,6 +540,13 @@ var createRenderer = function createRenderer(_ref1) {
|
|
|
527
540
|
}
|
|
528
541
|
}));
|
|
529
542
|
} : undefined;
|
|
543
|
+
var suggestionsComponent = templates.suggestions ? function (suggestionsProps) {
|
|
544
|
+
return (0, _preact.h)(_Template.default, _extends({}, renderState.templateProps, {
|
|
545
|
+
templateKey: "suggestions",
|
|
546
|
+
rootTagName: "fragment",
|
|
547
|
+
data: suggestionsProps
|
|
548
|
+
}));
|
|
549
|
+
} : undefined;
|
|
530
550
|
state.subscribe(rerender);
|
|
531
551
|
function rerender() {
|
|
532
552
|
(0, _preact.render)((0, _preact.h)(ChatWrapper, {
|
|
@@ -580,7 +600,16 @@ var createRenderer = function createRenderer(_ref1) {
|
|
|
580
600
|
translations: promptTranslations,
|
|
581
601
|
promptRef: promptRef
|
|
582
602
|
},
|
|
583
|
-
state: state
|
|
603
|
+
state: state,
|
|
604
|
+
suggestionsProps: {
|
|
605
|
+
suggestions: suggestions,
|
|
606
|
+
onSuggestionClick: function onSuggestionClick(message) {
|
|
607
|
+
sendMessage({
|
|
608
|
+
text: message
|
|
609
|
+
});
|
|
610
|
+
},
|
|
611
|
+
suggestionsComponent: suggestionsComponent
|
|
612
|
+
}
|
|
584
613
|
}), containerNode);
|
|
585
614
|
}
|
|
586
615
|
rerender();
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _instantsearchUiComponents = require("instantsearch-ui-components");
|
|
9
|
+
var _preact = require("preact");
|
|
10
|
+
var _Template = _interopRequireDefault(require("../../components/Template/Template"));
|
|
11
|
+
var _connectFilterSuggestions = _interopRequireDefault(require("../../connectors/filter-suggestions/connectFilterSuggestions"));
|
|
12
|
+
var _templating = require("../../lib/templating");
|
|
13
|
+
var _utils = require("../../lib/utils");
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
16
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
17
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
18
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
19
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
20
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
21
|
+
var withUsage = (0, _utils.createDocumentationMessageGenerator)({
|
|
22
|
+
name: 'filter-suggestions'
|
|
23
|
+
});
|
|
24
|
+
var FilterSuggestions = (0, _instantsearchUiComponents.createFilterSuggestionsComponent)({
|
|
25
|
+
createElement: _preact.h,
|
|
26
|
+
Fragment: 'fragment'
|
|
27
|
+
});
|
|
28
|
+
var createRenderer = function createRenderer(_ref) {
|
|
29
|
+
var renderState = _ref.renderState,
|
|
30
|
+
cssClasses = _ref.cssClasses,
|
|
31
|
+
containerNode = _ref.containerNode,
|
|
32
|
+
templates = _ref.templates,
|
|
33
|
+
maxSuggestions = _ref.maxSuggestions;
|
|
34
|
+
return function (props, isFirstRendering) {
|
|
35
|
+
var suggestions = props.suggestions,
|
|
36
|
+
isLoading = props.isLoading,
|
|
37
|
+
refine = props.refine,
|
|
38
|
+
instantSearchInstance = props.instantSearchInstance;
|
|
39
|
+
var headerTemplate = templates.header === false ? undefined : templates.header;
|
|
40
|
+
if (isFirstRendering) {
|
|
41
|
+
renderState.templateProps = (0, _templating.prepareTemplateProps)({
|
|
42
|
+
defaultTemplates: {},
|
|
43
|
+
templatesConfig: instantSearchInstance.templatesConfig,
|
|
44
|
+
templates: {
|
|
45
|
+
header: headerTemplate,
|
|
46
|
+
item: templates.item,
|
|
47
|
+
empty: templates.empty
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
var headerComponent;
|
|
53
|
+
if (templates.header === false) {
|
|
54
|
+
headerComponent = false;
|
|
55
|
+
} else if (headerTemplate) {
|
|
56
|
+
headerComponent = function headerComponent(headerProps) {
|
|
57
|
+
return (0, _preact.h)(_Template.default, _extends({}, renderState.templateProps, {
|
|
58
|
+
templateKey: "header",
|
|
59
|
+
rootTagName: "div",
|
|
60
|
+
data: headerProps
|
|
61
|
+
}));
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
var itemComponent = templates.item ? function (itemProps) {
|
|
65
|
+
return (0, _preact.h)(_Template.default, _extends({}, renderState.templateProps, {
|
|
66
|
+
templateKey: "item",
|
|
67
|
+
rootTagName: "fragment",
|
|
68
|
+
data: itemProps
|
|
69
|
+
}));
|
|
70
|
+
} : undefined;
|
|
71
|
+
var emptyComponent = templates.empty ? function (emptyProps) {
|
|
72
|
+
return (0, _preact.h)(_Template.default, _extends({}, renderState.templateProps, {
|
|
73
|
+
templateKey: "empty",
|
|
74
|
+
rootTagName: "div",
|
|
75
|
+
data: emptyProps
|
|
76
|
+
}));
|
|
77
|
+
} : undefined;
|
|
78
|
+
var uiProps = {
|
|
79
|
+
suggestions: suggestions,
|
|
80
|
+
isLoading: isLoading,
|
|
81
|
+
refine: refine,
|
|
82
|
+
skeletonCount: maxSuggestions,
|
|
83
|
+
itemComponent: itemComponent,
|
|
84
|
+
headerComponent: headerComponent,
|
|
85
|
+
emptyComponent: emptyComponent
|
|
86
|
+
};
|
|
87
|
+
(0, _preact.render)((0, _preact.h)(FilterSuggestions, _extends({
|
|
88
|
+
classNames: cssClasses
|
|
89
|
+
}, uiProps)), containerNode);
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
var filterSuggestions = exports.default = function filterSuggestions(widgetParams) {
|
|
93
|
+
var _ref2 = widgetParams || {},
|
|
94
|
+
container = _ref2.container,
|
|
95
|
+
_ref2$templates = _ref2.templates,
|
|
96
|
+
templates = _ref2$templates === void 0 ? {} : _ref2$templates,
|
|
97
|
+
_ref2$cssClasses = _ref2.cssClasses,
|
|
98
|
+
cssClasses = _ref2$cssClasses === void 0 ? {} : _ref2$cssClasses,
|
|
99
|
+
agentId = _ref2.agentId,
|
|
100
|
+
attributes = _ref2.attributes,
|
|
101
|
+
maxSuggestions = _ref2.maxSuggestions,
|
|
102
|
+
debounceMs = _ref2.debounceMs,
|
|
103
|
+
hitsToSample = _ref2.hitsToSample,
|
|
104
|
+
transformItems = _ref2.transformItems,
|
|
105
|
+
transport = _ref2.transport;
|
|
106
|
+
if (!container) {
|
|
107
|
+
throw new Error(withUsage('The `container` option is required.'));
|
|
108
|
+
}
|
|
109
|
+
var containerNode = (0, _utils.getContainerNode)(container);
|
|
110
|
+
var specializedRenderer = createRenderer({
|
|
111
|
+
containerNode: containerNode,
|
|
112
|
+
cssClasses: cssClasses,
|
|
113
|
+
renderState: {},
|
|
114
|
+
templates: templates,
|
|
115
|
+
maxSuggestions: maxSuggestions
|
|
116
|
+
});
|
|
117
|
+
var makeWidget = (0, _connectFilterSuggestions.default)(specializedRenderer, function () {
|
|
118
|
+
return (0, _preact.render)(null, containerNode);
|
|
119
|
+
});
|
|
120
|
+
return _objectSpread(_objectSpread({}, makeWidget({
|
|
121
|
+
agentId: agentId,
|
|
122
|
+
attributes: attributes,
|
|
123
|
+
maxSuggestions: maxSuggestions,
|
|
124
|
+
debounceMs: debounceMs,
|
|
125
|
+
hitsToSample: hitsToSample,
|
|
126
|
+
transformItems: transformItems,
|
|
127
|
+
transport: transport
|
|
128
|
+
})), {}, {
|
|
129
|
+
$$widgetType: 'ais.filterSuggestions'
|
|
130
|
+
});
|
|
131
|
+
};
|
package/cjs/widgets/index.js
CHANGED
|
@@ -53,6 +53,12 @@ Object.defineProperty(exports, "dynamicWidgets", {
|
|
|
53
53
|
return _dynamicWidgets.default;
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
|
+
Object.defineProperty(exports, "filterSuggestions", {
|
|
57
|
+
enumerable: true,
|
|
58
|
+
get: function get() {
|
|
59
|
+
return _filterSuggestions.default;
|
|
60
|
+
}
|
|
61
|
+
});
|
|
56
62
|
Object.defineProperty(exports, "frequentlyBoughtTogether", {
|
|
57
63
|
enumerable: true,
|
|
58
64
|
get: function get() {
|
|
@@ -267,6 +273,7 @@ var _voiceSearch = _interopRequireDefault(require("./voice-search/voice-search")
|
|
|
267
273
|
var _frequentlyBoughtTogether = _interopRequireDefault(require("./frequently-bought-together/frequently-bought-together"));
|
|
268
274
|
var _lookingSimilar = _interopRequireDefault(require("./looking-similar/looking-similar"));
|
|
269
275
|
var _chat = _interopRequireDefault(require("./chat/chat"));
|
|
276
|
+
var _filterSuggestions = _interopRequireDefault(require("./filter-suggestions/filter-suggestions"));
|
|
270
277
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
271
278
|
/** @deprecated answers is no longer supported */
|
|
272
279
|
var EXPERIMENTAL_answers = exports.EXPERIMENTAL_answers = (0, _utils.deprecate)(_answers.default, 'answers is no longer supported');
|
package/cjs/widgets/index.umd.js
CHANGED
|
@@ -48,6 +48,12 @@ Object.defineProperty(exports, "dynamicWidgets", {
|
|
|
48
48
|
return _dynamicWidgets.default;
|
|
49
49
|
}
|
|
50
50
|
});
|
|
51
|
+
Object.defineProperty(exports, "filterSuggestions", {
|
|
52
|
+
enumerable: true,
|
|
53
|
+
get: function get() {
|
|
54
|
+
return _filterSuggestions.default;
|
|
55
|
+
}
|
|
56
|
+
});
|
|
51
57
|
Object.defineProperty(exports, "frequentlyBoughtTogether", {
|
|
52
58
|
enumerable: true,
|
|
53
59
|
get: function get() {
|
|
@@ -261,6 +267,7 @@ var _trendingItems = _interopRequireDefault(require("./trending-items/trending-i
|
|
|
261
267
|
var _voiceSearch = _interopRequireDefault(require("./voice-search/voice-search"));
|
|
262
268
|
var _frequentlyBoughtTogether = _interopRequireDefault(require("./frequently-bought-together/frequently-bought-together"));
|
|
263
269
|
var _lookingSimilar = _interopRequireDefault(require("./looking-similar/looking-similar"));
|
|
270
|
+
var _filterSuggestions = _interopRequireDefault(require("./filter-suggestions/filter-suggestions"));
|
|
264
271
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
265
272
|
/** @deprecated answers is no longer supported */
|
|
266
273
|
var EXPERIMENTAL_answers = exports.EXPERIMENTAL_answers = (0, _utils.deprecate)(_answers.default, 'answers is no longer supported');
|