instantsearch.js 4.86.1 → 4.87.1

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.
Files changed (82) hide show
  1. package/cjs/connectors/autocomplete/connectAutocomplete.js +13 -5
  2. package/cjs/connectors/chat/connectChat.js +92 -20
  3. package/cjs/connectors/filter-suggestions/connectFilterSuggestions.js +255 -0
  4. package/cjs/connectors/index.js +7 -0
  5. package/cjs/connectors/index.umd.js +7 -0
  6. package/cjs/index.js +2 -2
  7. package/cjs/lib/ai-lite/abstract-chat.js +823 -0
  8. package/cjs/lib/ai-lite/index.js +57 -0
  9. package/cjs/lib/ai-lite/stream-parser.js +138 -0
  10. package/cjs/lib/ai-lite/transport.js +218 -0
  11. package/cjs/lib/ai-lite/types.js +1 -0
  12. package/cjs/lib/ai-lite/utils.js +85 -0
  13. package/cjs/lib/chat/chat.js +6 -6
  14. package/cjs/lib/chat/index.js +5 -2
  15. package/cjs/lib/version.js +1 -1
  16. package/cjs/widgets/autocomplete/autocomplete.js +15 -6
  17. package/cjs/widgets/chat/chat.js +32 -3
  18. package/cjs/widgets/filter-suggestions/filter-suggestions.js +131 -0
  19. package/cjs/widgets/index.js +7 -0
  20. package/cjs/widgets/index.umd.js +7 -0
  21. package/dist/instantsearch.development.d.ts +2551 -346
  22. package/dist/instantsearch.development.js +9408 -4314
  23. package/dist/instantsearch.development.js.map +1 -1
  24. package/dist/instantsearch.production.d.ts +2551 -346
  25. package/dist/instantsearch.production.min.d.ts +2551 -346
  26. package/dist/instantsearch.production.min.js +2 -2
  27. package/dist/instantsearch.production.min.js.map +1 -1
  28. package/es/connectors/autocomplete/connectAutocomplete.d.ts +10 -0
  29. package/es/connectors/autocomplete/connectAutocomplete.js +13 -5
  30. package/es/connectors/chat/connectChat.d.ts +24 -14
  31. package/es/connectors/chat/connectChat.js +90 -18
  32. package/es/connectors/filter-suggestions/connectFilterSuggestions.d.ts +95 -0
  33. package/es/connectors/filter-suggestions/connectFilterSuggestions.js +249 -0
  34. package/es/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.d.ts +2 -2
  35. package/es/connectors/geo-search/connectGeoSearch.d.ts +1 -1
  36. package/es/connectors/hits/connectHits.d.ts +1 -1
  37. package/es/connectors/hits/connectHitsWithInsights.d.ts +1 -1
  38. package/es/connectors/index.d.ts +1 -0
  39. package/es/connectors/index.js +2 -1
  40. package/es/connectors/index.umd.d.ts +1 -0
  41. package/es/connectors/index.umd.js +2 -1
  42. package/es/connectors/infinite-hits/connectInfiniteHits.d.ts +1 -1
  43. package/es/connectors/infinite-hits/connectInfiniteHitsWithInsights.d.ts +1 -1
  44. package/es/connectors/looking-similar/connectLookingSimilar.d.ts +2 -2
  45. package/es/connectors/related-products/connectRelatedProducts.d.ts +2 -2
  46. package/es/connectors/trending-items/connectTrendingItems.d.ts +2 -2
  47. package/es/lib/ai-lite/abstract-chat.d.ts +89 -0
  48. package/es/lib/ai-lite/abstract-chat.js +818 -0
  49. package/es/lib/ai-lite/index.d.ts +11 -0
  50. package/es/lib/ai-lite/index.js +18 -0
  51. package/es/lib/ai-lite/stream-parser.d.ts +18 -0
  52. package/es/lib/ai-lite/stream-parser.js +131 -0
  53. package/es/lib/ai-lite/transport.d.ts +24 -0
  54. package/es/lib/ai-lite/transport.js +214 -0
  55. package/es/lib/ai-lite/types.d.ts +362 -0
  56. package/es/lib/ai-lite/types.js +1 -0
  57. package/es/lib/ai-lite/utils.d.ts +12 -0
  58. package/es/lib/ai-lite/utils.js +76 -0
  59. package/es/lib/chat/chat.d.ts +3 -3
  60. package/es/lib/chat/chat.js +4 -4
  61. package/es/lib/chat/index.d.ts +3 -0
  62. package/es/lib/chat/index.js +4 -1
  63. package/es/lib/version.d.ts +1 -1
  64. package/es/lib/version.js +1 -1
  65. package/es/widgets/autocomplete/autocomplete.d.ts +2 -1
  66. package/es/widgets/autocomplete/autocomplete.js +15 -6
  67. package/es/widgets/chat/chat.d.ts +22 -14
  68. package/es/widgets/chat/chat.js +33 -4
  69. package/es/widgets/filter-suggestions/filter-suggestions.d.ts +689 -0
  70. package/es/widgets/filter-suggestions/filter-suggestions.js +124 -0
  71. package/es/widgets/frequently-bought-together/frequently-bought-together.d.ts +3 -3
  72. package/es/widgets/geo-search/geo-search.d.ts +1 -1
  73. package/es/widgets/hits/hits.d.ts +1 -1
  74. package/es/widgets/index.d.ts +1 -0
  75. package/es/widgets/index.js +2 -1
  76. package/es/widgets/index.umd.d.ts +1 -0
  77. package/es/widgets/index.umd.js +2 -1
  78. package/es/widgets/infinite-hits/infinite-hits.d.ts +1 -1
  79. package/es/widgets/looking-similar/looking-similar.d.ts +3 -3
  80. package/es/widgets/related-products/related-products.d.ts +3 -3
  81. package/es/widgets/trending-items/trending-items.d.ts +3 -3
  82. package/package.json +6 -7
@@ -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
+ };
@@ -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');
@@ -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');