instantsearch.js 4.79.2 → 4.81.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 (69) hide show
  1. package/cjs/components/Template/Template.js +1 -1
  2. package/cjs/connectors/chat/connectChat.js +200 -0
  3. package/cjs/connectors/index.js +7 -0
  4. package/cjs/connectors/index.umd.js +239 -0
  5. package/cjs/index.js +2 -2
  6. package/cjs/lib/InstantSearch.js +2 -10
  7. package/cjs/lib/chat/chat.js +177 -0
  8. package/cjs/lib/chat/index.js +27 -0
  9. package/cjs/lib/useStickToBottom.js +20 -0
  10. package/cjs/lib/version.js +1 -1
  11. package/cjs/templates/carousel/carousel.js +31 -4
  12. package/cjs/widgets/chat/chat.js +615 -0
  13. package/cjs/widgets/index/index.js +78 -24
  14. package/cjs/widgets/index.js +7 -0
  15. package/cjs/widgets/index.umd.js +267 -0
  16. package/dist/instantsearch.development.d.ts +123 -15
  17. package/dist/instantsearch.development.js +186 -91
  18. package/dist/instantsearch.development.js.map +1 -1
  19. package/dist/instantsearch.production.d.ts +123 -15
  20. package/dist/instantsearch.production.min.d.ts +123 -15
  21. package/dist/instantsearch.production.min.js +2 -2
  22. package/dist/instantsearch.production.min.js.map +1 -1
  23. package/es/components/Template/Template.js +1 -1
  24. package/es/connectors/chat/connectChat.d.ts +413 -0
  25. package/es/connectors/chat/connectChat.js +194 -0
  26. package/es/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.d.ts +2 -0
  27. package/es/connectors/geo-search/connectGeoSearch.d.ts +1 -0
  28. package/es/connectors/hits/connectHits.d.ts +1 -0
  29. package/es/connectors/hits/connectHitsWithInsights.d.ts +1 -0
  30. package/es/connectors/index.d.ts +1 -0
  31. package/es/connectors/index.js +2 -1
  32. package/es/connectors/index.umd.d.ts +39 -0
  33. package/es/connectors/index.umd.js +47 -0
  34. package/es/connectors/infinite-hits/connectInfiniteHits.d.ts +1 -0
  35. package/es/connectors/infinite-hits/connectInfiniteHitsWithInsights.d.ts +1 -0
  36. package/es/connectors/looking-similar/connectLookingSimilar.d.ts +2 -0
  37. package/es/connectors/related-products/connectRelatedProducts.d.ts +2 -0
  38. package/es/connectors/trending-items/connectTrendingItems.d.ts +2 -0
  39. package/es/lib/InstantSearch.d.ts +2 -2
  40. package/es/lib/InstantSearch.js +2 -10
  41. package/es/lib/chat/chat.d.ts +40 -0
  42. package/es/lib/chat/chat.js +166 -0
  43. package/es/lib/chat/index.d.ts +7 -0
  44. package/es/lib/chat/index.js +5 -0
  45. package/es/lib/useStickToBottom.d.ts +1 -0
  46. package/es/lib/useStickToBottom.js +14 -0
  47. package/es/lib/version.d.ts +1 -1
  48. package/es/lib/version.js +1 -1
  49. package/es/templates/carousel/carousel.d.ts +10 -3
  50. package/es/templates/carousel/carousel.js +32 -5
  51. package/es/types/render-state.d.ts +2 -1
  52. package/es/types/templates.d.ts +1 -1
  53. package/es/types/widget.d.ts +2 -2
  54. package/es/widgets/chat/chat.d.ts +555 -0
  55. package/es/widgets/chat/chat.js +597 -0
  56. package/es/widgets/frequently-bought-together/frequently-bought-together.d.ts +3 -1
  57. package/es/widgets/geo-search/geo-search.d.ts +1 -0
  58. package/es/widgets/hits/hits.d.ts +1 -0
  59. package/es/widgets/index/index.d.ts +46 -2
  60. package/es/widgets/index/index.js +78 -24
  61. package/es/widgets/index.d.ts +1 -0
  62. package/es/widgets/index.js +2 -1
  63. package/es/widgets/index.umd.d.ts +44 -0
  64. package/es/widgets/index.umd.js +51 -0
  65. package/es/widgets/infinite-hits/infinite-hits.d.ts +1 -0
  66. package/es/widgets/looking-similar/looking-similar.d.ts +3 -1
  67. package/es/widgets/related-products/related-products.d.ts +3 -1
  68. package/es/widgets/trending-items/trending-items.d.ts +3 -1
  69. package/package.json +11 -7
@@ -66,7 +66,7 @@ var RawHtml = /*#__PURE__*/function (_Component) {
66
66
  });
67
67
  // if there is one TextNode first and one TextNode last, the
68
68
  // last one's nodeValue will be assigned to the first.
69
- if (this.nodes[0].nodeValue) {
69
+ if (this.nodes[0] && this.nodes[0].nodeValue) {
70
70
  this.nodes[0].nodeValue = '';
71
71
  }
72
72
  }
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _ai = require("ai");
9
+ var _chat = require("../../lib/chat");
10
+ var _utils = require("../../lib/utils");
11
+ var _excluded = ["resume", "tools"];
12
+ 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; }
13
+ 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; }
14
+ 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; }
15
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
16
+ 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); }
17
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
18
+ 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."); }
19
+ 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); }
20
+ 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; }
21
+ 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; } }
22
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
23
+ 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; }
24
+ 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; }
25
+ var withUsage = (0, _utils.createDocumentationMessageGenerator)({
26
+ name: 'chat',
27
+ connector: true
28
+ });
29
+ var connectChat = exports.default = function connectChat(renderFn) {
30
+ var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
31
+ (0, _utils.checkRendering)(renderFn, withUsage());
32
+ return function (widgetParams) {
33
+ process.env.NODE_ENV === 'development' ? (0, _utils.warning)(false, 'Chat is not yet stable and will change in the future.') : void 0;
34
+ var _ref = widgetParams || {},
35
+ _ref$resume = _ref.resume,
36
+ resume = _ref$resume === void 0 ? false : _ref$resume,
37
+ _ref$tools = _ref.tools,
38
+ tools = _ref$tools === void 0 ? {} : _ref$tools,
39
+ options = _objectWithoutProperties(_ref, _excluded);
40
+ var _chatInstance;
41
+ var input = '';
42
+ var open = false;
43
+ var sendEvent;
44
+ var setInput;
45
+ var setOpen;
46
+ var setMessages = function setMessages(messagesParam) {
47
+ if (typeof messagesParam === 'function') {
48
+ messagesParam = messagesParam(_chatInstance.messages);
49
+ }
50
+ _chatInstance.messages = messagesParam;
51
+ };
52
+ var makeChatInstance = function makeChatInstance(instantSearchInstance) {
53
+ var transport;
54
+ var _getAppIdAndApiKey = (0, _utils.getAppIdAndApiKey)(instantSearchInstance.client),
55
+ _getAppIdAndApiKey2 = _slicedToArray(_getAppIdAndApiKey, 2),
56
+ appId = _getAppIdAndApiKey2[0],
57
+ apiKey = _getAppIdAndApiKey2[1];
58
+ if ('transport' in options && options.transport) {
59
+ transport = new _ai.DefaultChatTransport(options.transport);
60
+ }
61
+ if ('agentId' in options && options.agentId) {
62
+ var agentId = options.agentId;
63
+ if (!appId || !apiKey) {
64
+ throw new Error(withUsage('Could not extract Algolia credentials from the search client.'));
65
+ }
66
+ transport = new _ai.DefaultChatTransport({
67
+ api: "https://".concat(appId, ".algolia.net/agent-studio/1/agents/").concat(agentId, "/completions?compatibilityMode=ai-sdk-5"),
68
+ headers: {
69
+ 'x-algolia-application-id': appId,
70
+ 'x-algolia-api-Key': apiKey
71
+ }
72
+ });
73
+ }
74
+ if (!transport) {
75
+ throw new Error(withUsage('You need to provide either an `agentId` or a `transport`.'));
76
+ }
77
+ if ('chat' in options) {
78
+ return options.chat;
79
+ }
80
+ return new _chat.Chat(_objectSpread(_objectSpread({}, options), {}, {
81
+ transport: transport,
82
+ sendAutomaticallyWhen: _ai.lastAssistantMessageIsCompleteWithToolCalls,
83
+ onToolCall: function onToolCall(_ref2) {
84
+ var toolCall = _ref2.toolCall;
85
+ var tool = tools[toolCall.toolName];
86
+ if (!tool) {
87
+ if (process.env.NODE_ENV === 'development') {
88
+ throw new Error("No tool implementation found for \"".concat(toolCall.toolName, "\". Please provide a tool implementation in the `tools` prop."));
89
+ }
90
+ return _chatInstance.addToolResult({
91
+ output: "No tool implemented for \"".concat(toolCall.toolName, "\"."),
92
+ tool: toolCall.toolName,
93
+ toolCallId: toolCall.toolCallId
94
+ });
95
+ }
96
+ if (tool.onToolCall) {
97
+ var addToolResult = function addToolResult(_ref3) {
98
+ var output = _ref3.output;
99
+ return _chatInstance.addToolResult({
100
+ output: output,
101
+ tool: toolCall.toolName,
102
+ toolCallId: toolCall.toolCallId
103
+ });
104
+ };
105
+ return tool.onToolCall(_objectSpread(_objectSpread({}, toolCall), {}, {
106
+ addToolResult: addToolResult
107
+ }));
108
+ }
109
+ return Promise.resolve();
110
+ }
111
+ }));
112
+ };
113
+ return {
114
+ $$type: 'ais.chat',
115
+ init: function init(initOptions) {
116
+ var _this = this;
117
+ var instantSearchInstance = initOptions.instantSearchInstance;
118
+ _chatInstance = makeChatInstance(instantSearchInstance);
119
+ var render = function render() {
120
+ renderFn(_objectSpread(_objectSpread({}, _this.getWidgetRenderState(initOptions)), {}, {
121
+ instantSearchInstance: initOptions.instantSearchInstance
122
+ }), false);
123
+ };
124
+ setOpen = function setOpen(o) {
125
+ open = o;
126
+ render();
127
+ };
128
+ setInput = function setInput(i) {
129
+ input = i;
130
+ render();
131
+ };
132
+ _chatInstance['~registerErrorCallback'](render);
133
+ _chatInstance['~registerMessagesCallback'](render);
134
+ _chatInstance['~registerStatusCallback'](render);
135
+ if (resume) {
136
+ _chatInstance.resumeStream();
137
+ }
138
+ renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {
139
+ instantSearchInstance: instantSearchInstance
140
+ }), true);
141
+ },
142
+ render: function render(renderOptions) {
143
+ renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {
144
+ instantSearchInstance: renderOptions.instantSearchInstance
145
+ }), false);
146
+ },
147
+ getRenderState: function getRenderState(renderState) {
148
+ return renderState;
149
+ },
150
+ getWidgetRenderState: function getWidgetRenderState(renderState) {
151
+ var instantSearchInstance = renderState.instantSearchInstance,
152
+ parent = renderState.parent;
153
+ if (!_chatInstance) {
154
+ this.init(_objectSpread(_objectSpread({}, renderState), {}, {
155
+ uiState: {},
156
+ results: undefined
157
+ }));
158
+ }
159
+ if (!sendEvent) {
160
+ sendEvent = (0, _utils.createSendEventForHits)({
161
+ instantSearchInstance: renderState.instantSearchInstance,
162
+ helper: renderState.helper,
163
+ widgetType: this.$$type
164
+ });
165
+ }
166
+ return {
167
+ indexUiState: instantSearchInstance.getUiState()[parent.getIndexId()],
168
+ input: input,
169
+ open: open,
170
+ sendEvent: sendEvent,
171
+ setIndexUiState: parent.setIndexUiState.bind(parent),
172
+ setInput: setInput,
173
+ setOpen: setOpen,
174
+ setMessages: setMessages,
175
+ widgetParams: widgetParams,
176
+ // Chat instance render state
177
+ addToolResult: _chatInstance.addToolResult,
178
+ clearError: _chatInstance.clearError,
179
+ error: _chatInstance.error,
180
+ id: _chatInstance.id,
181
+ messages: _chatInstance.messages,
182
+ regenerate: _chatInstance.regenerate,
183
+ resumeStream: _chatInstance.resumeStream,
184
+ sendMessage: _chatInstance.sendMessage,
185
+ status: _chatInstance.status,
186
+ stop: _chatInstance.stop
187
+ };
188
+ },
189
+ dispose: function dispose() {
190
+ unmountFn();
191
+ },
192
+ shouldRender: function shouldRender() {
193
+ return true;
194
+ },
195
+ get chatInstance() {
196
+ return _chatInstance;
197
+ }
198
+ };
199
+ };
200
+ };
@@ -16,6 +16,12 @@ Object.defineProperty(exports, "connectBreadcrumb", {
16
16
  return _connectBreadcrumb.default;
17
17
  }
18
18
  });
19
+ Object.defineProperty(exports, "connectChat", {
20
+ enumerable: true,
21
+ get: function get() {
22
+ return _connectChat.default;
23
+ }
24
+ });
19
25
  Object.defineProperty(exports, "connectClearRefinements", {
20
26
  enumerable: true,
21
27
  get: function get() {
@@ -224,6 +230,7 @@ var _connectVoiceSearch = _interopRequireDefault(require("./voice-search/connect
224
230
  var _connectRelevantSort = _interopRequireDefault(require("./relevant-sort/connectRelevantSort"));
225
231
  var _connectFrequentlyBoughtTogether = _interopRequireDefault(require("./frequently-bought-together/connectFrequentlyBoughtTogether"));
226
232
  var _connectLookingSimilar = _interopRequireDefault(require("./looking-similar/connectLookingSimilar"));
233
+ var _connectChat = _interopRequireDefault(require("./chat/connectChat"));
227
234
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
228
235
  /** @deprecated answers is no longer supported */
229
236
  var EXPERIMENTAL_connectAnswers = exports.EXPERIMENTAL_connectAnswers = (0, _utils.deprecate)(_connectAnswers.default, 'answers is no longer supported');
@@ -0,0 +1,239 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EXPERIMENTAL_connectDynamicWidgets = exports.EXPERIMENTAL_connectConfigureRelatedItems = exports.EXPERIMENTAL_connectAnswers = void 0;
7
+ Object.defineProperty(exports, "connectAutocomplete", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _connectAutocomplete.default;
11
+ }
12
+ });
13
+ Object.defineProperty(exports, "connectBreadcrumb", {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return _connectBreadcrumb.default;
17
+ }
18
+ });
19
+ exports.connectChat = void 0;
20
+ Object.defineProperty(exports, "connectClearRefinements", {
21
+ enumerable: true,
22
+ get: function get() {
23
+ return _connectClearRefinements.default;
24
+ }
25
+ });
26
+ Object.defineProperty(exports, "connectConfigure", {
27
+ enumerable: true,
28
+ get: function get() {
29
+ return _connectConfigure.default;
30
+ }
31
+ });
32
+ Object.defineProperty(exports, "connectCurrentRefinements", {
33
+ enumerable: true,
34
+ get: function get() {
35
+ return _connectCurrentRefinements.default;
36
+ }
37
+ });
38
+ Object.defineProperty(exports, "connectDynamicWidgets", {
39
+ enumerable: true,
40
+ get: function get() {
41
+ return _connectDynamicWidgets.default;
42
+ }
43
+ });
44
+ Object.defineProperty(exports, "connectFrequentlyBoughtTogether", {
45
+ enumerable: true,
46
+ get: function get() {
47
+ return _connectFrequentlyBoughtTogether.default;
48
+ }
49
+ });
50
+ Object.defineProperty(exports, "connectGeoSearch", {
51
+ enumerable: true,
52
+ get: function get() {
53
+ return _connectGeoSearch.default;
54
+ }
55
+ });
56
+ Object.defineProperty(exports, "connectHierarchicalMenu", {
57
+ enumerable: true,
58
+ get: function get() {
59
+ return _connectHierarchicalMenu.default;
60
+ }
61
+ });
62
+ Object.defineProperty(exports, "connectHits", {
63
+ enumerable: true,
64
+ get: function get() {
65
+ return _connectHits.default;
66
+ }
67
+ });
68
+ Object.defineProperty(exports, "connectHitsPerPage", {
69
+ enumerable: true,
70
+ get: function get() {
71
+ return _connectHitsPerPage.default;
72
+ }
73
+ });
74
+ Object.defineProperty(exports, "connectHitsWithInsights", {
75
+ enumerable: true,
76
+ get: function get() {
77
+ return _connectHitsWithInsights.default;
78
+ }
79
+ });
80
+ Object.defineProperty(exports, "connectInfiniteHits", {
81
+ enumerable: true,
82
+ get: function get() {
83
+ return _connectInfiniteHits.default;
84
+ }
85
+ });
86
+ Object.defineProperty(exports, "connectInfiniteHitsWithInsights", {
87
+ enumerable: true,
88
+ get: function get() {
89
+ return _connectInfiniteHitsWithInsights.default;
90
+ }
91
+ });
92
+ Object.defineProperty(exports, "connectLookingSimilar", {
93
+ enumerable: true,
94
+ get: function get() {
95
+ return _connectLookingSimilar.default;
96
+ }
97
+ });
98
+ Object.defineProperty(exports, "connectMenu", {
99
+ enumerable: true,
100
+ get: function get() {
101
+ return _connectMenu.default;
102
+ }
103
+ });
104
+ Object.defineProperty(exports, "connectNumericMenu", {
105
+ enumerable: true,
106
+ get: function get() {
107
+ return _connectNumericMenu.default;
108
+ }
109
+ });
110
+ Object.defineProperty(exports, "connectPagination", {
111
+ enumerable: true,
112
+ get: function get() {
113
+ return _connectPagination.default;
114
+ }
115
+ });
116
+ Object.defineProperty(exports, "connectPoweredBy", {
117
+ enumerable: true,
118
+ get: function get() {
119
+ return _connectPoweredBy.default;
120
+ }
121
+ });
122
+ Object.defineProperty(exports, "connectQueryRules", {
123
+ enumerable: true,
124
+ get: function get() {
125
+ return _connectQueryRules.default;
126
+ }
127
+ });
128
+ Object.defineProperty(exports, "connectRange", {
129
+ enumerable: true,
130
+ get: function get() {
131
+ return _connectRange.default;
132
+ }
133
+ });
134
+ Object.defineProperty(exports, "connectRatingMenu", {
135
+ enumerable: true,
136
+ get: function get() {
137
+ return _connectRatingMenu.default;
138
+ }
139
+ });
140
+ Object.defineProperty(exports, "connectRefinementList", {
141
+ enumerable: true,
142
+ get: function get() {
143
+ return _connectRefinementList.default;
144
+ }
145
+ });
146
+ Object.defineProperty(exports, "connectRelatedProducts", {
147
+ enumerable: true,
148
+ get: function get() {
149
+ return _connectRelatedProducts.default;
150
+ }
151
+ });
152
+ Object.defineProperty(exports, "connectRelevantSort", {
153
+ enumerable: true,
154
+ get: function get() {
155
+ return _connectRelevantSort.default;
156
+ }
157
+ });
158
+ Object.defineProperty(exports, "connectSearchBox", {
159
+ enumerable: true,
160
+ get: function get() {
161
+ return _connectSearchBox.default;
162
+ }
163
+ });
164
+ Object.defineProperty(exports, "connectSortBy", {
165
+ enumerable: true,
166
+ get: function get() {
167
+ return _connectSortBy.default;
168
+ }
169
+ });
170
+ Object.defineProperty(exports, "connectStats", {
171
+ enumerable: true,
172
+ get: function get() {
173
+ return _connectStats.default;
174
+ }
175
+ });
176
+ Object.defineProperty(exports, "connectToggleRefinement", {
177
+ enumerable: true,
178
+ get: function get() {
179
+ return _connectToggleRefinement.default;
180
+ }
181
+ });
182
+ Object.defineProperty(exports, "connectTrendingItems", {
183
+ enumerable: true,
184
+ get: function get() {
185
+ return _connectTrendingItems.default;
186
+ }
187
+ });
188
+ Object.defineProperty(exports, "connectVoiceSearch", {
189
+ enumerable: true,
190
+ get: function get() {
191
+ return _connectVoiceSearch.default;
192
+ }
193
+ });
194
+ var _utils = require("../lib/utils");
195
+ var _connectAnswers = _interopRequireDefault(require("./answers/connectAnswers"));
196
+ var _connectConfigureRelatedItems = _interopRequireDefault(require("./configure-related-items/connectConfigureRelatedItems"));
197
+ var _connectDynamicWidgets = _interopRequireDefault(require("./dynamic-widgets/connectDynamicWidgets"));
198
+ var _connectClearRefinements = _interopRequireDefault(require("./clear-refinements/connectClearRefinements"));
199
+ var _connectCurrentRefinements = _interopRequireDefault(require("./current-refinements/connectCurrentRefinements"));
200
+ var _connectHierarchicalMenu = _interopRequireDefault(require("./hierarchical-menu/connectHierarchicalMenu"));
201
+ var _connectHits = _interopRequireDefault(require("./hits/connectHits"));
202
+ var _connectHitsWithInsights = _interopRequireDefault(require("./hits/connectHitsWithInsights"));
203
+ var _connectHitsPerPage = _interopRequireDefault(require("./hits-per-page/connectHitsPerPage"));
204
+ var _connectInfiniteHits = _interopRequireDefault(require("./infinite-hits/connectInfiniteHits"));
205
+ var _connectInfiniteHitsWithInsights = _interopRequireDefault(require("./infinite-hits/connectInfiniteHitsWithInsights"));
206
+ var _connectMenu = _interopRequireDefault(require("./menu/connectMenu"));
207
+ var _connectNumericMenu = _interopRequireDefault(require("./numeric-menu/connectNumericMenu"));
208
+ var _connectPagination = _interopRequireDefault(require("./pagination/connectPagination"));
209
+ var _connectRange = _interopRequireDefault(require("./range/connectRange"));
210
+ var _connectRefinementList = _interopRequireDefault(require("./refinement-list/connectRefinementList"));
211
+ var _connectRelatedProducts = _interopRequireDefault(require("./related-products/connectRelatedProducts"));
212
+ var _connectSearchBox = _interopRequireDefault(require("./search-box/connectSearchBox"));
213
+ var _connectSortBy = _interopRequireDefault(require("./sort-by/connectSortBy"));
214
+ var _connectRatingMenu = _interopRequireDefault(require("./rating-menu/connectRatingMenu"));
215
+ var _connectStats = _interopRequireDefault(require("./stats/connectStats"));
216
+ var _connectToggleRefinement = _interopRequireDefault(require("./toggle-refinement/connectToggleRefinement"));
217
+ var _connectTrendingItems = _interopRequireDefault(require("./trending-items/connectTrendingItems"));
218
+ var _connectBreadcrumb = _interopRequireDefault(require("./breadcrumb/connectBreadcrumb"));
219
+ var _connectGeoSearch = _interopRequireDefault(require("./geo-search/connectGeoSearch"));
220
+ var _connectPoweredBy = _interopRequireDefault(require("./powered-by/connectPoweredBy"));
221
+ var _connectConfigure = _interopRequireDefault(require("./configure/connectConfigure"));
222
+ var _connectAutocomplete = _interopRequireDefault(require("./autocomplete/connectAutocomplete"));
223
+ var _connectQueryRules = _interopRequireDefault(require("./query-rules/connectQueryRules"));
224
+ var _connectVoiceSearch = _interopRequireDefault(require("./voice-search/connectVoiceSearch"));
225
+ var _connectRelevantSort = _interopRequireDefault(require("./relevant-sort/connectRelevantSort"));
226
+ var _connectFrequentlyBoughtTogether = _interopRequireDefault(require("./frequently-bought-together/connectFrequentlyBoughtTogether"));
227
+ var _connectLookingSimilar = _interopRequireDefault(require("./looking-similar/connectLookingSimilar"));
228
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
229
+ /** @deprecated answers is no longer supported */
230
+ var EXPERIMENTAL_connectAnswers = exports.EXPERIMENTAL_connectAnswers = (0, _utils.deprecate)(_connectAnswers.default, 'answers is no longer supported');
231
+
232
+ /** @deprecated use connectRelatedItems instead */
233
+ var EXPERIMENTAL_connectConfigureRelatedItems = exports.EXPERIMENTAL_connectConfigureRelatedItems = (0, _utils.deprecate)(_connectConfigureRelatedItems.default, 'EXPERIMENTAL_connectConfigureRelatedItems is deprecated and will be removed in a next minor version of InstantSearch. Please use connectRelatedItems instead.');
234
+
235
+ /** @deprecated use connectDynamicWidgets */
236
+ var EXPERIMENTAL_connectDynamicWidgets = exports.EXPERIMENTAL_connectDynamicWidgets = (0, _utils.deprecate)(_connectDynamicWidgets.default, 'use connectDynamicWidgets');
237
+ var connectChat = exports.connectChat = function connectChat() {
238
+ 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");
239
+ };
package/cjs/index.js CHANGED
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
- var connectors = _interopRequireWildcard(require("./connectors/index"));
8
+ var connectors = _interopRequireWildcard(require("./connectors/index.umd"));
9
9
  var helpers = _interopRequireWildcard(require("./helpers/index"));
10
10
  var _index3 = require("./lib/infiniteHitsCache/index");
11
11
  var _InstantSearch = _interopRequireDefault(require("./lib/InstantSearch"));
@@ -14,7 +14,7 @@ var stateMappings = _interopRequireWildcard(require("./lib/stateMappings/index")
14
14
  var _version = _interopRequireDefault(require("./lib/version"));
15
15
  var middlewares = _interopRequireWildcard(require("./middlewares/index"));
16
16
  var templates = _interopRequireWildcard(require("./templates/index"));
17
- var widgets = _interopRequireWildcard(require("./widgets/index"));
17
+ var widgets = _interopRequireWildcard(require("./widgets/index.umd"));
18
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
19
  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); }
20
20
  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; }
@@ -329,12 +329,9 @@ var InstantSearch = /*#__PURE__*/function (_EventEmitter) {
329
329
  if (!Array.isArray(widgets)) {
330
330
  throw new Error(withUsage('The `addWidgets` method expects an array of widgets. Please use `addWidget`.'));
331
331
  }
332
- if (widgets.some(function (widget) {
333
- return typeof widget.init !== 'function' && typeof widget.render !== 'function';
332
+ if (this.compositionID && widgets.some(function (w) {
333
+ return !Array.isArray(w) && (0, _utils.isIndexWidget)(w) && !w._isolated;
334
334
  })) {
335
- throw new Error(withUsage('The widget definition expects a `render` and/or an `init` method.'));
336
- }
337
- if (this.compositionID && widgets.some(_utils.isIndexWidget)) {
338
335
  throw new Error(withUsage('The `index` widget cannot be used with a composition-based InstantSearch implementation.'));
339
336
  }
340
337
  this.mainIndex.addWidgets(widgets);
@@ -367,11 +364,6 @@ var InstantSearch = /*#__PURE__*/function (_EventEmitter) {
367
364
  if (!Array.isArray(widgets)) {
368
365
  throw new Error(withUsage('The `removeWidgets` method expects an array of widgets. Please use `removeWidget`.'));
369
366
  }
370
- if (widgets.some(function (widget) {
371
- return typeof widget.dispose !== 'function';
372
- })) {
373
- throw new Error(withUsage('The widget definition expects a `dispose` method.'));
374
- }
375
367
  this.mainIndex.removeWidgets(widgets);
376
368
  return this;
377
369
  }