instantsearch.js 4.86.0 → 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 +7 -7
|
@@ -44,4 +44,5 @@ export { default as connectFrequentlyBoughtTogether } from "./frequently-bought-
|
|
|
44
44
|
export { default as connectLookingSimilar } from "./looking-similar/connectLookingSimilar.js";
|
|
45
45
|
export var connectChat = function connectChat() {
|
|
46
46
|
throw new Error("\"connectChat\" is not available from the UMD build.\n\nPlease use InstantSearch.js with a packaging system:\nhttps://www.algolia.com/doc/guides/building-search-ui/installation/js/#with-a-packaging-system");
|
|
47
|
-
};
|
|
47
|
+
};
|
|
48
|
+
export { default as connectFilterSuggestions } from "./filter-suggestions/connectFilterSuggestions.js";
|
package/es/lib/chat/chat.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { UIMessage, ChatState as BaseChatState, ChatStatus, ChatInit } from
|
|
|
3
3
|
export type { UIMessage };
|
|
4
4
|
export { AbstractChat };
|
|
5
5
|
export { ChatInit };
|
|
6
|
-
export declare const CACHE_KEY = "instantsearch-chat-initial-messages
|
|
6
|
+
export declare const CACHE_KEY = "instantsearch-chat-initial-messages";
|
|
7
7
|
export declare class ChatState<TUiMessage extends UIMessage> implements BaseChatState<TUiMessage> {
|
|
8
8
|
_messages: TUiMessage[];
|
|
9
9
|
_status: ChatStatus;
|
package/es/lib/chat/chat.js
CHANGED
|
@@ -25,9 +25,9 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
|
|
|
25
25
|
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); }
|
|
26
26
|
import { AbstractChat } from 'ai';
|
|
27
27
|
export { AbstractChat };
|
|
28
|
-
export var CACHE_KEY = 'instantsearch-chat-initial-messages
|
|
28
|
+
export var CACHE_KEY = 'instantsearch-chat-initial-messages';
|
|
29
29
|
function getDefaultInitialMessages(id) {
|
|
30
|
-
var initialMessages = sessionStorage.getItem(CACHE_KEY + id);
|
|
30
|
+
var initialMessages = sessionStorage.getItem(CACHE_KEY + (id ? "-".concat(id) : ''));
|
|
31
31
|
return initialMessages ? JSON.parse(initialMessages) : [];
|
|
32
32
|
}
|
|
33
33
|
export var ChatState = /*#__PURE__*/function () {
|
|
@@ -97,7 +97,7 @@ export var ChatState = /*#__PURE__*/function () {
|
|
|
97
97
|
var saveMessagesInLocalStorage = function saveMessagesInLocalStorage() {
|
|
98
98
|
if (_this.status === 'ready') {
|
|
99
99
|
try {
|
|
100
|
-
sessionStorage.setItem(CACHE_KEY + id, JSON.stringify(_this.messages));
|
|
100
|
+
sessionStorage.setItem(CACHE_KEY + (id ? "-".concat(id) : ''), JSON.stringify(_this.messages));
|
|
101
101
|
} catch (e) {
|
|
102
102
|
// Do nothing if sessionStorage is not available or full
|
|
103
103
|
}
|
package/es/lib/chat/index.d.ts
CHANGED
|
@@ -5,3 +5,6 @@ export { ChatState } from './chat';
|
|
|
5
5
|
export { Chat } from './chat';
|
|
6
6
|
export declare const SearchIndexToolType = "algolia_search_index";
|
|
7
7
|
export declare const RecommendToolType = "algolia_recommend";
|
|
8
|
+
export declare const MemorizeToolType = "algolia_memorize";
|
|
9
|
+
export declare const MemorySearchToolType = "algolia_memory_search";
|
|
10
|
+
export declare const PonderToolType = "algolia_ponder";
|
package/es/lib/chat/index.js
CHANGED
|
@@ -2,4 +2,7 @@ export { AbstractChat } from "./chat.js";
|
|
|
2
2
|
export { ChatState } from "./chat.js";
|
|
3
3
|
export { Chat } from "./chat.js";
|
|
4
4
|
export var SearchIndexToolType = 'algolia_search_index';
|
|
5
|
-
export var RecommendToolType = 'algolia_recommend';
|
|
5
|
+
export var RecommendToolType = 'algolia_recommend';
|
|
6
|
+
export var MemorizeToolType = 'algolia_memorize';
|
|
7
|
+
export var MemorySearchToolType = 'algolia_memory_search';
|
|
8
|
+
export var PonderToolType = 'algolia_ponder';
|
package/es/lib/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: "4.
|
|
1
|
+
declare const _default: "4.87.0";
|
|
2
2
|
export default _default;
|
package/es/lib/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export default '4.
|
|
1
|
+
export default '4.87.0';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import type { AutocompleteConnectorParams, AutocompleteRenderState, AutocompleteWidgetDescription } from '../../connectors/autocomplete/connectAutocomplete';
|
|
2
|
+
import type { AutocompleteConnectorParams, AutocompleteRenderState, AutocompleteWidgetDescription, TransformItemsIndicesConfig } from '../../connectors/autocomplete/connectAutocomplete';
|
|
3
3
|
import type { BaseHit, IndexUiState, IndexWidget, Template, WidgetFactory } from '../../types';
|
|
4
4
|
import type { PlainSearchParameters } from 'algoliasearch-helper';
|
|
5
5
|
import type { AutocompleteClassNames, AutocompleteIndexClassNames, AutocompleteIndexConfig } from 'instantsearch-ui-components';
|
|
@@ -79,6 +79,7 @@ type AutocompleteWidgetParams<TItem extends BaseHit> = {
|
|
|
79
79
|
}>;
|
|
80
80
|
cssClasses?: Partial<AutocompleteIndexClassNames>;
|
|
81
81
|
};
|
|
82
|
+
transformItems?: (indices: TransformItemsIndicesConfig[]) => TransformItemsIndicesConfig[];
|
|
82
83
|
/**
|
|
83
84
|
* Search parameters to apply to the autocomplete indices.
|
|
84
85
|
*/
|
|
@@ -171,7 +171,8 @@ function AutocompleteWrapper(_ref4) {
|
|
|
171
171
|
query: searchboxQuery,
|
|
172
172
|
showRecent: showRecent,
|
|
173
173
|
indices: indices,
|
|
174
|
-
indicesConfig: indicesConfig
|
|
174
|
+
indicesConfig: indicesConfig,
|
|
175
|
+
suggestionsIndexName: showSuggestions === null || showSuggestions === void 0 ? void 0 : showSuggestions.indexName
|
|
175
176
|
}),
|
|
176
177
|
storage = _useStorage.storage,
|
|
177
178
|
storageHits = _useStorage.storageHits,
|
|
@@ -255,18 +256,24 @@ function AutocompleteWrapper(_ref4) {
|
|
|
255
256
|
});
|
|
256
257
|
}
|
|
257
258
|
indices.forEach(function (_ref8, i) {
|
|
258
|
-
var
|
|
259
|
+
var _currentIndexConfig$t;
|
|
259
260
|
var indexId = _ref8.indexId,
|
|
260
261
|
indexName = _ref8.indexName,
|
|
261
262
|
hits = _ref8.hits;
|
|
263
|
+
var currentIndexConfig = find(indicesConfig, function (config) {
|
|
264
|
+
return config.indexName === indexName;
|
|
265
|
+
});
|
|
266
|
+
if (!currentIndexConfig) {
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
262
269
|
if (!renderState.indexTemplateProps[i]) {
|
|
263
270
|
renderState.indexTemplateProps[i] = prepareTemplateProps({
|
|
264
271
|
defaultTemplates: {},
|
|
265
272
|
templatesConfig: instantSearchInstance.templatesConfig,
|
|
266
|
-
templates:
|
|
273
|
+
templates: currentIndexConfig.templates
|
|
267
274
|
});
|
|
268
275
|
}
|
|
269
|
-
var headerComponent = (
|
|
276
|
+
var headerComponent = (_currentIndexConfig$t = currentIndexConfig.templates) !== null && _currentIndexConfig$t !== void 0 && _currentIndexConfig$t.header ? function (_ref9) {
|
|
270
277
|
var items = _ref9.items;
|
|
271
278
|
return h(TemplateComponent, _extends({}, renderState.indexTemplateProps[i], {
|
|
272
279
|
templateKey: "header",
|
|
@@ -306,7 +313,7 @@ function AutocompleteWrapper(_ref4) {
|
|
|
306
313
|
});
|
|
307
314
|
}),
|
|
308
315
|
getItemProps: getItemProps,
|
|
309
|
-
classNames:
|
|
316
|
+
classNames: currentIndexConfig.cssClasses
|
|
310
317
|
});
|
|
311
318
|
});
|
|
312
319
|
return h(Autocomplete, _extends({}, getRootProps(), {
|
|
@@ -346,6 +353,7 @@ export function EXPERIMENTAL_autocomplete(widgetParams) {
|
|
|
346
353
|
onSelect = _ref1.onSelect,
|
|
347
354
|
_ref1$templates = _ref1.templates,
|
|
348
355
|
templates = _ref1$templates === void 0 ? {} : _ref1$templates,
|
|
356
|
+
transformItems = _ref1.transformItems,
|
|
349
357
|
_ref1$cssClasses = _ref1.cssClasses,
|
|
350
358
|
userCssClasses = _ref1$cssClasses === void 0 ? {} : _ref1$cssClasses,
|
|
351
359
|
placeholder = _ref1.placeholder;
|
|
@@ -430,7 +438,8 @@ export function EXPERIMENTAL_autocomplete(widgetParams) {
|
|
|
430
438
|
indexId: indexName
|
|
431
439
|
}).addWidgets([configure(indexSearchParameters || {})]);
|
|
432
440
|
})), [_objectSpread(_objectSpread({}, makeWidget({
|
|
433
|
-
escapeHTML: escapeHTML
|
|
441
|
+
escapeHTML: escapeHTML,
|
|
442
|
+
transformItems: transformItems
|
|
434
443
|
})), {}, {
|
|
435
444
|
$$widgetType: 'ais.autocomplete'
|
|
436
445
|
})]))];
|
|
@@ -197,6 +197,13 @@ export type ChatTemplates<THit extends NonNullable<object> = BaseHit> = Partial<
|
|
|
197
197
|
actions: ChatMessageActionProps[];
|
|
198
198
|
message: ChatMessageBase;
|
|
199
199
|
}>;
|
|
200
|
+
/**
|
|
201
|
+
* Template to use for prompt suggestions.
|
|
202
|
+
*/
|
|
203
|
+
suggestions: Template<{
|
|
204
|
+
suggestions: string[];
|
|
205
|
+
onSuggestionClick: (suggestion: string) => void;
|
|
206
|
+
}>;
|
|
200
207
|
}>;
|
|
201
208
|
type ChatWidgetParams<THit extends RecordWithObjectID = RecordWithObjectID> = {
|
|
202
209
|
/**
|
|
@@ -506,6 +513,7 @@ declare const _default: <THit extends RecordWithObjectID = RecordWithObjectID>(w
|
|
|
506
513
|
setInput: (input: string) => void;
|
|
507
514
|
setOpen: (open: boolean) => void;
|
|
508
515
|
setMessages: (messagesParam: import("ai").UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>[] | ((m: import("ai").UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>[]) => import("ai").UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>[])) => void;
|
|
516
|
+
suggestions: string[] | undefined;
|
|
509
517
|
isClearing: boolean;
|
|
510
518
|
clearMessages: () => void;
|
|
511
519
|
onClearTransitionEnd: () => void;
|
package/es/widgets/chat/chat.js
CHANGED
|
@@ -19,7 +19,7 @@ import { Fragment, h, render } from 'preact';
|
|
|
19
19
|
import { useMemo } from 'preact/hooks';
|
|
20
20
|
import TemplateComponent from "../../components/Template/Template.js";
|
|
21
21
|
import connectChat from "../../connectors/chat/connectChat.js";
|
|
22
|
-
import { SearchIndexToolType, RecommendToolType } from "../../lib/chat/index.js";
|
|
22
|
+
import { SearchIndexToolType, RecommendToolType, MemorizeToolType, MemorySearchToolType, PonderToolType } from "../../lib/chat/index.js";
|
|
23
23
|
import { prepareTemplateProps } from "../../lib/templating/index.js";
|
|
24
24
|
import { useStickToBottom } from "../../lib/useStickToBottom.js";
|
|
25
25
|
import { getContainerNode, createDocumentationMessageGenerator } from "../../lib/utils/index.js";
|
|
@@ -161,7 +161,13 @@ function createCarouselTool(showViewAll, templates, getSearchPageURL) {
|
|
|
161
161
|
}
|
|
162
162
|
function createDefaultTools(templates, getSearchPageURL) {
|
|
163
163
|
var _ref9;
|
|
164
|
-
return _ref9 = {}, _defineProperty(_ref9, SearchIndexToolType, createCarouselTool(true, templates, getSearchPageURL)), _defineProperty(_ref9, RecommendToolType, createCarouselTool(false, templates, getSearchPageURL)), _ref9
|
|
164
|
+
return _ref9 = {}, _defineProperty(_ref9, SearchIndexToolType, createCarouselTool(true, templates, getSearchPageURL)), _defineProperty(_ref9, RecommendToolType, createCarouselTool(false, templates, getSearchPageURL)), _defineProperty(_ref9, MemorizeToolType, {
|
|
165
|
+
templates: {}
|
|
166
|
+
}), _defineProperty(_ref9, MemorySearchToolType, {
|
|
167
|
+
templates: {}
|
|
168
|
+
}), _defineProperty(_ref9, PonderToolType, {
|
|
169
|
+
templates: {}
|
|
170
|
+
}), _ref9;
|
|
165
171
|
}
|
|
166
172
|
function ChatWrapper(_ref0) {
|
|
167
173
|
var cssClasses = _ref0.cssClasses,
|
|
@@ -184,6 +190,7 @@ function ChatWrapper(_ref0) {
|
|
|
184
190
|
headerProps = _ref0.headerProps,
|
|
185
191
|
messagesProps = _ref0.messagesProps,
|
|
186
192
|
promptProps = _ref0.promptProps,
|
|
193
|
+
suggestionsProps = _ref0.suggestionsProps,
|
|
187
194
|
state = _ref0.state;
|
|
188
195
|
var _useStickToBottom = useStickToBottom({
|
|
189
196
|
initial: 'smooth',
|
|
@@ -212,6 +219,7 @@ function ChatWrapper(_ref0) {
|
|
|
212
219
|
},
|
|
213
220
|
headerComponent: headerProps.layoutComponent,
|
|
214
221
|
promptComponent: promptProps.layoutComponent,
|
|
222
|
+
suggestionsComponent: suggestionsProps.suggestionsComponent,
|
|
215
223
|
headerProps: {
|
|
216
224
|
onClose: function onClose() {
|
|
217
225
|
return setChatOpen(false);
|
|
@@ -275,6 +283,10 @@ function ChatWrapper(_ref0) {
|
|
|
275
283
|
headerComponent: promptProps.headerComponent,
|
|
276
284
|
footerComponent: promptProps.footerComponent,
|
|
277
285
|
translations: promptProps.translations
|
|
286
|
+
},
|
|
287
|
+
suggestionsProps: {
|
|
288
|
+
onSuggestionClick: suggestionsProps.onSuggestionClick,
|
|
289
|
+
suggestions: suggestionsProps.suggestions
|
|
278
290
|
}
|
|
279
291
|
});
|
|
280
292
|
}
|
|
@@ -308,7 +320,8 @@ var createRenderer = function createRenderer(_ref1) {
|
|
|
308
320
|
isClearing = props.isClearing,
|
|
309
321
|
clearMessages = props.clearMessages,
|
|
310
322
|
onClearTransitionEnd = props.onClearTransitionEnd,
|
|
311
|
-
toolsFromConnector = props.tools
|
|
323
|
+
toolsFromConnector = props.tools,
|
|
324
|
+
suggestions = props.suggestions;
|
|
312
325
|
if (process.env.NODE_ENV === 'development' && error) {
|
|
313
326
|
throw error;
|
|
314
327
|
}
|
|
@@ -509,6 +522,13 @@ var createRenderer = function createRenderer(_ref1) {
|
|
|
509
522
|
}
|
|
510
523
|
}));
|
|
511
524
|
} : undefined;
|
|
525
|
+
var suggestionsComponent = templates.suggestions ? function (suggestionsProps) {
|
|
526
|
+
return h(TemplateComponent, _extends({}, renderState.templateProps, {
|
|
527
|
+
templateKey: "suggestions",
|
|
528
|
+
rootTagName: "fragment",
|
|
529
|
+
data: suggestionsProps
|
|
530
|
+
}));
|
|
531
|
+
} : undefined;
|
|
512
532
|
state.subscribe(rerender);
|
|
513
533
|
function rerender() {
|
|
514
534
|
render(h(ChatWrapper, {
|
|
@@ -562,7 +582,16 @@ var createRenderer = function createRenderer(_ref1) {
|
|
|
562
582
|
translations: promptTranslations,
|
|
563
583
|
promptRef: promptRef
|
|
564
584
|
},
|
|
565
|
-
state: state
|
|
585
|
+
state: state,
|
|
586
|
+
suggestionsProps: {
|
|
587
|
+
suggestions: suggestions,
|
|
588
|
+
onSuggestionClick: function onSuggestionClick(message) {
|
|
589
|
+
sendMessage({
|
|
590
|
+
text: message
|
|
591
|
+
});
|
|
592
|
+
},
|
|
593
|
+
suggestionsComponent: suggestionsComponent
|
|
594
|
+
}
|
|
566
595
|
}), containerNode);
|
|
567
596
|
}
|
|
568
597
|
rerender();
|