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.
- package/cjs/components/Template/Template.js +1 -1
- package/cjs/connectors/chat/connectChat.js +200 -0
- package/cjs/connectors/index.js +7 -0
- package/cjs/connectors/index.umd.js +239 -0
- package/cjs/index.js +2 -2
- package/cjs/lib/InstantSearch.js +2 -10
- package/cjs/lib/chat/chat.js +177 -0
- package/cjs/lib/chat/index.js +27 -0
- package/cjs/lib/useStickToBottom.js +20 -0
- package/cjs/lib/version.js +1 -1
- package/cjs/templates/carousel/carousel.js +31 -4
- package/cjs/widgets/chat/chat.js +615 -0
- package/cjs/widgets/index/index.js +78 -24
- package/cjs/widgets/index.js +7 -0
- package/cjs/widgets/index.umd.js +267 -0
- package/dist/instantsearch.development.d.ts +123 -15
- package/dist/instantsearch.development.js +186 -91
- package/dist/instantsearch.development.js.map +1 -1
- package/dist/instantsearch.production.d.ts +123 -15
- package/dist/instantsearch.production.min.d.ts +123 -15
- package/dist/instantsearch.production.min.js +2 -2
- package/dist/instantsearch.production.min.js.map +1 -1
- package/es/components/Template/Template.js +1 -1
- package/es/connectors/chat/connectChat.d.ts +413 -0
- package/es/connectors/chat/connectChat.js +194 -0
- package/es/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.d.ts +2 -0
- package/es/connectors/geo-search/connectGeoSearch.d.ts +1 -0
- package/es/connectors/hits/connectHits.d.ts +1 -0
- package/es/connectors/hits/connectHitsWithInsights.d.ts +1 -0
- package/es/connectors/index.d.ts +1 -0
- package/es/connectors/index.js +2 -1
- package/es/connectors/index.umd.d.ts +39 -0
- package/es/connectors/index.umd.js +47 -0
- package/es/connectors/infinite-hits/connectInfiniteHits.d.ts +1 -0
- package/es/connectors/infinite-hits/connectInfiniteHitsWithInsights.d.ts +1 -0
- package/es/connectors/looking-similar/connectLookingSimilar.d.ts +2 -0
- package/es/connectors/related-products/connectRelatedProducts.d.ts +2 -0
- package/es/connectors/trending-items/connectTrendingItems.d.ts +2 -0
- package/es/lib/InstantSearch.d.ts +2 -2
- package/es/lib/InstantSearch.js +2 -10
- package/es/lib/chat/chat.d.ts +40 -0
- package/es/lib/chat/chat.js +166 -0
- package/es/lib/chat/index.d.ts +7 -0
- package/es/lib/chat/index.js +5 -0
- package/es/lib/useStickToBottom.d.ts +1 -0
- package/es/lib/useStickToBottom.js +14 -0
- package/es/lib/version.d.ts +1 -1
- package/es/lib/version.js +1 -1
- package/es/templates/carousel/carousel.d.ts +10 -3
- package/es/templates/carousel/carousel.js +32 -5
- package/es/types/render-state.d.ts +2 -1
- package/es/types/templates.d.ts +1 -1
- package/es/types/widget.d.ts +2 -2
- package/es/widgets/chat/chat.d.ts +555 -0
- package/es/widgets/chat/chat.js +597 -0
- package/es/widgets/frequently-bought-together/frequently-bought-together.d.ts +3 -1
- package/es/widgets/geo-search/geo-search.d.ts +1 -0
- package/es/widgets/hits/hits.d.ts +1 -0
- package/es/widgets/index/index.d.ts +46 -2
- package/es/widgets/index/index.js +78 -24
- package/es/widgets/index.d.ts +1 -0
- package/es/widgets/index.js +2 -1
- package/es/widgets/index.umd.d.ts +44 -0
- package/es/widgets/index.umd.js +51 -0
- package/es/widgets/infinite-hits/infinite-hits.d.ts +1 -0
- package/es/widgets/looking-similar/looking-similar.d.ts +3 -1
- package/es/widgets/related-products/related-products.d.ts +3 -1
- package/es/widgets/trending-items/trending-items.d.ts +3 -1
- package/package.json +11 -7
|
@@ -4,6 +4,7 @@ declare const connectHitsWithInsights: <TWidgetParams>(renderFn: import("../../t
|
|
|
4
4
|
init(initOptions: import("../../types").InitOptions): void;
|
|
5
5
|
render(renderOptions: import("../../types").RenderOptions): void;
|
|
6
6
|
getRenderState(renderState: {
|
|
7
|
+
[x: string]: unknown;
|
|
7
8
|
answers?: import("../../types").WidgetRenderState<import("../answers/connectAnswers").AnswersRenderState, import("../answers/connectAnswers").AnswersConnectorParams> | undefined;
|
|
8
9
|
autocomplete?: import("../../types").WidgetRenderState<import("../autocomplete/connectAutocomplete").AutocompleteRenderState, import("../autocomplete/connectAutocomplete").AutocompleteConnectorParams> | undefined;
|
|
9
10
|
breadcrumb?: {
|
package/es/connectors/index.d.ts
CHANGED
|
@@ -36,3 +36,4 @@ export { default as connectVoiceSearch } from './voice-search/connectVoiceSearch
|
|
|
36
36
|
export { default as connectRelevantSort } from './relevant-sort/connectRelevantSort';
|
|
37
37
|
export { default as connectFrequentlyBoughtTogether } from './frequently-bought-together/connectFrequentlyBoughtTogether';
|
|
38
38
|
export { default as connectLookingSimilar } from './looking-similar/connectLookingSimilar';
|
|
39
|
+
export { default as connectChat } from './chat/connectChat';
|
package/es/connectors/index.js
CHANGED
|
@@ -41,4 +41,5 @@ export { default as connectQueryRules } from "./query-rules/connectQueryRules.js
|
|
|
41
41
|
export { default as connectVoiceSearch } from "./voice-search/connectVoiceSearch.js";
|
|
42
42
|
export { default as connectRelevantSort } from "./relevant-sort/connectRelevantSort.js";
|
|
43
43
|
export { default as connectFrequentlyBoughtTogether } from "./frequently-bought-together/connectFrequentlyBoughtTogether.js";
|
|
44
|
-
export { default as connectLookingSimilar } from "./looking-similar/connectLookingSimilar.js";
|
|
44
|
+
export { default as connectLookingSimilar } from "./looking-similar/connectLookingSimilar.js";
|
|
45
|
+
export { default as connectChat } from "./chat/connectChat.js";
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import connectDynamicWidgets from './dynamic-widgets/connectDynamicWidgets';
|
|
2
|
+
/** @deprecated answers is no longer supported */
|
|
3
|
+
export declare const EXPERIMENTAL_connectAnswers: import("./answers/connectAnswers").AnswersConnector;
|
|
4
|
+
/** @deprecated use connectRelatedItems instead */
|
|
5
|
+
export declare const EXPERIMENTAL_connectConfigureRelatedItems: import("./configure-related-items/connectConfigureRelatedItems").ConfigureRelatedItemsConnector;
|
|
6
|
+
/** @deprecated use connectDynamicWidgets */
|
|
7
|
+
export declare const EXPERIMENTAL_connectDynamicWidgets: import("./dynamic-widgets/connectDynamicWidgets").DynamicWidgetsConnector;
|
|
8
|
+
export { connectDynamicWidgets };
|
|
9
|
+
export { default as connectClearRefinements } from './clear-refinements/connectClearRefinements';
|
|
10
|
+
export { default as connectCurrentRefinements } from './current-refinements/connectCurrentRefinements';
|
|
11
|
+
export { default as connectHierarchicalMenu } from './hierarchical-menu/connectHierarchicalMenu';
|
|
12
|
+
export { default as connectHits } from './hits/connectHits';
|
|
13
|
+
export { default as connectHitsWithInsights } from './hits/connectHitsWithInsights';
|
|
14
|
+
export { default as connectHitsPerPage } from './hits-per-page/connectHitsPerPage';
|
|
15
|
+
export { default as connectInfiniteHits } from './infinite-hits/connectInfiniteHits';
|
|
16
|
+
export { default as connectInfiniteHitsWithInsights } from './infinite-hits/connectInfiniteHitsWithInsights';
|
|
17
|
+
export { default as connectMenu } from './menu/connectMenu';
|
|
18
|
+
export { default as connectNumericMenu } from './numeric-menu/connectNumericMenu';
|
|
19
|
+
export { default as connectPagination } from './pagination/connectPagination';
|
|
20
|
+
export { default as connectRange } from './range/connectRange';
|
|
21
|
+
export { default as connectRefinementList } from './refinement-list/connectRefinementList';
|
|
22
|
+
export { default as connectRelatedProducts } from './related-products/connectRelatedProducts';
|
|
23
|
+
export { default as connectSearchBox } from './search-box/connectSearchBox';
|
|
24
|
+
export { default as connectSortBy } from './sort-by/connectSortBy';
|
|
25
|
+
export { default as connectRatingMenu } from './rating-menu/connectRatingMenu';
|
|
26
|
+
export { default as connectStats } from './stats/connectStats';
|
|
27
|
+
export { default as connectToggleRefinement } from './toggle-refinement/connectToggleRefinement';
|
|
28
|
+
export { default as connectTrendingItems } from './trending-items/connectTrendingItems';
|
|
29
|
+
export { default as connectBreadcrumb } from './breadcrumb/connectBreadcrumb';
|
|
30
|
+
export { default as connectGeoSearch } from './geo-search/connectGeoSearch';
|
|
31
|
+
export { default as connectPoweredBy } from './powered-by/connectPoweredBy';
|
|
32
|
+
export { default as connectConfigure } from './configure/connectConfigure';
|
|
33
|
+
export { default as connectAutocomplete } from './autocomplete/connectAutocomplete';
|
|
34
|
+
export { default as connectQueryRules } from './query-rules/connectQueryRules';
|
|
35
|
+
export { default as connectVoiceSearch } from './voice-search/connectVoiceSearch';
|
|
36
|
+
export { default as connectRelevantSort } from './relevant-sort/connectRelevantSort';
|
|
37
|
+
export { default as connectFrequentlyBoughtTogether } from './frequently-bought-together/connectFrequentlyBoughtTogether';
|
|
38
|
+
export { default as connectLookingSimilar } from './looking-similar/connectLookingSimilar';
|
|
39
|
+
export declare const connectChat: () => never;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { deprecate } from "../lib/utils/index.js";
|
|
2
|
+
import connectAnswers from "./answers/connectAnswers.js";
|
|
3
|
+
import connectConfigureRelatedItems from "./configure-related-items/connectConfigureRelatedItems.js";
|
|
4
|
+
import connectDynamicWidgets from "./dynamic-widgets/connectDynamicWidgets.js";
|
|
5
|
+
|
|
6
|
+
/** @deprecated answers is no longer supported */
|
|
7
|
+
export var EXPERIMENTAL_connectAnswers = deprecate(connectAnswers, 'answers is no longer supported');
|
|
8
|
+
|
|
9
|
+
/** @deprecated use connectRelatedItems instead */
|
|
10
|
+
export var EXPERIMENTAL_connectConfigureRelatedItems = deprecate(connectConfigureRelatedItems, 'EXPERIMENTAL_connectConfigureRelatedItems is deprecated and will be removed in a next minor version of InstantSearch. Please use connectRelatedItems instead.');
|
|
11
|
+
|
|
12
|
+
/** @deprecated use connectDynamicWidgets */
|
|
13
|
+
export var EXPERIMENTAL_connectDynamicWidgets = deprecate(connectDynamicWidgets, 'use connectDynamicWidgets');
|
|
14
|
+
export { connectDynamicWidgets };
|
|
15
|
+
export { default as connectClearRefinements } from "./clear-refinements/connectClearRefinements.js";
|
|
16
|
+
export { default as connectCurrentRefinements } from "./current-refinements/connectCurrentRefinements.js";
|
|
17
|
+
export { default as connectHierarchicalMenu } from "./hierarchical-menu/connectHierarchicalMenu.js";
|
|
18
|
+
export { default as connectHits } from "./hits/connectHits.js";
|
|
19
|
+
export { default as connectHitsWithInsights } from "./hits/connectHitsWithInsights.js";
|
|
20
|
+
export { default as connectHitsPerPage } from "./hits-per-page/connectHitsPerPage.js";
|
|
21
|
+
export { default as connectInfiniteHits } from "./infinite-hits/connectInfiniteHits.js";
|
|
22
|
+
export { default as connectInfiniteHitsWithInsights } from "./infinite-hits/connectInfiniteHitsWithInsights.js";
|
|
23
|
+
export { default as connectMenu } from "./menu/connectMenu.js";
|
|
24
|
+
export { default as connectNumericMenu } from "./numeric-menu/connectNumericMenu.js";
|
|
25
|
+
export { default as connectPagination } from "./pagination/connectPagination.js";
|
|
26
|
+
export { default as connectRange } from "./range/connectRange.js";
|
|
27
|
+
export { default as connectRefinementList } from "./refinement-list/connectRefinementList.js";
|
|
28
|
+
export { default as connectRelatedProducts } from "./related-products/connectRelatedProducts.js";
|
|
29
|
+
export { default as connectSearchBox } from "./search-box/connectSearchBox.js";
|
|
30
|
+
export { default as connectSortBy } from "./sort-by/connectSortBy.js";
|
|
31
|
+
export { default as connectRatingMenu } from "./rating-menu/connectRatingMenu.js";
|
|
32
|
+
export { default as connectStats } from "./stats/connectStats.js";
|
|
33
|
+
export { default as connectToggleRefinement } from "./toggle-refinement/connectToggleRefinement.js";
|
|
34
|
+
export { default as connectTrendingItems } from "./trending-items/connectTrendingItems.js";
|
|
35
|
+
export { default as connectBreadcrumb } from "./breadcrumb/connectBreadcrumb.js";
|
|
36
|
+
export { default as connectGeoSearch } from "./geo-search/connectGeoSearch.js";
|
|
37
|
+
export { default as connectPoweredBy } from "./powered-by/connectPoweredBy.js";
|
|
38
|
+
export { default as connectConfigure } from "./configure/connectConfigure.js";
|
|
39
|
+
export { default as connectAutocomplete } from "./autocomplete/connectAutocomplete.js";
|
|
40
|
+
export { default as connectQueryRules } from "./query-rules/connectQueryRules.js";
|
|
41
|
+
export { default as connectVoiceSearch } from "./voice-search/connectVoiceSearch.js";
|
|
42
|
+
export { default as connectRelevantSort } from "./relevant-sort/connectRelevantSort.js";
|
|
43
|
+
export { default as connectFrequentlyBoughtTogether } from "./frequently-bought-together/connectFrequentlyBoughtTogether.js";
|
|
44
|
+
export { default as connectLookingSimilar } from "./looking-similar/connectLookingSimilar.js";
|
|
45
|
+
export var connectChat = function connectChat() {
|
|
46
|
+
throw new Error("\"connectChat\" is not available from the UMD build.\n\nPlease use InstantSearch.js with a packaging system:\nhttps://www.algolia.com/doc/guides/building-search-ui/installation/js/#with-a-packaging-system");
|
|
47
|
+
};
|
|
@@ -103,6 +103,7 @@ declare const _default: <TWidgetParams extends UnknownWidgetParams>(renderFn: Re
|
|
|
103
103
|
init(initOptions: import("../../types").InitOptions): void;
|
|
104
104
|
render(renderOptions: import("../../types").RenderOptions): void;
|
|
105
105
|
getRenderState(renderState: {
|
|
106
|
+
[x: string]: unknown;
|
|
106
107
|
answers?: WidgetRenderState<import("../answers/connectAnswers").AnswersRenderState, import("../answers/connectAnswers").AnswersConnectorParams> | undefined;
|
|
107
108
|
autocomplete?: WidgetRenderState<import("../autocomplete/connectAutocomplete").AutocompleteRenderState, import("../autocomplete/connectAutocomplete").AutocompleteConnectorParams> | undefined;
|
|
108
109
|
breadcrumb?: {
|
|
@@ -4,6 +4,7 @@ declare const connectInfiniteHitsWithInsights: <TWidgetParams extends import("..
|
|
|
4
4
|
init(initOptions: import("../../types").InitOptions): void;
|
|
5
5
|
render(renderOptions: import("../../types").RenderOptions): void;
|
|
6
6
|
getRenderState(renderState: {
|
|
7
|
+
[x: string]: unknown;
|
|
7
8
|
answers?: import("../../types").WidgetRenderState<import("../answers/connectAnswers").AnswersRenderState, import("../answers/connectAnswers").AnswersConnectorParams> | undefined;
|
|
8
9
|
autocomplete?: import("../../types").WidgetRenderState<import("../autocomplete/connectAutocomplete").AutocompleteRenderState, import("../autocomplete/connectAutocomplete").AutocompleteConnectorParams> | undefined;
|
|
9
10
|
breadcrumb?: {
|
|
@@ -56,6 +56,7 @@ declare const _default: <TWidgetParams extends UnknownWidgetParams>(renderFn: Re
|
|
|
56
56
|
init(initOptions: import("../../types").InitOptions): void;
|
|
57
57
|
render(renderOptions: import("../../types").RenderOptions): void;
|
|
58
58
|
getRenderState(renderState: {
|
|
59
|
+
[x: string]: unknown;
|
|
59
60
|
answers?: import("../../types").WidgetRenderState<import("../answers/connectAnswers").AnswersRenderState, import("../answers/connectAnswers").AnswersConnectorParams> | undefined;
|
|
60
61
|
autocomplete?: import("../../types").WidgetRenderState<import("../autocomplete/connectAutocomplete").AutocompleteRenderState, import("../autocomplete/connectAutocomplete").AutocompleteConnectorParams> | undefined;
|
|
61
62
|
breadcrumb?: {
|
|
@@ -100,6 +101,7 @@ declare const _default: <TWidgetParams extends UnknownWidgetParams>(renderFn: Re
|
|
|
100
101
|
analytics?: import("../../types").WidgetRenderState<Record<string, unknown>, import("../../widgets/analytics/analytics").AnalyticsWidgetParams> | undefined;
|
|
101
102
|
places?: import("../../types").WidgetRenderState<Record<string, unknown>, import("../../widgets/places/places").PlacesWidgetParams> | undefined;
|
|
102
103
|
}): {
|
|
104
|
+
[x: string]: unknown;
|
|
103
105
|
answers?: import("../../types").WidgetRenderState<import("../answers/connectAnswers").AnswersRenderState, import("../answers/connectAnswers").AnswersConnectorParams> | undefined;
|
|
104
106
|
autocomplete?: import("../../types").WidgetRenderState<import("../autocomplete/connectAutocomplete").AutocompleteRenderState, import("../autocomplete/connectAutocomplete").AutocompleteConnectorParams> | undefined;
|
|
105
107
|
breadcrumb?: {
|
|
@@ -56,6 +56,7 @@ declare const _default: <TWidgetParams extends UnknownWidgetParams>(renderFn: Re
|
|
|
56
56
|
init(initOptions: import("../../types").InitOptions): void;
|
|
57
57
|
render(renderOptions: import("../../types").RenderOptions): void;
|
|
58
58
|
getRenderState(renderState: {
|
|
59
|
+
[x: string]: unknown;
|
|
59
60
|
answers?: import("../../types").WidgetRenderState<import("../answers/connectAnswers").AnswersRenderState, import("../answers/connectAnswers").AnswersConnectorParams> | undefined;
|
|
60
61
|
autocomplete?: import("../../types").WidgetRenderState<import("../autocomplete/connectAutocomplete").AutocompleteRenderState, import("../autocomplete/connectAutocomplete").AutocompleteConnectorParams> | undefined;
|
|
61
62
|
breadcrumb?: {
|
|
@@ -100,6 +101,7 @@ declare const _default: <TWidgetParams extends UnknownWidgetParams>(renderFn: Re
|
|
|
100
101
|
analytics?: import("../../types").WidgetRenderState<Record<string, unknown>, import("../../widgets/analytics/analytics").AnalyticsWidgetParams> | undefined;
|
|
101
102
|
places?: import("../../types").WidgetRenderState<Record<string, unknown>, import("../../widgets/places/places").PlacesWidgetParams> | undefined;
|
|
102
103
|
}): {
|
|
104
|
+
[x: string]: unknown;
|
|
103
105
|
answers?: import("../../types").WidgetRenderState<import("../answers/connectAnswers").AnswersRenderState, import("../answers/connectAnswers").AnswersConnectorParams> | undefined;
|
|
104
106
|
autocomplete?: import("../../types").WidgetRenderState<import("../autocomplete/connectAutocomplete").AutocompleteRenderState, import("../autocomplete/connectAutocomplete").AutocompleteConnectorParams> | undefined;
|
|
105
107
|
breadcrumb?: {
|
|
@@ -64,6 +64,7 @@ declare const _default: <TWidgetParams extends UnknownWidgetParams>(renderFn: Re
|
|
|
64
64
|
init(initOptions: import("../../types").InitOptions): void;
|
|
65
65
|
render(renderOptions: import("../../types").RenderOptions): void;
|
|
66
66
|
getRenderState(renderState: {
|
|
67
|
+
[x: string]: unknown;
|
|
67
68
|
answers?: import("../../types").WidgetRenderState<import("../answers/connectAnswers").AnswersRenderState, import("../answers/connectAnswers").AnswersConnectorParams> | undefined;
|
|
68
69
|
autocomplete?: import("../../types").WidgetRenderState<import("../autocomplete/connectAutocomplete").AutocompleteRenderState, import("../autocomplete/connectAutocomplete").AutocompleteConnectorParams> | undefined;
|
|
69
70
|
breadcrumb?: {
|
|
@@ -108,6 +109,7 @@ declare const _default: <TWidgetParams extends UnknownWidgetParams>(renderFn: Re
|
|
|
108
109
|
analytics?: import("../../types").WidgetRenderState<Record<string, unknown>, import("../../widgets/analytics/analytics").AnalyticsWidgetParams> | undefined;
|
|
109
110
|
places?: import("../../types").WidgetRenderState<Record<string, unknown>, import("../../widgets/places/places").PlacesWidgetParams> | undefined;
|
|
110
111
|
}): {
|
|
112
|
+
[x: string]: unknown;
|
|
111
113
|
answers?: import("../../types").WidgetRenderState<import("../answers/connectAnswers").AnswersRenderState, import("../answers/connectAnswers").AnswersConnectorParams> | undefined;
|
|
112
114
|
autocomplete?: import("../../types").WidgetRenderState<import("../autocomplete/connectAutocomplete").AutocompleteRenderState, import("../autocomplete/connectAutocomplete").AutocompleteConnectorParams> | undefined;
|
|
113
115
|
breadcrumb?: {
|
|
@@ -197,7 +197,7 @@ declare class InstantSearch<TUiState extends UiState = UiState, TRouteState = TU
|
|
|
197
197
|
* Widgets can be added either before or after InstantSearch has started.
|
|
198
198
|
* @param widgets The array of widgets to add to InstantSearch.
|
|
199
199
|
*/
|
|
200
|
-
addWidgets(widgets: Array<Widget | IndexWidget>): this;
|
|
200
|
+
addWidgets(widgets: Array<Widget | IndexWidget | Widget[]>): this;
|
|
201
201
|
/**
|
|
202
202
|
* Removes a widget from the search instance.
|
|
203
203
|
* @deprecated This method will still be supported in 4.x releases, but not further. It is replaced by `removeWidgets([widget])`
|
|
@@ -212,7 +212,7 @@ declare class InstantSearch<TUiState extends UiState = UiState, TRouteState = TU
|
|
|
212
212
|
*
|
|
213
213
|
* The widgets must implement a `dispose()` method to clear their states.
|
|
214
214
|
*/
|
|
215
|
-
removeWidgets(widgets: Array<Widget | IndexWidget>): this;
|
|
215
|
+
removeWidgets(widgets: Array<Widget | IndexWidget | Widget[]>): this;
|
|
216
216
|
/**
|
|
217
217
|
* Ends the initialization of InstantSearch.js and triggers the
|
|
218
218
|
* first search.
|
package/es/lib/InstantSearch.js
CHANGED
|
@@ -322,12 +322,9 @@ var InstantSearch = /*#__PURE__*/function (_EventEmitter) {
|
|
|
322
322
|
if (!Array.isArray(widgets)) {
|
|
323
323
|
throw new Error(withUsage('The `addWidgets` method expects an array of widgets. Please use `addWidget`.'));
|
|
324
324
|
}
|
|
325
|
-
if (widgets.some(function (
|
|
326
|
-
return
|
|
325
|
+
if (this.compositionID && widgets.some(function (w) {
|
|
326
|
+
return !Array.isArray(w) && isIndexWidget(w) && !w._isolated;
|
|
327
327
|
})) {
|
|
328
|
-
throw new Error(withUsage('The widget definition expects a `render` and/or an `init` method.'));
|
|
329
|
-
}
|
|
330
|
-
if (this.compositionID && widgets.some(isIndexWidget)) {
|
|
331
328
|
throw new Error(withUsage('The `index` widget cannot be used with a composition-based InstantSearch implementation.'));
|
|
332
329
|
}
|
|
333
330
|
this.mainIndex.addWidgets(widgets);
|
|
@@ -360,11 +357,6 @@ var InstantSearch = /*#__PURE__*/function (_EventEmitter) {
|
|
|
360
357
|
if (!Array.isArray(widgets)) {
|
|
361
358
|
throw new Error(withUsage('The `removeWidgets` method expects an array of widgets. Please use `removeWidget`.'));
|
|
362
359
|
}
|
|
363
|
-
if (widgets.some(function (widget) {
|
|
364
|
-
return typeof widget.dispose !== 'function';
|
|
365
|
-
})) {
|
|
366
|
-
throw new Error(withUsage('The widget definition expects a `dispose` method.'));
|
|
367
|
-
}
|
|
368
360
|
this.mainIndex.removeWidgets(widgets);
|
|
369
361
|
return this;
|
|
370
362
|
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { AbstractChat } from 'ai';
|
|
2
|
+
import type { UIMessage, ChatState as BaseChatState, ChatStatus, ChatInit } from 'ai';
|
|
3
|
+
export type { UIMessage };
|
|
4
|
+
export { AbstractChat };
|
|
5
|
+
export { ChatInit };
|
|
6
|
+
export declare const CACHE_KEY = "instantsearch-chat-initial-messages-";
|
|
7
|
+
export declare class ChatState<TUiMessage extends UIMessage> implements BaseChatState<TUiMessage> {
|
|
8
|
+
_messages: TUiMessage[];
|
|
9
|
+
_status: ChatStatus;
|
|
10
|
+
_error: Error | undefined;
|
|
11
|
+
_messagesCallbacks: Set<() => void>;
|
|
12
|
+
_statusCallbacks: Set<() => void>;
|
|
13
|
+
_errorCallbacks: Set<() => void>;
|
|
14
|
+
constructor(id?: string | undefined, initialMessages?: TUiMessage[]);
|
|
15
|
+
get status(): ChatStatus;
|
|
16
|
+
set status(newStatus: ChatStatus);
|
|
17
|
+
get error(): Error | undefined;
|
|
18
|
+
set error(newError: Error | undefined);
|
|
19
|
+
get messages(): TUiMessage[];
|
|
20
|
+
set messages(newMessages: TUiMessage[]);
|
|
21
|
+
pushMessage: (message: TUiMessage) => void;
|
|
22
|
+
popMessage: () => void;
|
|
23
|
+
replaceMessage: (index: number, message: TUiMessage) => void;
|
|
24
|
+
snapshot: <T>(thing: T) => T;
|
|
25
|
+
'~registerMessagesCallback': (onChange: () => void) => (() => void);
|
|
26
|
+
'~registerStatusCallback': (onChange: () => void) => (() => void);
|
|
27
|
+
'~registerErrorCallback': (onChange: () => void) => (() => void);
|
|
28
|
+
_callMessagesCallbacks: () => void;
|
|
29
|
+
_callStatusCallbacks: () => void;
|
|
30
|
+
_callErrorCallbacks: () => void;
|
|
31
|
+
}
|
|
32
|
+
export declare class Chat<TUiMessage extends UIMessage> extends AbstractChat<TUiMessage> {
|
|
33
|
+
_state: ChatState<TUiMessage>;
|
|
34
|
+
constructor({ messages, agentId, ...init }: ChatInit<TUiMessage> & {
|
|
35
|
+
agentId?: string;
|
|
36
|
+
});
|
|
37
|
+
'~registerMessagesCallback': (onChange: () => void) => (() => void);
|
|
38
|
+
'~registerStatusCallback': (onChange: () => void) => (() => void);
|
|
39
|
+
'~registerErrorCallback': (onChange: () => void) => (() => void);
|
|
40
|
+
}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
var _excluded = ["messages", "agentId"];
|
|
2
|
+
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); }
|
|
3
|
+
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; }
|
|
4
|
+
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; }
|
|
5
|
+
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; }
|
|
6
|
+
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; }
|
|
7
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
8
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
9
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
10
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
11
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
12
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
13
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
14
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
15
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
16
|
+
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); }
|
|
17
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
18
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
19
|
+
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; }
|
|
20
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
21
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
22
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
23
|
+
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; }
|
|
24
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
25
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
26
|
+
import { AbstractChat } from 'ai';
|
|
27
|
+
export { AbstractChat };
|
|
28
|
+
export var CACHE_KEY = 'instantsearch-chat-initial-messages-';
|
|
29
|
+
function getDefaultInitialMessages(id) {
|
|
30
|
+
var initialMessages = sessionStorage.getItem(CACHE_KEY + id);
|
|
31
|
+
return initialMessages ? JSON.parse(initialMessages) : [];
|
|
32
|
+
}
|
|
33
|
+
export var ChatState = /*#__PURE__*/function () {
|
|
34
|
+
function ChatState() {
|
|
35
|
+
var _this = this;
|
|
36
|
+
var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;
|
|
37
|
+
var initialMessages = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getDefaultInitialMessages(id);
|
|
38
|
+
_classCallCheck(this, ChatState);
|
|
39
|
+
_defineProperty(this, "_messages", void 0);
|
|
40
|
+
_defineProperty(this, "_status", 'ready');
|
|
41
|
+
_defineProperty(this, "_error", undefined);
|
|
42
|
+
_defineProperty(this, "_messagesCallbacks", new Set());
|
|
43
|
+
_defineProperty(this, "_statusCallbacks", new Set());
|
|
44
|
+
_defineProperty(this, "_errorCallbacks", new Set());
|
|
45
|
+
_defineProperty(this, "pushMessage", function (message) {
|
|
46
|
+
_this._messages = _this._messages.concat(message);
|
|
47
|
+
_this._callMessagesCallbacks();
|
|
48
|
+
});
|
|
49
|
+
_defineProperty(this, "popMessage", function () {
|
|
50
|
+
_this._messages = _this._messages.slice(0, -1);
|
|
51
|
+
_this._callMessagesCallbacks();
|
|
52
|
+
});
|
|
53
|
+
_defineProperty(this, "replaceMessage", function (index, message) {
|
|
54
|
+
_this._messages = [].concat(_toConsumableArray(_this._messages.slice(0, index)), [
|
|
55
|
+
// We deep clone the message here to ensure the new React Compiler (currently in RC) detects deeply nested parts/metadata changes:
|
|
56
|
+
_this.snapshot(message)], _toConsumableArray(_this._messages.slice(index + 1)));
|
|
57
|
+
_this._callMessagesCallbacks();
|
|
58
|
+
});
|
|
59
|
+
_defineProperty(this, "snapshot", function (thing) {
|
|
60
|
+
return JSON.parse(JSON.stringify(thing));
|
|
61
|
+
});
|
|
62
|
+
_defineProperty(this, '~registerMessagesCallback', function (onChange) {
|
|
63
|
+
var callback = onChange;
|
|
64
|
+
_this._messagesCallbacks.add(callback);
|
|
65
|
+
return function () {
|
|
66
|
+
_this._messagesCallbacks.delete(callback);
|
|
67
|
+
};
|
|
68
|
+
});
|
|
69
|
+
_defineProperty(this, '~registerStatusCallback', function (onChange) {
|
|
70
|
+
_this._statusCallbacks.add(onChange);
|
|
71
|
+
return function () {
|
|
72
|
+
_this._statusCallbacks.delete(onChange);
|
|
73
|
+
};
|
|
74
|
+
});
|
|
75
|
+
_defineProperty(this, '~registerErrorCallback', function (onChange) {
|
|
76
|
+
_this._errorCallbacks.add(onChange);
|
|
77
|
+
return function () {
|
|
78
|
+
_this._errorCallbacks.delete(onChange);
|
|
79
|
+
};
|
|
80
|
+
});
|
|
81
|
+
_defineProperty(this, "_callMessagesCallbacks", function () {
|
|
82
|
+
_this._messagesCallbacks.forEach(function (callback) {
|
|
83
|
+
return callback();
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
_defineProperty(this, "_callStatusCallbacks", function () {
|
|
87
|
+
_this._statusCallbacks.forEach(function (callback) {
|
|
88
|
+
return callback();
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
_defineProperty(this, "_callErrorCallbacks", function () {
|
|
92
|
+
_this._errorCallbacks.forEach(function (callback) {
|
|
93
|
+
return callback();
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
this._messages = initialMessages;
|
|
97
|
+
var saveMessagesInLocalStorage = function saveMessagesInLocalStorage() {
|
|
98
|
+
if (_this.status === 'ready') {
|
|
99
|
+
try {
|
|
100
|
+
sessionStorage.setItem(CACHE_KEY + id, JSON.stringify(_this.messages));
|
|
101
|
+
} catch (e) {
|
|
102
|
+
// Do nothing if sessionStorage is not available or full
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
this['~registerMessagesCallback'](saveMessagesInLocalStorage);
|
|
107
|
+
this['~registerStatusCallback'](saveMessagesInLocalStorage);
|
|
108
|
+
}
|
|
109
|
+
_createClass(ChatState, [{
|
|
110
|
+
key: "status",
|
|
111
|
+
get: function get() {
|
|
112
|
+
return this._status;
|
|
113
|
+
},
|
|
114
|
+
set: function set(newStatus) {
|
|
115
|
+
this._status = newStatus;
|
|
116
|
+
this._callStatusCallbacks();
|
|
117
|
+
}
|
|
118
|
+
}, {
|
|
119
|
+
key: "error",
|
|
120
|
+
get: function get() {
|
|
121
|
+
return this._error;
|
|
122
|
+
},
|
|
123
|
+
set: function set(newError) {
|
|
124
|
+
this._error = newError;
|
|
125
|
+
this._callErrorCallbacks();
|
|
126
|
+
}
|
|
127
|
+
}, {
|
|
128
|
+
key: "messages",
|
|
129
|
+
get: function get() {
|
|
130
|
+
return this._messages;
|
|
131
|
+
},
|
|
132
|
+
set: function set(newMessages) {
|
|
133
|
+
this._messages = _toConsumableArray(newMessages);
|
|
134
|
+
this._callMessagesCallbacks();
|
|
135
|
+
}
|
|
136
|
+
}]);
|
|
137
|
+
return ChatState;
|
|
138
|
+
}();
|
|
139
|
+
export var Chat = /*#__PURE__*/function (_AbstractChat) {
|
|
140
|
+
_inherits(Chat, _AbstractChat);
|
|
141
|
+
var _super = _createSuper(Chat);
|
|
142
|
+
function Chat(_ref) {
|
|
143
|
+
var _this2;
|
|
144
|
+
var messages = _ref.messages,
|
|
145
|
+
agentId = _ref.agentId,
|
|
146
|
+
init = _objectWithoutProperties(_ref, _excluded);
|
|
147
|
+
_classCallCheck(this, Chat);
|
|
148
|
+
var state = new ChatState(agentId, messages);
|
|
149
|
+
_this2 = _super.call(this, _objectSpread(_objectSpread({}, init), {}, {
|
|
150
|
+
state: state
|
|
151
|
+
}));
|
|
152
|
+
_defineProperty(_assertThisInitialized(_this2), "_state", void 0);
|
|
153
|
+
_defineProperty(_assertThisInitialized(_this2), '~registerMessagesCallback', function (onChange) {
|
|
154
|
+
return _this2._state['~registerMessagesCallback'](onChange);
|
|
155
|
+
});
|
|
156
|
+
_defineProperty(_assertThisInitialized(_this2), '~registerStatusCallback', function (onChange) {
|
|
157
|
+
return _this2._state['~registerStatusCallback'](onChange);
|
|
158
|
+
});
|
|
159
|
+
_defineProperty(_assertThisInitialized(_this2), '~registerErrorCallback', function (onChange) {
|
|
160
|
+
return _this2._state['~registerErrorCallback'](onChange);
|
|
161
|
+
});
|
|
162
|
+
_this2._state = state;
|
|
163
|
+
return _this2;
|
|
164
|
+
}
|
|
165
|
+
return _createClass(Chat);
|
|
166
|
+
}(AbstractChat);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type { UIMessage } from './chat';
|
|
2
|
+
export type { ChatInit } from './chat';
|
|
3
|
+
export { AbstractChat } from './chat';
|
|
4
|
+
export { ChatState } from './chat';
|
|
5
|
+
export { Chat } from './chat';
|
|
6
|
+
export declare const SearchIndexToolType = "algolia_search_index";
|
|
7
|
+
export declare const RecommendToolType = "algolia_recommend";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useStickToBottom: (options?: import("instantsearch-ui-components").StickToBottomOptions) => import("instantsearch-ui-components").StickToBottomInstance;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/* !---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) StackBlitz. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
|
|
6
|
+
import { createStickToBottom } from 'instantsearch-ui-components';
|
|
7
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'preact/hooks';
|
|
8
|
+
export var useStickToBottom = createStickToBottom({
|
|
9
|
+
useCallback: useCallback,
|
|
10
|
+
useEffect: useEffect,
|
|
11
|
+
useMemo: useMemo,
|
|
12
|
+
useRef: useRef,
|
|
13
|
+
useState: useState
|
|
14
|
+
});
|
package/es/lib/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: "4.
|
|
1
|
+
declare const _default: "4.81.0";
|
|
2
2
|
export default _default;
|
package/es/lib/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export default '4.
|
|
1
|
+
export default '4.81.0';
|
|
@@ -2,15 +2,22 @@
|
|
|
2
2
|
import { html } from 'htm/preact';
|
|
3
3
|
import { h } from 'preact';
|
|
4
4
|
import type { CarouselProps as CarouselUiProps, VNode } from 'instantsearch-ui-components';
|
|
5
|
-
type Template = (params: {
|
|
5
|
+
type Template<TData = Record<string, unknown>> = (params: {
|
|
6
6
|
html: typeof html;
|
|
7
|
-
}) => VNode | VNode[] | null;
|
|
7
|
+
} & TData) => VNode | VNode[] | null;
|
|
8
8
|
type CreateCarouselTemplateProps<TObject extends Record<string, unknown>> = {
|
|
9
9
|
templates?: Partial<{
|
|
10
10
|
previous: Exclude<Template, string>;
|
|
11
11
|
next: Exclude<Template, string>;
|
|
12
|
+
header: Exclude<Template<{
|
|
13
|
+
canScrollLeft: boolean;
|
|
14
|
+
canScrollRight: boolean;
|
|
15
|
+
scrollLeft: () => void;
|
|
16
|
+
scrollRight: () => void;
|
|
17
|
+
}>, string>;
|
|
12
18
|
}>;
|
|
13
19
|
cssClasses?: Partial<CarouselUiProps<TObject>['classNames']>;
|
|
20
|
+
showNavigation?: boolean;
|
|
14
21
|
};
|
|
15
22
|
type CarouselTemplateProps<TObject extends Record<string, unknown>> = Pick<CarouselUiProps<TObject>, 'items'> & {
|
|
16
23
|
templates: {
|
|
@@ -20,5 +27,5 @@ type CarouselTemplateProps<TObject extends Record<string, unknown>> = Pick<Carou
|
|
|
20
27
|
} & {
|
|
21
28
|
sendEvent?: CarouselUiProps<TObject>['sendEvent'];
|
|
22
29
|
};
|
|
23
|
-
export declare function carousel<TObject extends Record<string, unknown>>({ cssClasses, templates, }?: CreateCarouselTemplateProps<TObject>): ({ items, templates: widgetTemplates, cssClasses: widgetCssClasses, sendEvent, }: CarouselTemplateProps<TObject>) => h.JSX.Element;
|
|
30
|
+
export declare function carousel<TObject extends Record<string, unknown>>({ cssClasses, templates, showNavigation, }?: CreateCarouselTemplateProps<TObject>): ({ items, templates: widgetTemplates, cssClasses: widgetCssClasses, sendEvent, }: CarouselTemplateProps<TObject>) => h.JSX.Element;
|
|
24
31
|
export {};
|
|
@@ -5,20 +5,38 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
|
5
5
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
6
6
|
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); }
|
|
7
7
|
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); }
|
|
8
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
9
|
+
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."); }
|
|
10
|
+
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); }
|
|
11
|
+
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; }
|
|
12
|
+
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; } }
|
|
13
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
8
14
|
import { html } from 'htm/preact';
|
|
9
15
|
import { createCarouselComponent, cx, generateCarouselId } from 'instantsearch-ui-components';
|
|
10
16
|
import { Fragment, h } from 'preact';
|
|
11
|
-
import { useRef } from 'preact/hooks';
|
|
17
|
+
import { useRef, useState } from 'preact/hooks';
|
|
12
18
|
var Carousel = createCarouselComponent({
|
|
13
19
|
createElement: h,
|
|
14
20
|
Fragment: Fragment
|
|
15
21
|
});
|
|
16
22
|
function CarouselWithRefs(props) {
|
|
23
|
+
var _useState = useState(false),
|
|
24
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
25
|
+
canScrollLeft = _useState2[0],
|
|
26
|
+
setCanScrollLeft = _useState2[1];
|
|
27
|
+
var _useState3 = useState(true),
|
|
28
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
29
|
+
canScrollRight = _useState4[0],
|
|
30
|
+
setCanScrollRight = _useState4[1];
|
|
17
31
|
var carouselRefs = {
|
|
18
32
|
listRef: useRef(null),
|
|
19
33
|
nextButtonRef: useRef(null),
|
|
20
34
|
previousButtonRef: useRef(null),
|
|
21
|
-
carouselIdRef: useRef(generateCarouselId())
|
|
35
|
+
carouselIdRef: useRef(generateCarouselId()),
|
|
36
|
+
canScrollLeft: canScrollLeft,
|
|
37
|
+
canScrollRight: canScrollRight,
|
|
38
|
+
setCanScrollLeft: setCanScrollLeft,
|
|
39
|
+
setCanScrollRight: setCanScrollRight
|
|
22
40
|
};
|
|
23
41
|
return h(Carousel, _extends({}, carouselRefs, props));
|
|
24
42
|
}
|
|
@@ -26,7 +44,9 @@ export function carousel() {
|
|
|
26
44
|
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
27
45
|
cssClasses = _ref.cssClasses,
|
|
28
46
|
_ref$templates = _ref.templates,
|
|
29
|
-
templates = _ref$templates === void 0 ? {} : _ref$templates
|
|
47
|
+
templates = _ref$templates === void 0 ? {} : _ref$templates,
|
|
48
|
+
_ref$showNavigation = _ref.showNavigation,
|
|
49
|
+
showNavigation = _ref$showNavigation === void 0 ? true : _ref$showNavigation;
|
|
30
50
|
return function CarouselTemplate(_ref2) {
|
|
31
51
|
var items = _ref2.items,
|
|
32
52
|
widgetTemplates = _ref2.templates,
|
|
@@ -35,11 +55,17 @@ export function carousel() {
|
|
|
35
55
|
_ref2$sendEvent = _ref2.sendEvent,
|
|
36
56
|
sendEvent = _ref2$sendEvent === void 0 ? function () {} : _ref2$sendEvent;
|
|
37
57
|
var previous = templates.previous,
|
|
38
|
-
next = templates.next
|
|
58
|
+
next = templates.next,
|
|
59
|
+
header = templates.header;
|
|
39
60
|
return h(CarouselWithRefs, {
|
|
40
61
|
items: items,
|
|
41
62
|
sendEvent: sendEvent,
|
|
42
63
|
itemComponent: widgetTemplates.item,
|
|
64
|
+
headerComponent: header ? function (props) {
|
|
65
|
+
return header(_objectSpread({
|
|
66
|
+
html: html
|
|
67
|
+
}, props));
|
|
68
|
+
} : undefined,
|
|
43
69
|
previousIconComponent: previous ? function () {
|
|
44
70
|
return previous({
|
|
45
71
|
html: html
|
|
@@ -53,7 +79,8 @@ export function carousel() {
|
|
|
53
79
|
classNames: _objectSpread(_objectSpread({}, cssClasses), {
|
|
54
80
|
list: cx(cssClasses === null || cssClasses === void 0 ? void 0 : cssClasses.list, widgetCssClasses === null || widgetCssClasses === void 0 ? void 0 : widgetCssClasses.list),
|
|
55
81
|
item: cx(cssClasses === null || cssClasses === void 0 ? void 0 : cssClasses.item, widgetCssClasses === null || widgetCssClasses === void 0 ? void 0 : widgetCssClasses.item)
|
|
56
|
-
})
|
|
82
|
+
}),
|
|
83
|
+
showNavigation: showNavigation
|
|
57
84
|
});
|
|
58
85
|
};
|
|
59
86
|
}
|