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.
- package/dist/cjs/components/Autocomplete.js +114 -0
- package/dist/cjs/components/Carousel.js +19 -1
- package/dist/cjs/components/useAutocomplete.js +237 -0
- package/dist/cjs/index.umd.js +38 -0
- package/dist/cjs/lib/useStickToBottom.js +20 -0
- package/dist/cjs/ui/SearchBox.js +5 -4
- package/dist/cjs/widgets/Chat.js +258 -0
- package/dist/cjs/widgets/chat/tools/SearchIndexTool.js +120 -0
- package/dist/cjs/widgets/index.js +22 -11
- package/dist/cjs/widgets/index.umd.js +282 -0
- package/dist/es/components/Autocomplete.d.ts +20 -0
- package/dist/es/components/Autocomplete.js +106 -0
- package/dist/es/components/Carousel.d.ts +1 -1
- package/dist/es/components/Carousel.js +20 -2
- package/dist/es/components/useAutocomplete.d.ts +35 -0
- package/dist/es/components/useAutocomplete.js +231 -0
- package/dist/es/index.umd.d.ts +3 -0
- package/dist/es/index.umd.js +3 -0
- package/dist/es/lib/useStickToBottom.d.ts +1 -0
- package/dist/es/lib/useStickToBottom.js +14 -0
- package/dist/es/ui/SearchBox.d.ts +2 -1
- package/dist/es/ui/SearchBox.js +5 -4
- package/dist/es/widgets/Chat.d.ts +45 -0
- package/dist/es/widgets/Chat.js +238 -0
- package/dist/es/widgets/chat/tools/SearchIndexTool.d.ts +5 -0
- package/dist/es/widgets/chat/tools/SearchIndexTool.js +113 -0
- package/dist/es/widgets/index.d.ts +2 -1
- package/dist/es/widgets/index.js +3 -2
- package/dist/es/widgets/index.umd.d.ts +26 -0
- package/dist/es/widgets/index.umd.js +28 -0
- package/dist/umd/ReactInstantSearch.js +216 -162
- package/dist/umd/ReactInstantSearch.js.map +1 -1
- package/dist/umd/ReactInstantSearch.min.js +1 -1
- package/dist/umd/ReactInstantSearch.min.js.map +1 -1
- 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
|
});
|