react-instantsearch 7.16.3 → 7.17.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.
Files changed (35) hide show
  1. package/dist/cjs/components/Autocomplete.js +114 -0
  2. package/dist/cjs/components/Carousel.js +19 -1
  3. package/dist/cjs/components/useAutocomplete.js +237 -0
  4. package/dist/cjs/index.umd.js +38 -0
  5. package/dist/cjs/lib/useStickToBottom.js +20 -0
  6. package/dist/cjs/ui/SearchBox.js +5 -4
  7. package/dist/cjs/widgets/Chat.js +258 -0
  8. package/dist/cjs/widgets/chat/tools/SearchIndexTool.js +120 -0
  9. package/dist/cjs/widgets/index.js +22 -11
  10. package/dist/cjs/widgets/index.umd.js +282 -0
  11. package/dist/es/components/Autocomplete.d.ts +20 -0
  12. package/dist/es/components/Autocomplete.js +106 -0
  13. package/dist/es/components/Carousel.d.ts +1 -1
  14. package/dist/es/components/Carousel.js +20 -2
  15. package/dist/es/components/useAutocomplete.d.ts +35 -0
  16. package/dist/es/components/useAutocomplete.js +231 -0
  17. package/dist/es/index.umd.d.ts +3 -0
  18. package/dist/es/index.umd.js +3 -0
  19. package/dist/es/lib/useStickToBottom.d.ts +1 -0
  20. package/dist/es/lib/useStickToBottom.js +14 -0
  21. package/dist/es/ui/SearchBox.d.ts +2 -1
  22. package/dist/es/ui/SearchBox.js +5 -4
  23. package/dist/es/widgets/Chat.d.ts +45 -0
  24. package/dist/es/widgets/Chat.js +238 -0
  25. package/dist/es/widgets/chat/tools/SearchIndexTool.d.ts +5 -0
  26. package/dist/es/widgets/chat/tools/SearchIndexTool.js +113 -0
  27. package/dist/es/widgets/index.d.ts +2 -1
  28. package/dist/es/widgets/index.js +3 -2
  29. package/dist/es/widgets/index.umd.d.ts +26 -0
  30. package/dist/es/widgets/index.umd.js +28 -0
  31. package/dist/umd/ReactInstantSearch.js +216 -162
  32. package/dist/umd/ReactInstantSearch.js.map +1 -1
  33. package/dist/umd/ReactInstantSearch.min.js +1 -1
  34. package/dist/umd/ReactInstantSearch.min.js.map +1 -1
  35. package/package.json +5 -5
@@ -0,0 +1,258 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Chat = Chat;
7
+ Object.defineProperty(exports, "RecommendToolType", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _chat.RecommendToolType;
11
+ }
12
+ });
13
+ Object.defineProperty(exports, "SearchIndexToolType", {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return _chat.SearchIndexToolType;
17
+ }
18
+ });
19
+ exports.createDefaultTools = createDefaultTools;
20
+ var _ai = require("ai");
21
+ var _instantsearchUiComponents = require("instantsearch-ui-components");
22
+ var _chat = require("instantsearch.js/cjs/lib/chat");
23
+ var _react = _interopRequireWildcard(require("react"));
24
+ var _reactInstantsearchCore = require("react-instantsearch-core");
25
+ var _useStickToBottom2 = require("../lib/useStickToBottom");
26
+ var _SearchIndexTool = require("./chat/tools/SearchIndexTool");
27
+ var _excluded = ["tools", "defaultOpen", "toggleButtonProps", "headerProps", "messagesProps", "promptProps", "itemComponent", "toggleButtonComponent", "toggleButtonIconComponent", "headerComponent", "headerTitleIconComponent", "headerCloseIconComponent", "headerMinimizeIconComponent", "headerMaximizeIconComponent", "messagesLoaderComponent", "messagesErrorComponent", "promptComponent", "promptHeaderComponent", "promptFooterComponent", "actionsComponent", "classNames", "translations", "title", "getSearchPageURL"];
28
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
29
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
30
+ 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); }
31
+ 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; }
32
+ 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; }
33
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
34
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
35
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
36
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
37
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
38
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
39
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
40
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
41
+ 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; }
42
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
43
+ 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); }
44
+ var ChatUiComponent = (0, _instantsearchUiComponents.createChatComponent)({
45
+ createElement: _react.createElement,
46
+ Fragment: _react.Fragment
47
+ });
48
+ function createDefaultTools(itemComponent, getSearchPageURL) {
49
+ var _ref;
50
+ return _ref = {}, _defineProperty(_ref, _chat.SearchIndexToolType, (0, _SearchIndexTool.createCarouselTool)(true, itemComponent, getSearchPageURL)), _defineProperty(_ref, _chat.RecommendToolType, (0, _SearchIndexTool.createCarouselTool)(false, itemComponent, getSearchPageURL)), _ref;
51
+ }
52
+ function Chat(_ref2) {
53
+ var userTools = _ref2.tools,
54
+ _ref2$defaultOpen = _ref2.defaultOpen,
55
+ defaultOpen = _ref2$defaultOpen === void 0 ? false : _ref2$defaultOpen,
56
+ toggleButtonProps = _ref2.toggleButtonProps,
57
+ headerProps = _ref2.headerProps,
58
+ messagesProps = _ref2.messagesProps,
59
+ promptProps = _ref2.promptProps,
60
+ itemComponent = _ref2.itemComponent,
61
+ toggleButtonComponent = _ref2.toggleButtonComponent,
62
+ toggleButtonIconComponent = _ref2.toggleButtonIconComponent,
63
+ headerComponent = _ref2.headerComponent,
64
+ headerTitleIconComponent = _ref2.headerTitleIconComponent,
65
+ headerCloseIconComponent = _ref2.headerCloseIconComponent,
66
+ headerMinimizeIconComponent = _ref2.headerMinimizeIconComponent,
67
+ headerMaximizeIconComponent = _ref2.headerMaximizeIconComponent,
68
+ messagesLoaderComponent = _ref2.messagesLoaderComponent,
69
+ messagesErrorComponent = _ref2.messagesErrorComponent,
70
+ promptComponent = _ref2.promptComponent,
71
+ promptHeaderComponent = _ref2.promptHeaderComponent,
72
+ promptFooterComponent = _ref2.promptFooterComponent,
73
+ actionsComponent = _ref2.actionsComponent,
74
+ classNames = _ref2.classNames,
75
+ _ref2$translations = _ref2.translations,
76
+ translations = _ref2$translations === void 0 ? {} : _ref2$translations,
77
+ title = _ref2.title,
78
+ getSearchPageURL = _ref2.getSearchPageURL,
79
+ props = _objectWithoutProperties(_ref2, _excluded);
80
+ var promptTranslations = translations.prompt,
81
+ headerTranslations = translations.header,
82
+ messagesTranslations = translations.messages;
83
+ var _useInstantSearch = (0, _reactInstantsearchCore.useInstantSearch)(),
84
+ indexUiState = _useInstantSearch.indexUiState,
85
+ setIndexUiState = _useInstantSearch.setIndexUiState;
86
+ var _React$useState = _react.default.useState(defaultOpen),
87
+ _React$useState2 = _slicedToArray(_React$useState, 2),
88
+ open = _React$useState2[0],
89
+ setOpen = _React$useState2[1];
90
+ var _React$useState3 = _react.default.useState(false),
91
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
92
+ maximized = _React$useState4[0],
93
+ setMaximized = _React$useState4[1];
94
+ var _React$useState5 = _react.default.useState(''),
95
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
96
+ input = _React$useState6[0],
97
+ setInput = _React$useState6[1];
98
+ var _React$useState7 = _react.default.useState(false),
99
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
100
+ isClearing = _React$useState8[0],
101
+ setIsClearing = _React$useState8[1];
102
+ var promptRef = _react.default.useRef(null);
103
+ var _useStickToBottom = (0, _useStickToBottom2.useStickToBottom)({
104
+ initial: 'smooth',
105
+ resize: 'smooth'
106
+ }),
107
+ scrollRef = _useStickToBottom.scrollRef,
108
+ contentRef = _useStickToBottom.contentRef,
109
+ scrollToBottom = _useStickToBottom.scrollToBottom,
110
+ isAtBottom = _useStickToBottom.isAtBottom;
111
+ var tools = _react.default.useMemo(function () {
112
+ var defaults = createDefaultTools(itemComponent, getSearchPageURL);
113
+ return _objectSpread(_objectSpread({}, defaults), userTools);
114
+ }, [getSearchPageURL, itemComponent, userTools]);
115
+ var _useChat = (0, _reactInstantsearchCore.useChat)(_objectSpread(_objectSpread({}, props), {}, {
116
+ sendAutomaticallyWhen: _ai.lastAssistantMessageIsCompleteWithToolCalls,
117
+ onToolCall: function onToolCall(_ref3) {
118
+ var toolCall = _ref3.toolCall;
119
+ var tool = tools[toolCall.toolName];
120
+ if (!tool) {
121
+ if (process.env.NODE_ENV === 'development') {
122
+ throw new Error("No tool implementation found for \"".concat(toolCall.toolName, "\". Please provide a tool implementation in the `tools` prop."));
123
+ }
124
+ addToolResult({
125
+ output: "No tool implemented for \"".concat(toolCall.toolName, "\"."),
126
+ tool: toolCall.toolName,
127
+ toolCallId: toolCall.toolCallId
128
+ });
129
+ return;
130
+ }
131
+ if (tool.onToolCall) {
132
+ var scopedAddToolResult = function scopedAddToolResult(_ref4) {
133
+ var output = _ref4.output;
134
+ return addToolResult({
135
+ output: output,
136
+ tool: toolCall.toolName,
137
+ toolCallId: toolCall.toolCallId
138
+ });
139
+ };
140
+ tool.onToolCall(_objectSpread(_objectSpread({}, toolCall), {}, {
141
+ addToolResult: scopedAddToolResult
142
+ }));
143
+ }
144
+ }
145
+ })),
146
+ messages = _useChat.messages,
147
+ sendMessage = _useChat.sendMessage,
148
+ addToolResult = _useChat.addToolResult,
149
+ status = _useChat.status,
150
+ regenerate = _useChat.regenerate,
151
+ stop = _useChat.stop,
152
+ setMessages = _useChat.setMessages,
153
+ clearError = _useChat.clearError,
154
+ error = _useChat.error;
155
+ var toolsForUi = _react.default.useMemo(function () {
156
+ var result = {};
157
+ Object.entries(tools).forEach(function (_ref5) {
158
+ var _ref6 = _slicedToArray(_ref5, 2),
159
+ key = _ref6[0],
160
+ tool = _ref6[1];
161
+ result[key] = _objectSpread(_objectSpread({}, tool), {}, {
162
+ addToolResult: addToolResult
163
+ });
164
+ });
165
+ return result;
166
+ }, [tools, addToolResult]);
167
+ var handleClear = _react.default.useCallback(function () {
168
+ if (!messages || messages.length === 0) return;
169
+ setIsClearing(true);
170
+ }, [messages]);
171
+ var handleClearTransitionEnd = _react.default.useCallback(function () {
172
+ setMessages([]);
173
+ clearError();
174
+ setIsClearing(false);
175
+ }, [setMessages, clearError]);
176
+ if (process.env.NODE_ENV === 'development' && error) {
177
+ throw error;
178
+ }
179
+ return /*#__PURE__*/_react.default.createElement(ChatUiComponent, {
180
+ title: title,
181
+ open: open,
182
+ maximized: maximized,
183
+ headerComponent: headerComponent,
184
+ promptComponent: promptComponent,
185
+ toggleButtonComponent: toggleButtonComponent,
186
+ toggleButtonProps: _objectSpread({
187
+ open: open,
188
+ onClick: function onClick() {
189
+ return setOpen(!open);
190
+ },
191
+ toggleIconComponent: toggleButtonIconComponent
192
+ }, toggleButtonProps),
193
+ headerProps: _objectSpread({
194
+ onClose: function onClose() {
195
+ return setOpen(false);
196
+ },
197
+ maximized: maximized,
198
+ onToggleMaximize: function onToggleMaximize() {
199
+ return setMaximized(!maximized);
200
+ },
201
+ onClear: handleClear,
202
+ canClear: Boolean(messages === null || messages === void 0 ? void 0 : messages.length) && !isClearing,
203
+ titleIconComponent: headerTitleIconComponent,
204
+ closeIconComponent: headerCloseIconComponent,
205
+ minimizeIconComponent: headerMinimizeIconComponent,
206
+ maximizeIconComponent: headerMaximizeIconComponent,
207
+ translations: headerTranslations
208
+ }, headerProps),
209
+ messagesProps: _objectSpread({
210
+ status: status,
211
+ onReload: function onReload(messageId) {
212
+ return regenerate({
213
+ messageId: messageId
214
+ });
215
+ },
216
+ onClose: function onClose() {
217
+ return setOpen(false);
218
+ },
219
+ messages: messages,
220
+ tools: toolsForUi,
221
+ indexUiState: indexUiState,
222
+ setIndexUiState: setIndexUiState,
223
+ isClearing: isClearing,
224
+ onClearTransitionEnd: handleClearTransitionEnd,
225
+ isScrollAtBottom: isAtBottom,
226
+ scrollRef: scrollRef,
227
+ contentRef: contentRef,
228
+ onScrollToBottom: scrollToBottom,
229
+ loaderComponent: messagesLoaderComponent,
230
+ errorComponent: messagesErrorComponent,
231
+ actionsComponent: actionsComponent,
232
+ translations: messagesTranslations
233
+ }, messagesProps),
234
+ promptProps: _objectSpread({
235
+ promptRef: promptRef,
236
+ status: status,
237
+ value: input,
238
+ translations: promptTranslations,
239
+ // Explicit event type is required to prevent TypeScript error
240
+ // where parameter would implicitly have 'any' type without type annotation
241
+ onInput: function onInput(event) {
242
+ setInput(event.currentTarget.value);
243
+ },
244
+ onSubmit: function onSubmit() {
245
+ sendMessage({
246
+ text: input
247
+ });
248
+ setInput('');
249
+ },
250
+ onStop: function onStop() {
251
+ stop();
252
+ },
253
+ headerComponent: promptHeaderComponent,
254
+ footerComponent: promptFooterComponent
255
+ }, promptProps),
256
+ classNames: classNames
257
+ });
258
+ }
@@ -0,0 +1,120 @@
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.createCarouselTool = createCarouselTool;
8
+ var _instantsearchUiComponents = require("instantsearch-ui-components");
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _components = require("../../../components");
11
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
+ 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; }
14
+ 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; }
15
+ 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; }
16
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
17
+ 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); }
18
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
19
+ function createCarouselTool(showViewAll, itemComponent, getSearchPageURL) {
20
+ var Button = (0, _instantsearchUiComponents.createButtonComponent)({
21
+ createElement: _react.createElement
22
+ });
23
+ function SearchLayoutComponent(_ref) {
24
+ var message = _ref.message,
25
+ indexUiState = _ref.indexUiState,
26
+ setIndexUiState = _ref.setIndexUiState,
27
+ onClose = _ref.onClose;
28
+ var input = message === null || message === void 0 ? void 0 : message.input;
29
+ var output = message === null || message === void 0 ? void 0 : message.output;
30
+ var items = (output === null || output === void 0 ? void 0 : output.hits) || [];
31
+ var MemoedHeaderComponent = _react.default.useMemo(function () {
32
+ return function (props) {
33
+ return /*#__PURE__*/_react.default.createElement(HeaderComponent, _extends({
34
+ nbHits: output === null || output === void 0 ? void 0 : output.nbHits,
35
+ query: input === null || input === void 0 ? void 0 : input.query,
36
+ hitsPerPage: items.length,
37
+ setIndexUiState: setIndexUiState,
38
+ indexUiState: indexUiState,
39
+ getSearchPageURL: getSearchPageURL,
40
+ onClose: onClose
41
+ }, props));
42
+ };
43
+ }, [items.length, input === null || input === void 0 ? void 0 : input.query, output === null || output === void 0 ? void 0 : output.nbHits, setIndexUiState, onClose, indexUiState]);
44
+ return /*#__PURE__*/_react.default.createElement(_components.Carousel, {
45
+ items: items,
46
+ itemComponent: itemComponent,
47
+ sendEvent: function sendEvent() {},
48
+ showNavigation: false,
49
+ headerComponent: MemoedHeaderComponent
50
+ });
51
+ }
52
+ function HeaderComponent(_ref2) {
53
+ var canScrollLeft = _ref2.canScrollLeft,
54
+ canScrollRight = _ref2.canScrollRight,
55
+ scrollLeft = _ref2.scrollLeft,
56
+ scrollRight = _ref2.scrollRight,
57
+ nbHits = _ref2.nbHits,
58
+ query = _ref2.query,
59
+ hitsPerPage = _ref2.hitsPerPage,
60
+ setIndexUiState = _ref2.setIndexUiState,
61
+ indexUiState = _ref2.indexUiState,
62
+ getSearchPageURL = _ref2.getSearchPageURL,
63
+ onClose = _ref2.onClose;
64
+ if ((hitsPerPage !== null && hitsPerPage !== void 0 ? hitsPerPage : 0) < 1) {
65
+ return null;
66
+ }
67
+ return /*#__PURE__*/_react.default.createElement("div", {
68
+ className: "ais-ChatToolSearchIndexCarouselHeader"
69
+ }, /*#__PURE__*/_react.default.createElement("div", {
70
+ className: "ais-ChatToolSearchIndexCarouselHeaderResults"
71
+ }, nbHits && /*#__PURE__*/_react.default.createElement("div", {
72
+ className: "ais-ChatToolSearchIndexCarouselHeaderCount"
73
+ }, hitsPerPage !== null && hitsPerPage !== void 0 ? hitsPerPage : 0, " of ", nbHits.toLocaleString(), " result", nbHits > 1 ? 's' : ''), showViewAll && /*#__PURE__*/_react.default.createElement(Button, {
74
+ variant: "ghost",
75
+ size: "sm",
76
+ onClick: function onClick() {
77
+ if (!query) return;
78
+ var nextUiState = _objectSpread(_objectSpread({}, indexUiState), {}, {
79
+ query: query
80
+ });
81
+
82
+ // If no main search page URL or we are on the search page, just update the state
83
+ if (!getSearchPageURL || getSearchPageURL && new URL(getSearchPageURL(nextUiState)).pathname === window.location.pathname) {
84
+ setIndexUiState(nextUiState);
85
+ onClose();
86
+ return;
87
+ }
88
+
89
+ // Navigate to different page
90
+ window.location.href = getSearchPageURL(nextUiState);
91
+ },
92
+ className: "ais-ChatToolSearchIndexCarouselHeaderViewAll"
93
+ }, "View all", /*#__PURE__*/_react.default.createElement(_instantsearchUiComponents.ArrowRightIconComponent, {
94
+ createElement: _react.createElement
95
+ }))), (hitsPerPage !== null && hitsPerPage !== void 0 ? hitsPerPage : 0) > 2 && /*#__PURE__*/_react.default.createElement("div", {
96
+ className: "ais-ChatToolSearchIndexCarouselHeaderScrollButtons"
97
+ }, /*#__PURE__*/_react.default.createElement(Button, {
98
+ variant: "outline",
99
+ size: "sm",
100
+ iconOnly: true,
101
+ onClick: scrollLeft,
102
+ disabled: !canScrollLeft,
103
+ className: "ais-ChatToolSearchIndexCarouselHeaderScrollButton"
104
+ }, /*#__PURE__*/_react.default.createElement(_instantsearchUiComponents.ChevronLeftIconComponent, {
105
+ createElement: _react.createElement
106
+ })), /*#__PURE__*/_react.default.createElement(Button, {
107
+ variant: "outline",
108
+ size: "sm",
109
+ iconOnly: true,
110
+ onClick: scrollRight,
111
+ disabled: !canScrollRight,
112
+ className: "ais-ChatToolSearchIndexCarouselHeaderScrollButton"
113
+ }, /*#__PURE__*/_react.default.createElement(_instantsearchUiComponents.ChevronRightIconComponent, {
114
+ createElement: _react.createElement
115
+ }))));
116
+ }
117
+ return {
118
+ layoutComponent: SearchLayoutComponent
119
+ };
120
+ }
@@ -14,6 +14,17 @@ Object.keys(_Breadcrumb).forEach(function (key) {
14
14
  }
15
15
  });
16
16
  });
17
+ var _Chat = require("./Chat");
18
+ Object.keys(_Chat).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _Chat[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function get() {
24
+ return _Chat[key];
25
+ }
26
+ });
27
+ });
17
28
  var _ClearRefinements = require("./ClearRefinements");
18
29
  Object.keys(_ClearRefinements).forEach(function (key) {
19
30
  if (key === "default" || key === "__esModule") return;
@@ -102,6 +113,17 @@ Object.keys(_InfiniteHits).forEach(function (key) {
102
113
  }
103
114
  });
104
115
  });
116
+ var _LookingSimilar = require("./LookingSimilar");
117
+ Object.keys(_LookingSimilar).forEach(function (key) {
118
+ if (key === "default" || key === "__esModule") return;
119
+ if (key in exports && exports[key] === _LookingSimilar[key]) return;
120
+ Object.defineProperty(exports, key, {
121
+ enumerable: true,
122
+ get: function get() {
123
+ return _LookingSimilar[key];
124
+ }
125
+ });
126
+ });
105
127
  var _Menu = require("./Menu");
106
128
  Object.keys(_Menu).forEach(function (key) {
107
129
  if (key === "default" || key === "__esModule") return;
@@ -233,15 +255,4 @@ Object.keys(_TrendingItems).forEach(function (key) {
233
255
  return _TrendingItems[key];
234
256
  }
235
257
  });
236
- });
237
- var _LookingSimilar = require("./LookingSimilar");
238
- Object.keys(_LookingSimilar).forEach(function (key) {
239
- if (key === "default" || key === "__esModule") return;
240
- if (key in exports && exports[key] === _LookingSimilar[key]) return;
241
- Object.defineProperty(exports, key, {
242
- enumerable: true,
243
- get: function get() {
244
- return _LookingSimilar[key];
245
- }
246
- });
247
258
  });