react-instantsearch 7.40.0 → 7.42.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/dist/cjs/components/Carousel.js +3 -1
- package/dist/cjs/widgets/Autocomplete.js +23 -14
- package/dist/cjs/widgets/Chat.js +33 -10
- package/dist/cjs/widgets/PromptSuggestions.js +66 -0
- package/dist/cjs/widgets/chat/tools/DisplayResultsTool.js +36 -30
- package/dist/cjs/widgets/chat/tools/SearchIndexTool.js +15 -86
- package/dist/cjs/widgets/index.js +1 -0
- package/dist/es/components/Carousel.js +4 -2
- package/dist/es/index.js +2 -1
- package/dist/es/widgets/Autocomplete.d.ts +3 -1
- package/dist/es/widgets/Autocomplete.js +13 -12
- package/dist/es/widgets/Chat.d.ts +4 -0
- package/dist/es/widgets/Chat.js +42 -19
- package/dist/es/widgets/PromptSuggestions.d.ts +23 -0
- package/dist/es/widgets/PromptSuggestions.js +57 -0
- package/dist/es/widgets/chat/tools/DisplayResultsTool.js +37 -31
- package/dist/es/widgets/chat/tools/SearchIndexTool.js +17 -88
- package/dist/es/widgets/index.d.ts +1 -0
- package/dist/es/widgets/index.js +2 -1
- package/dist/umd/ReactInstantSearch.js +2426 -873
- package/dist/umd/ReactInstantSearch.min.js +3 -3
- package/package.json +5 -5
|
@@ -16,7 +16,9 @@ var _instantsearchuicomponents = require("instantsearch-ui-components");
|
|
|
16
16
|
var _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
|
|
17
17
|
var CarouselUiComponent = (0, _instantsearchuicomponents.createCarouselComponent)({
|
|
18
18
|
createElement: _react.createElement,
|
|
19
|
-
Fragment: _react.Fragment
|
|
19
|
+
Fragment: _react.Fragment,
|
|
20
|
+
useEffect: _react.useEffect,
|
|
21
|
+
useRef: _react.useRef
|
|
20
22
|
});
|
|
21
23
|
function Carousel(props) {
|
|
22
24
|
var _useState = _sliced_to_array._((0, _react.useState)(false), 2), canScrollLeft = _useState[0], setCanScrollLeft = _useState[1];
|
|
@@ -3,9 +3,17 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
function _export(target, all) {
|
|
7
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
_export(exports, {
|
|
13
|
+
get Autocomplete () {
|
|
14
|
+
return Autocomplete;
|
|
15
|
+
},
|
|
16
|
+
get EXPERIMENTAL_Autocomplete () {
|
|
9
17
|
return EXPERIMENTAL_Autocomplete;
|
|
10
18
|
}
|
|
11
19
|
});
|
|
@@ -18,13 +26,13 @@ var _to_consumable_array = require("@swc/helpers/_/_to_consumable_array");
|
|
|
18
26
|
var _type_of = require("@swc/helpers/_/_type_of");
|
|
19
27
|
var _instantsearchuicomponents = require("instantsearch-ui-components");
|
|
20
28
|
var _chat = require("instantsearch.js/cjs/lib/chat");
|
|
21
|
-
require("instantsearch.js/cjs/lib/utils");
|
|
29
|
+
var _utils = require("instantsearch.js/cjs/lib/utils");
|
|
22
30
|
var _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
|
|
23
31
|
var _reactinstantsearchcore = require("react-instantsearch-core");
|
|
24
32
|
var _AutocompleteSearch = require("../components/AutocompleteSearch");
|
|
25
33
|
var _Highlight = require("./Highlight");
|
|
26
34
|
var _ReverseHighlight = require("./ReverseHighlight");
|
|
27
|
-
var
|
|
35
|
+
var AutocompleteUiComponent = (0, _instantsearchuicomponents.createAutocompleteComponent)({
|
|
28
36
|
createElement: _react.createElement,
|
|
29
37
|
Fragment: _react.Fragment
|
|
30
38
|
});
|
|
@@ -210,7 +218,7 @@ function getMediaQueryList(mediaQuery) {
|
|
|
210
218
|
setIsModalOpen: setIsModalOpen
|
|
211
219
|
};
|
|
212
220
|
}
|
|
213
|
-
function
|
|
221
|
+
function Autocomplete(props) {
|
|
214
222
|
var _showRecent_classNames, _showRecent_classNames1, _showRecent_classNames2, _showRecent_classNames3;
|
|
215
223
|
var indices = 'indices' in props ? props.indices : undefined;
|
|
216
224
|
var feeds = 'feeds' in props ? props.feeds : undefined;
|
|
@@ -243,10 +251,10 @@ function EXPERIMENTAL_Autocomplete(props) {
|
|
|
243
251
|
var domId = useAutocompleteId();
|
|
244
252
|
var instanceKey = domId.replace(/:/g, '');
|
|
245
253
|
if (isFeedsMode && indices !== undefined) {
|
|
246
|
-
throw new Error('
|
|
254
|
+
throw new Error('Autocomplete: `feeds` and `indices` are mutually exclusive.');
|
|
247
255
|
}
|
|
248
256
|
if (isFeedsMode && !compositionID) {
|
|
249
|
-
throw new Error('
|
|
257
|
+
throw new Error('Autocomplete in feeds-mode requires a composition-based <InstantSearch> (compositionID must be set).');
|
|
250
258
|
}
|
|
251
259
|
var isSearchStalled = status === 'stalled';
|
|
252
260
|
var searchParameters = _object_spread._({
|
|
@@ -461,7 +469,7 @@ function EXPERIMENTAL_Autocomplete(props) {
|
|
|
461
469
|
}
|
|
462
470
|
setActivated(true);
|
|
463
471
|
};
|
|
464
|
-
return /*#__PURE__*/ _react.default.createElement(
|
|
472
|
+
return /*#__PURE__*/ _react.default.createElement(AutocompleteUiComponent, _object_spread_props._(_object_spread._({}, shellRootProps), {
|
|
465
473
|
classNames: classNames
|
|
466
474
|
}), isDetached ? /*#__PURE__*/ _react.default.createElement(AutocompleteDetachedSearchButton, {
|
|
467
475
|
query: (_indexUiState_query = indexUiState.query) !== null && _indexUiState_query !== void 0 ? _indexUiState_query : '',
|
|
@@ -504,7 +512,7 @@ function EXPERIMENTAL_Autocomplete(props) {
|
|
|
504
512
|
}));
|
|
505
513
|
if (isFeedsMode) {
|
|
506
514
|
return /*#__PURE__*/ _react.default.createElement(_reactinstantsearchcore.Index, {
|
|
507
|
-
|
|
515
|
+
isolated: true,
|
|
508
516
|
indexName: compositionID,
|
|
509
517
|
indexId: "ais-autocomplete-".concat(instanceKey)
|
|
510
518
|
}, /*#__PURE__*/ _react.default.createElement(_reactinstantsearchcore.Configure, searchParameters), /*#__PURE__*/ _react.default.createElement(_reactinstantsearchcore.Feeds, {
|
|
@@ -515,7 +523,7 @@ function EXPERIMENTAL_Autocomplete(props) {
|
|
|
515
523
|
}), innerAutocomplete);
|
|
516
524
|
}
|
|
517
525
|
return /*#__PURE__*/ _react.default.createElement(_reactinstantsearchcore.Index, {
|
|
518
|
-
|
|
526
|
+
isolated: true,
|
|
519
527
|
indexId: "ais-autocomplete-".concat(instanceKey)
|
|
520
528
|
}, /*#__PURE__*/ _react.default.createElement(_reactinstantsearchcore.Configure, searchParameters), indicesConfig.map(function(index) {
|
|
521
529
|
return /*#__PURE__*/ _react.default.createElement(_reactinstantsearchcore.Index, {
|
|
@@ -525,6 +533,7 @@ function EXPERIMENTAL_Autocomplete(props) {
|
|
|
525
533
|
}, /*#__PURE__*/ _react.default.createElement(_reactinstantsearchcore.Configure, index.searchParameters));
|
|
526
534
|
}), innerAutocomplete);
|
|
527
535
|
}
|
|
536
|
+
var EXPERIMENTAL_Autocomplete = (0, _utils.deprecate)(Autocomplete, 'EXPERIMENTAL_Autocomplete is no longer experimental. Please use Autocomplete instead.');
|
|
528
537
|
function InnerAutocomplete(_0) {
|
|
529
538
|
var indicesConfig = _0.indicesConfig, refineSearchBox = _0.refineSearchBox, isSearchStalled = _0.isSearchStalled, getSearchPageURL = _0.getSearchPageURL, userOnSelect = _0.onSelect, indexUiState = _0.indexUiState, isSearchPage = _0.isSearchPage, PanelComponent = _0.panelComponent, showRecent = _0.showRecent, recentSearchConfig = _0.recentSearchConfig, showQuerySuggestions = _0.showQuerySuggestions, showPromptSuggestions = _0.showPromptSuggestions, chatRenderState = _0.chatRenderState, transformItems = _0.transformItems, placeholder = _0.placeholder, autoFocus = _0.autoFocus, translations = _0.translations, classNames = _0.classNames, aiMode = _0.aiMode, domId = _0.domId, detached = _0.detached, props = _object_without_properties._(_0, [
|
|
530
539
|
"indicesConfig",
|
|
@@ -641,7 +650,7 @@ function InnerAutocomplete(_0) {
|
|
|
641
650
|
if (chatRenderState) {
|
|
642
651
|
if ((0, _chat.openChat)(chatRenderState, {
|
|
643
652
|
message: item.prompt,
|
|
644
|
-
referer: 'prompt-suggestions'
|
|
653
|
+
referer: 'prompt-suggestions-autocomplete'
|
|
645
654
|
})) {
|
|
646
655
|
setQuery('');
|
|
647
656
|
}
|
|
@@ -810,7 +819,7 @@ function InnerAutocomplete(_0) {
|
|
|
810
819
|
"ref"
|
|
811
820
|
]);
|
|
812
821
|
if (isDetached) {
|
|
813
|
-
return /*#__PURE__*/ _react.default.createElement(
|
|
822
|
+
return /*#__PURE__*/ _react.default.createElement(AutocompleteUiComponent, _object_spread_props._(_object_spread._({}, props, rootProps), {
|
|
814
823
|
rootRef: rootRef,
|
|
815
824
|
classNames: classNames
|
|
816
825
|
}), /*#__PURE__*/ _react.default.createElement(AutocompleteDetachedSearchButton, {
|
|
@@ -836,7 +845,7 @@ function InnerAutocomplete(_0) {
|
|
|
836
845
|
}, searchBoxContent), panelContent)));
|
|
837
846
|
}
|
|
838
847
|
// Normal (non-detached) rendering
|
|
839
|
-
return /*#__PURE__*/ _react.default.createElement(
|
|
848
|
+
return /*#__PURE__*/ _react.default.createElement(AutocompleteUiComponent, _object_spread_props._(_object_spread._({}, props, rootProps), {
|
|
840
849
|
rootRef: rootRef,
|
|
841
850
|
classNames: classNames
|
|
842
851
|
}), searchBoxContent, panelContent);
|
package/dist/cjs/widgets/Chat.js
CHANGED
|
@@ -52,18 +52,35 @@ var _SearchIndexTool = require("./chat/tools/SearchIndexTool");
|
|
|
52
52
|
var ChatUiComponent = (0, _instantsearchuicomponents.createChatComponent)({
|
|
53
53
|
createElement: _react.createElement,
|
|
54
54
|
Fragment: _react.Fragment,
|
|
55
|
-
|
|
55
|
+
useMemo: _react.useMemo,
|
|
56
56
|
useState: _react.useState
|
|
57
57
|
});
|
|
58
58
|
function createDefaultTools(itemComponent, getSearchPageURL) {
|
|
59
59
|
var _obj;
|
|
60
60
|
return _obj = {}, _define_property._(_obj, _chat.SearchIndexToolType, (0, _SearchIndexTool.createCarouselTool)(true, itemComponent, getSearchPageURL)), _define_property._(_obj, _chat.RecommendToolType, (0, _SearchIndexTool.createCarouselTool)(false, itemComponent, getSearchPageURL)), _define_property._(_obj, _chat.DisplayResultsToolType, (0, _DisplayResultsTool.createDisplayResultsTool)(itemComponent)), _define_property._(_obj, _chat.MemorizeToolType, {}), _define_property._(_obj, _chat.MemorySearchToolType, {}), _define_property._(_obj, _chat.PonderToolType, {}), _obj;
|
|
61
61
|
}
|
|
62
|
+
function mergeToolOptions(defaultTools, userTools) {
|
|
63
|
+
if (!userTools) {
|
|
64
|
+
return defaultTools;
|
|
65
|
+
}
|
|
66
|
+
var tools = _object_spread._({}, defaultTools, userTools);
|
|
67
|
+
Object.keys(userTools).forEach(function(toolName) {
|
|
68
|
+
var _defaultTools_toolName;
|
|
69
|
+
var userTool = userTools[toolName];
|
|
70
|
+
var defaultStreamInput = (_defaultTools_toolName = defaultTools[toolName]) === null || _defaultTools_toolName === void 0 ? void 0 : _defaultTools_toolName.streamInput;
|
|
71
|
+
if (userTool.layoutComponent !== undefined && userTool.streamInput === undefined && defaultStreamInput !== undefined) {
|
|
72
|
+
tools[toolName] = _object_spread_props._(_object_spread._({}, userTool), {
|
|
73
|
+
streamInput: defaultStreamInput
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
return tools;
|
|
78
|
+
}
|
|
62
79
|
function ChatInner(_0, _1) {
|
|
63
80
|
var _ref = [
|
|
64
81
|
_0,
|
|
65
82
|
_1
|
|
66
|
-
], _ref1 = _to_array._(_ref), _ref2 = _ref1[0], _rest = _ref1.slice(1), userTools = _ref2.tools, headerProps = _ref2.headerProps, messagesProps = _ref2.messagesProps, promptProps = _ref2.promptProps, itemComponent = _ref2.itemComponent, layoutComponent = _ref2.layoutComponent, headerComponent = _ref2.headerComponent, headerTitleIconComponent = _ref2.headerTitleIconComponent, headerCloseIconComponent = _ref2.headerCloseIconComponent, headerMinimizeIconComponent = _ref2.headerMinimizeIconComponent, headerMaximizeIconComponent = _ref2.headerMaximizeIconComponent, loaderComponent = _ref2.loaderComponent, messagesErrorComponent = _ref2.messagesErrorComponent, promptComponent = _ref2.promptComponent, promptHeaderComponent = _ref2.promptHeaderComponent, promptFooterComponent = _ref2.promptFooterComponent, assistantMessageLeadingComponent = _ref2.assistantMessageLeadingComponent, assistantMessageFooterComponent = _ref2.assistantMessageFooterComponent, userMessageLeadingComponent = _ref2.userMessageLeadingComponent, userMessageFooterComponent = _ref2.userMessageFooterComponent, emptyComponent = _ref2.emptyComponent, actionsComponent = _ref2.actionsComponent, suggestionsComponent = _ref2.suggestionsComponent, classNames = _ref2.classNames, _ref_translations = _ref2.translations, translations = _ref_translations === void 0 ? {} : _ref_translations, title = _ref2.title, getSearchPageURL = _ref2.getSearchPageURL, _ref_disableTriggerValidation = _ref2.disableTriggerValidation, disableTriggerValidation = _ref_disableTriggerValidation === void 0 ? false : _ref_disableTriggerValidation, props = _object_without_properties._(_ref2, [
|
|
83
|
+
], _ref1 = _to_array._(_ref), _ref2 = _ref1[0], _rest = _ref1.slice(1), userTools = _ref2.tools, headerProps = _ref2.headerProps, messagesProps = _ref2.messagesProps, promptProps = _ref2.promptProps, itemComponent = _ref2.itemComponent, layoutComponent = _ref2.layoutComponent, headerComponent = _ref2.headerComponent, headerTitleIconComponent = _ref2.headerTitleIconComponent, headerCloseIconComponent = _ref2.headerCloseIconComponent, headerMinimizeIconComponent = _ref2.headerMinimizeIconComponent, headerMaximizeIconComponent = _ref2.headerMaximizeIconComponent, loaderComponent = _ref2.loaderComponent, messagesErrorComponent = _ref2.messagesErrorComponent, promptComponent = _ref2.promptComponent, promptHeaderComponent = _ref2.promptHeaderComponent, promptFooterComponent = _ref2.promptFooterComponent, assistantMessageLeadingComponent = _ref2.assistantMessageLeadingComponent, assistantMessageFooterComponent = _ref2.assistantMessageFooterComponent, userMessageLeadingComponent = _ref2.userMessageLeadingComponent, userMessageFooterComponent = _ref2.userMessageFooterComponent, emptyComponent = _ref2.emptyComponent, actionsComponent = _ref2.actionsComponent, suggestionsComponent = _ref2.suggestionsComponent, classNames = _ref2.classNames, _ref_translations = _ref2.translations, translations = _ref_translations === void 0 ? {} : _ref_translations, title = _ref2.title, getSearchPageURL = _ref2.getSearchPageURL, _ref_disableTriggerValidation = _ref2.disableTriggerValidation, disableTriggerValidation = _ref_disableTriggerValidation === void 0 ? false : _ref_disableTriggerValidation, showReasoning = _ref2.showReasoning, props = _object_without_properties._(_ref2, [
|
|
67
84
|
"tools",
|
|
68
85
|
"headerProps",
|
|
69
86
|
"messagesProps",
|
|
@@ -91,7 +108,8 @@ function ChatInner(_0, _1) {
|
|
|
91
108
|
"translations",
|
|
92
109
|
"title",
|
|
93
110
|
"getSearchPageURL",
|
|
94
|
-
"disableTriggerValidation"
|
|
111
|
+
"disableTriggerValidation",
|
|
112
|
+
"showReasoning"
|
|
95
113
|
]), _rest1 = _sliced_to_array._(_rest, 1), ref = _rest1[0];
|
|
96
114
|
var promptTranslations = translations.prompt, headerTranslations = translations.header, messageTranslations = translations.message, messagesTranslations = translations.messages;
|
|
97
115
|
var _useInstantSearch = (0, _reactinstantsearchcore.useInstantSearch)(), indexUiState = _useInstantSearch.indexUiState, setIndexUiState = _useInstantSearch.setIndexUiState;
|
|
@@ -103,7 +121,7 @@ function ChatInner(_0, _1) {
|
|
|
103
121
|
}), scrollRef = _useStickToBottom1.scrollRef, contentRef = _useStickToBottom1.contentRef, scrollToBottom = _useStickToBottom1.scrollToBottom, isAtBottom = _useStickToBottom1.isAtBottom;
|
|
104
122
|
var tools = (0, _react.useMemo)(function() {
|
|
105
123
|
var defaults = createDefaultTools(itemComponent, getSearchPageURL);
|
|
106
|
-
return
|
|
124
|
+
return mergeToolOptions(defaults, userTools);
|
|
107
125
|
}, [
|
|
108
126
|
getSearchPageURL,
|
|
109
127
|
itemComponent,
|
|
@@ -158,6 +176,10 @@ function ChatInner(_0, _1) {
|
|
|
158
176
|
status,
|
|
159
177
|
scrollToBottom
|
|
160
178
|
]);
|
|
179
|
+
var _ref3 = messagesProps !== null && messagesProps !== void 0 ? messagesProps : {}, callerAssistantMessageProps = _ref3.assistantMessageProps, callerUserMessageProps = _ref3.userMessageProps, restMessagesProps = _object_without_properties._(_ref3, [
|
|
180
|
+
"assistantMessageProps",
|
|
181
|
+
"userMessageProps"
|
|
182
|
+
]);
|
|
161
183
|
return /*#__PURE__*/ _react.default.createElement(ChatUiComponent, {
|
|
162
184
|
title: title,
|
|
163
185
|
open: open,
|
|
@@ -213,17 +235,18 @@ function ChatInner(_0, _1) {
|
|
|
213
235
|
errorComponent: messagesErrorComponent,
|
|
214
236
|
emptyComponent: emptyComponent,
|
|
215
237
|
actionsComponent: actionsComponent,
|
|
238
|
+
translations: messagesTranslations,
|
|
239
|
+
messageTranslations: messageTranslations
|
|
240
|
+
}, restMessagesProps), {
|
|
216
241
|
assistantMessageProps: _object_spread._({
|
|
217
242
|
leadingComponent: assistantMessageLeadingComponent,
|
|
218
|
-
footerComponent: assistantMessageFooterComponent
|
|
219
|
-
|
|
243
|
+
footerComponent: assistantMessageFooterComponent,
|
|
244
|
+
showReasoning: showReasoning
|
|
245
|
+
}, callerAssistantMessageProps),
|
|
220
246
|
userMessageProps: _object_spread._({
|
|
221
247
|
leadingComponent: userMessageLeadingComponent,
|
|
222
248
|
footerComponent: userMessageFooterComponent
|
|
223
|
-
},
|
|
224
|
-
translations: messagesTranslations,
|
|
225
|
-
messageTranslations: messageTranslations
|
|
226
|
-
}, messagesProps), {
|
|
249
|
+
}, callerUserMessageProps),
|
|
227
250
|
error: error
|
|
228
251
|
}),
|
|
229
252
|
promptProps: _object_spread._({
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "PromptSuggestions", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function() {
|
|
9
|
+
return PromptSuggestions;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
|
|
13
|
+
var _object_spread = require("@swc/helpers/_/_object_spread");
|
|
14
|
+
var _object_spread_props = require("@swc/helpers/_/_object_spread_props");
|
|
15
|
+
var _object_without_properties = require("@swc/helpers/_/_object_without_properties");
|
|
16
|
+
var _instantsearchuicomponents = require("instantsearch-ui-components");
|
|
17
|
+
var _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
|
|
18
|
+
var _reactinstantsearchcore = require("react-instantsearch-core");
|
|
19
|
+
var PromptSuggestionsUi = (0, _instantsearchuicomponents.createPromptSuggestionsComponent)({
|
|
20
|
+
createElement: _react.createElement,
|
|
21
|
+
Fragment: _react.Fragment
|
|
22
|
+
});
|
|
23
|
+
function PromptSuggestions(_0) {
|
|
24
|
+
var _0_classNames = _0.classNames, classNames = _0_classNames === void 0 ? {} : _0_classNames, LayoutComponent = _0.layoutComponent, onSuggestionClickOverride = _0.onSuggestionClick, // Connector params — forwarded to the hook, not the UI root.
|
|
25
|
+
agentId = _0.agentId, transport = _0.transport, configurationId = _0.configurationId, transformHits = _0.transformHits, context = _0.context, transformItems = _0.transformItems, props = _object_without_properties._(_0, [
|
|
26
|
+
"classNames",
|
|
27
|
+
"layoutComponent",
|
|
28
|
+
"onSuggestionClick",
|
|
29
|
+
"agentId",
|
|
30
|
+
"transport",
|
|
31
|
+
"configurationId",
|
|
32
|
+
"transformHits",
|
|
33
|
+
"context",
|
|
34
|
+
"transformItems"
|
|
35
|
+
]);
|
|
36
|
+
var _usePromptSuggestions = (0, _reactinstantsearchcore.usePromptSuggestions)({
|
|
37
|
+
agentId: agentId,
|
|
38
|
+
transport: transport,
|
|
39
|
+
configurationId: configurationId,
|
|
40
|
+
transformHits: transformHits,
|
|
41
|
+
context: context,
|
|
42
|
+
transformItems: transformItems
|
|
43
|
+
}, {
|
|
44
|
+
$$widgetType: 'ais.promptSuggestions'
|
|
45
|
+
}), suggestions = _usePromptSuggestions.suggestions, isLoading = _usePromptSuggestions.isLoading, onSuggestionClick = _usePromptSuggestions.onSuggestionClick, isChatBusy = _usePromptSuggestions.isChatBusy, sendToChat = _usePromptSuggestions.sendToChat;
|
|
46
|
+
var handleClick = onSuggestionClickOverride ? function(prompt) {
|
|
47
|
+
return onSuggestionClickOverride(prompt, {
|
|
48
|
+
sendToChat: sendToChat
|
|
49
|
+
});
|
|
50
|
+
} : onSuggestionClick;
|
|
51
|
+
if (LayoutComponent) {
|
|
52
|
+
return /*#__PURE__*/ _react.default.createElement(LayoutComponent, {
|
|
53
|
+
suggestions: suggestions,
|
|
54
|
+
isLoading: isLoading,
|
|
55
|
+
onSuggestionClick: handleClick,
|
|
56
|
+
isChatBusy: isChatBusy
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
return /*#__PURE__*/ _react.default.createElement(PromptSuggestionsUi, _object_spread_props._(_object_spread._({}, props), {
|
|
60
|
+
classNames: classNames,
|
|
61
|
+
suggestions: suggestions,
|
|
62
|
+
isLoading: isLoading,
|
|
63
|
+
onSuggestionClick: handleClick,
|
|
64
|
+
disabled: isChatBusy
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
@@ -17,11 +17,43 @@ function createDisplayResultsTool(itemComponent) {
|
|
|
17
17
|
var DisplayResultsUIComponent = (0, _instantsearchuicomponents.createDisplayResultsToolComponent)({
|
|
18
18
|
createElement: _react.createElement,
|
|
19
19
|
Fragment: _react.Fragment,
|
|
20
|
-
|
|
20
|
+
useEffect: _react.useEffect,
|
|
21
|
+
useMemo: _react.useMemo,
|
|
22
|
+
useRef: _react.useRef
|
|
21
23
|
});
|
|
22
24
|
var Button = (0, _instantsearchuicomponents.createButtonComponent)({
|
|
23
25
|
createElement: _react.createElement
|
|
24
26
|
});
|
|
27
|
+
var DisplayResultsCarouselHeader = function DisplayResultsCarouselHeader(param) {
|
|
28
|
+
var nbItems = param.nbItems, canScrollLeft = param.canScrollLeft, canScrollRight = param.canScrollRight, scrollLeft = param.scrollLeft, scrollRight = param.scrollRight;
|
|
29
|
+
return /*#__PURE__*/ _react.default.createElement("div", {
|
|
30
|
+
className: "ais-ChatToolDisplayResultsCarouselHeader"
|
|
31
|
+
}, /*#__PURE__*/ _react.default.createElement("div", {
|
|
32
|
+
className: "ais-ChatToolDisplayResultsCarouselHeaderCount"
|
|
33
|
+
}, nbItems, " result", nbItems > 1 ? 's' : ''), /*#__PURE__*/ _react.default.createElement("div", {
|
|
34
|
+
className: "ais-ChatToolDisplayResultsCarouselHeaderScrollButtons"
|
|
35
|
+
}, /*#__PURE__*/ _react.default.createElement(Button, {
|
|
36
|
+
variant: "outline",
|
|
37
|
+
size: "sm",
|
|
38
|
+
iconOnly: true,
|
|
39
|
+
"aria-label": "Previous",
|
|
40
|
+
onClick: scrollLeft,
|
|
41
|
+
disabled: !canScrollLeft,
|
|
42
|
+
className: "ais-ChatToolDisplayResultsCarouselHeaderScrollButton"
|
|
43
|
+
}, /*#__PURE__*/ _react.default.createElement(_instantsearchuicomponents.ChevronLeftIcon, {
|
|
44
|
+
createElement: _react.createElement
|
|
45
|
+
})), /*#__PURE__*/ _react.default.createElement(Button, {
|
|
46
|
+
variant: "outline",
|
|
47
|
+
size: "sm",
|
|
48
|
+
iconOnly: true,
|
|
49
|
+
"aria-label": "Next",
|
|
50
|
+
onClick: scrollRight,
|
|
51
|
+
disabled: !canScrollRight,
|
|
52
|
+
className: "ais-ChatToolDisplayResultsCarouselHeaderScrollButton"
|
|
53
|
+
}, /*#__PURE__*/ _react.default.createElement(_instantsearchuicomponents.ChevronRightIcon, {
|
|
54
|
+
createElement: _react.createElement
|
|
55
|
+
}))));
|
|
56
|
+
};
|
|
25
57
|
var DisplayResultsLayoutComponent = function DisplayResultsLayoutComponent(toolProps) {
|
|
26
58
|
return /*#__PURE__*/ _react.default.createElement(DisplayResultsUIComponent, {
|
|
27
59
|
toolProps: toolProps,
|
|
@@ -32,39 +64,13 @@ function createDisplayResultsTool(itemComponent) {
|
|
|
32
64
|
itemComponent: itemComponent,
|
|
33
65
|
sendEvent: sendEvent,
|
|
34
66
|
showNavigation: false,
|
|
35
|
-
headerComponent:
|
|
36
|
-
var canScrollLeft = param.canScrollLeft, canScrollRight = param.canScrollRight, scrollLeft = param.scrollLeft, scrollRight = param.scrollRight;
|
|
37
|
-
return /*#__PURE__*/ _react.default.createElement("div", {
|
|
38
|
-
className: "ais-ChatToolDisplayResultsCarouselHeader"
|
|
39
|
-
}, /*#__PURE__*/ _react.default.createElement("div", {
|
|
40
|
-
className: "ais-ChatToolDisplayResultsCarouselHeaderCount"
|
|
41
|
-
}, items.length, " result", items.length > 1 ? 's' : ''), /*#__PURE__*/ _react.default.createElement("div", {
|
|
42
|
-
className: "ais-ChatToolDisplayResultsCarouselHeaderScrollButtons"
|
|
43
|
-
}, /*#__PURE__*/ _react.default.createElement(Button, {
|
|
44
|
-
variant: "outline",
|
|
45
|
-
size: "sm",
|
|
46
|
-
iconOnly: true,
|
|
47
|
-
onClick: scrollLeft,
|
|
48
|
-
disabled: !canScrollLeft,
|
|
49
|
-
className: "ais-ChatToolDisplayResultsCarouselHeaderScrollButton"
|
|
50
|
-
}, /*#__PURE__*/ _react.default.createElement(_instantsearchuicomponents.ChevronLeftIcon, {
|
|
51
|
-
createElement: _react.createElement
|
|
52
|
-
})), /*#__PURE__*/ _react.default.createElement(Button, {
|
|
53
|
-
variant: "outline",
|
|
54
|
-
size: "sm",
|
|
55
|
-
iconOnly: true,
|
|
56
|
-
onClick: scrollRight,
|
|
57
|
-
disabled: !canScrollRight,
|
|
58
|
-
className: "ais-ChatToolDisplayResultsCarouselHeaderScrollButton"
|
|
59
|
-
}, /*#__PURE__*/ _react.default.createElement(_instantsearchuicomponents.ChevronRightIcon, {
|
|
60
|
-
createElement: _react.createElement
|
|
61
|
-
}))));
|
|
62
|
-
}
|
|
67
|
+
headerComponent: DisplayResultsCarouselHeader
|
|
63
68
|
});
|
|
64
69
|
}
|
|
65
70
|
});
|
|
66
71
|
};
|
|
67
72
|
return {
|
|
68
|
-
layoutComponent: DisplayResultsLayoutComponent
|
|
73
|
+
layoutComponent: DisplayResultsLayoutComponent,
|
|
74
|
+
streamInput: true
|
|
69
75
|
};
|
|
70
76
|
}
|
|
@@ -10,98 +10,27 @@ Object.defineProperty(exports, "createCarouselTool", {
|
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
12
|
var _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
|
|
13
|
-
var _object_spread = require("@swc/helpers/_/_object_spread");
|
|
14
13
|
var _instantsearchuicomponents = require("instantsearch-ui-components");
|
|
15
|
-
var _utils = require("instantsearch.js/cjs/lib/utils");
|
|
16
14
|
var _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
|
|
17
|
-
var _components = require("../../../components");
|
|
18
15
|
function createCarouselTool(showViewAll, itemComponent, getSearchPageURL) {
|
|
19
|
-
var
|
|
20
|
-
createElement: _react.createElement
|
|
16
|
+
var SearchLayoutUIComponent = (0, _instantsearchuicomponents.createCarouselToolComponent)({
|
|
17
|
+
createElement: _react.createElement,
|
|
18
|
+
Fragment: _react.Fragment,
|
|
19
|
+
useEffect: _react.useEffect,
|
|
20
|
+
useMemo: _react.useMemo,
|
|
21
|
+
useRef: _react.useRef,
|
|
22
|
+
useState: _react.useState
|
|
21
23
|
});
|
|
22
|
-
function SearchLayoutComponent(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
var hitsWithAbsolutePosition = (0, _utils.addAbsolutePosition)((output === null || output === void 0 ? void 0 : output.hits) || [], 0, ((_ref = input === null || input === void 0 ? void 0 : input.number_of_results) !== null && _ref !== void 0 ? _ref : output === null || output === void 0 ? void 0 : (_output_hits = output.hits) === null || _output_hits === void 0 ? void 0 : _output_hits.length) || 5);
|
|
29
|
-
var items = (0, _utils.addQueryID)(hitsWithAbsolutePosition, output === null || output === void 0 ? void 0 : output.queryID);
|
|
30
|
-
var MemoedHeaderComponent = _react.default.useMemo(function() {
|
|
31
|
-
return function(props) {
|
|
32
|
-
return /*#__PURE__*/ _react.default.createElement(HeaderComponent, _object_spread._({
|
|
33
|
-
nbHits: output === null || output === void 0 ? void 0 : output.nbHits,
|
|
34
|
-
input: input,
|
|
35
|
-
hitsPerPage: items.length,
|
|
36
|
-
onClose: onClose,
|
|
37
|
-
applyFilters: applyFilters
|
|
38
|
-
}, props));
|
|
39
|
-
};
|
|
40
|
-
}, [
|
|
41
|
-
items.length,
|
|
42
|
-
input,
|
|
43
|
-
output === null || output === void 0 ? void 0 : output.nbHits,
|
|
44
|
-
applyFilters,
|
|
45
|
-
onClose
|
|
46
|
-
]);
|
|
47
|
-
return /*#__PURE__*/ _react.default.createElement(_components.Carousel, {
|
|
48
|
-
items: items,
|
|
24
|
+
var SearchLayoutComponent = function SearchLayoutComponent(toolProps) {
|
|
25
|
+
return /*#__PURE__*/ _react.default.createElement(SearchLayoutUIComponent, {
|
|
26
|
+
getSearchPageURL: getSearchPageURL,
|
|
27
|
+
headerProps: {
|
|
28
|
+
showViewAll: showViewAll
|
|
29
|
+
},
|
|
49
30
|
itemComponent: itemComponent,
|
|
50
|
-
|
|
51
|
-
showNavigation: false,
|
|
52
|
-
headerComponent: MemoedHeaderComponent
|
|
31
|
+
toolProps: toolProps
|
|
53
32
|
});
|
|
54
|
-
}
|
|
55
|
-
function HeaderComponent(param) {
|
|
56
|
-
var canScrollLeft = param.canScrollLeft, canScrollRight = param.canScrollRight, scrollLeft = param.scrollLeft, scrollRight = param.scrollRight, nbHits = param.nbHits, input = param.input, hitsPerPage = param.hitsPerPage, applyFilters = param.applyFilters, onClose = param.onClose;
|
|
57
|
-
if ((hitsPerPage !== null && hitsPerPage !== void 0 ? hitsPerPage : 0) < 1) {
|
|
58
|
-
return null;
|
|
59
|
-
}
|
|
60
|
-
return /*#__PURE__*/ _react.default.createElement("div", {
|
|
61
|
-
className: "ais-ChatToolSearchIndexCarouselHeader"
|
|
62
|
-
}, /*#__PURE__*/ _react.default.createElement("div", {
|
|
63
|
-
className: "ais-ChatToolSearchIndexCarouselHeaderResults"
|
|
64
|
-
}, nbHits && /*#__PURE__*/ _react.default.createElement("div", {
|
|
65
|
-
className: "ais-ChatToolSearchIndexCarouselHeaderCount"
|
|
66
|
-
}, hitsPerPage !== null && hitsPerPage !== void 0 ? hitsPerPage : 0, " of ", nbHits.toLocaleString(), " result", nbHits > 1 ? 's' : ''), showViewAll && /*#__PURE__*/ _react.default.createElement(Button, {
|
|
67
|
-
variant: "ghost",
|
|
68
|
-
size: "sm",
|
|
69
|
-
onClick: function onClick() {
|
|
70
|
-
if (!input || !applyFilters) return;
|
|
71
|
-
var params = applyFilters({
|
|
72
|
-
query: input.query,
|
|
73
|
-
facetFilters: (0, _instantsearchuicomponents.getFacetFiltersFromToolInput)(input)
|
|
74
|
-
});
|
|
75
|
-
if (getSearchPageURL && new URL(getSearchPageURL(params)).pathname !== window.location.pathname) {
|
|
76
|
-
window.location.href = getSearchPageURL(params);
|
|
77
|
-
}
|
|
78
|
-
onClose();
|
|
79
|
-
},
|
|
80
|
-
className: "ais-ChatToolSearchIndexCarouselHeaderViewAll"
|
|
81
|
-
}, "View all", /*#__PURE__*/ _react.default.createElement(_instantsearchuicomponents.ArrowRightIcon, {
|
|
82
|
-
createElement: _react.createElement
|
|
83
|
-
}))), (hitsPerPage !== null && hitsPerPage !== void 0 ? hitsPerPage : 0) > 2 && /*#__PURE__*/ _react.default.createElement("div", {
|
|
84
|
-
className: "ais-ChatToolSearchIndexCarouselHeaderScrollButtons"
|
|
85
|
-
}, /*#__PURE__*/ _react.default.createElement(Button, {
|
|
86
|
-
variant: "outline",
|
|
87
|
-
size: "sm",
|
|
88
|
-
iconOnly: true,
|
|
89
|
-
onClick: scrollLeft,
|
|
90
|
-
disabled: !canScrollLeft,
|
|
91
|
-
className: "ais-ChatToolSearchIndexCarouselHeaderScrollButton"
|
|
92
|
-
}, /*#__PURE__*/ _react.default.createElement(_instantsearchuicomponents.ChevronLeftIcon, {
|
|
93
|
-
createElement: _react.createElement
|
|
94
|
-
})), /*#__PURE__*/ _react.default.createElement(Button, {
|
|
95
|
-
variant: "outline",
|
|
96
|
-
size: "sm",
|
|
97
|
-
iconOnly: true,
|
|
98
|
-
onClick: scrollRight,
|
|
99
|
-
disabled: !canScrollRight,
|
|
100
|
-
className: "ais-ChatToolSearchIndexCarouselHeaderScrollButton"
|
|
101
|
-
}, /*#__PURE__*/ _react.default.createElement(_instantsearchuicomponents.ChevronRightIcon, {
|
|
102
|
-
createElement: _react.createElement
|
|
103
|
-
}))));
|
|
104
|
-
}
|
|
33
|
+
};
|
|
105
34
|
return {
|
|
106
35
|
layoutComponent: SearchLayoutComponent
|
|
107
36
|
};
|
|
@@ -7,6 +7,7 @@ var _export_star = require("@swc/helpers/_/_export_star");
|
|
|
7
7
|
_export_star._(require("./Autocomplete"), exports);
|
|
8
8
|
_export_star._(require("./Breadcrumb"), exports);
|
|
9
9
|
_export_star._(require("./Chat"), exports);
|
|
10
|
+
_export_star._(require("./PromptSuggestions"), exports);
|
|
10
11
|
_export_star._(require("./ChatTrigger"), exports);
|
|
11
12
|
_export_star._(require("./ClearRefinements"), exports);
|
|
12
13
|
_export_star._(require("./CurrentRefinements"), exports);
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { _ as _$1 } from '@swc/helpers/esm/_object_spread.js';
|
|
2
2
|
import { _ } from '@swc/helpers/esm/_sliced_to_array.js';
|
|
3
3
|
import { createCarouselComponent, generateCarouselId } from 'instantsearch-ui-components';
|
|
4
|
-
import React, { createElement, Fragment,
|
|
4
|
+
import React, { createElement, Fragment, useEffect, useRef, useState } from 'react';
|
|
5
5
|
|
|
6
6
|
var CarouselUiComponent = createCarouselComponent({
|
|
7
7
|
createElement: createElement,
|
|
8
|
-
Fragment: Fragment
|
|
8
|
+
Fragment: Fragment,
|
|
9
|
+
useEffect: useEffect,
|
|
10
|
+
useRef: useRef
|
|
9
11
|
});
|
|
10
12
|
function Carousel(props) {
|
|
11
13
|
var _useState = _(useState(false), 2), canScrollLeft = _useState[0], setCanScrollLeft = _useState[1];
|
package/dist/es/index.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export * from 'react-instantsearch-core';
|
|
2
2
|
export { useStickToBottom } from './lib/useStickToBottom.js';
|
|
3
|
-
export { EXPERIMENTAL_Autocomplete } from './widgets/Autocomplete.js';
|
|
3
|
+
export { Autocomplete, EXPERIMENTAL_Autocomplete } from './widgets/Autocomplete.js';
|
|
4
4
|
export { Breadcrumb } from './widgets/Breadcrumb.js';
|
|
5
5
|
export { DisplayResultsToolType, MemorizeToolType, MemorySearchToolType, PonderToolType, RecommendToolType, SearchIndexToolType } from 'instantsearch.js/es/lib/chat/index.js';
|
|
6
6
|
export { Chat, createDefaultTools } from './widgets/Chat.js';
|
|
7
|
+
export { PromptSuggestions } from './widgets/PromptSuggestions.js';
|
|
7
8
|
export { ChatTrigger } from './widgets/ChatTrigger.js';
|
|
8
9
|
export { ClearRefinements } from './widgets/ClearRefinements.js';
|
|
9
10
|
export { CurrentRefinements } from './widgets/CurrentRefinements.js';
|
|
@@ -142,5 +142,7 @@ export type AutocompleteFeedsProps<TItem extends BaseHit> = AutocompleteCommonPr
|
|
|
142
142
|
showPromptSuggestions?: FeedsShowPromptSuggestionsConfig;
|
|
143
143
|
};
|
|
144
144
|
export type AutocompleteProps<TItem extends BaseHit> = AutocompleteIndicesProps<TItem> | AutocompleteFeedsProps<TItem>;
|
|
145
|
-
export declare function
|
|
145
|
+
export declare function Autocomplete<TItem extends BaseHit = BaseHit>(props: AutocompleteProps<TItem>): React.JSX.Element;
|
|
146
|
+
/** @deprecated use Autocomplete instead */
|
|
147
|
+
export declare const EXPERIMENTAL_Autocomplete: typeof Autocomplete;
|
|
146
148
|
export {};
|