instantsearch.js 4.81.0 → 4.83.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/Answers/Answers.js +4 -4
- package/cjs/components/Breadcrumb/Breadcrumb.js +2 -2
- package/cjs/components/ClearRefinements/ClearRefinements.js +2 -2
- package/cjs/components/GeoSearchControls/GeoSearchControls.js +2 -2
- package/cjs/components/Highlight/Highlight.js +3 -3
- package/cjs/components/InfiniteHits/InfiniteHits.js +4 -4
- package/cjs/components/MenuSelect/MenuSelect.js +2 -2
- package/cjs/components/Pagination/Pagination.js +1 -1
- package/cjs/components/Panel/Panel.js +5 -5
- package/cjs/components/QueryRuleCustomData/QueryRuleCustomData.js +1 -1
- package/cjs/components/RangeInput/RangeInput.js +14 -14
- package/cjs/components/RefinementList/RefinementList.js +16 -16
- package/cjs/components/RefinementList/RefinementListItem.js +2 -2
- package/cjs/components/RelevantSort/RelevantSort.js +1 -1
- package/cjs/components/ReverseHighlight/ReverseHighlight.js +3 -3
- package/cjs/components/ReverseSnippet/ReverseSnippet.js +3 -3
- package/cjs/components/SearchBox/SearchBox.js +31 -19
- package/cjs/components/Slider/Pit.js +2 -2
- package/cjs/components/Slider/Rheostat.js +13 -13
- package/cjs/components/Slider/Slider.js +19 -19
- package/cjs/components/Snippet/Snippet.js +3 -3
- package/cjs/components/Stats/Stats.js +6 -6
- package/cjs/components/Template/Template.js +18 -18
- package/cjs/components/ToggleRefinement/ToggleRefinement.js +2 -2
- package/cjs/components/VoiceSearch/VoiceSearch.js +1 -1
- package/cjs/connectors/answers/connectAnswers.js +2 -2
- package/cjs/connectors/autocomplete/connectAutocomplete.js +2 -2
- package/cjs/connectors/breadcrumb/connectBreadcrumb.js +6 -6
- package/cjs/connectors/chat/connectChat.js +39 -8
- package/cjs/connectors/clear-refinements/connectClearRefinements.js +7 -7
- package/cjs/connectors/configure/connectConfigure.js +3 -3
- package/cjs/connectors/configure-related-items/connectConfigureRelatedItems.js +8 -8
- package/cjs/connectors/current-refinements/connectCurrentRefinements.js +7 -7
- package/cjs/connectors/dynamic-widgets/connectDynamicWidgets.js +2 -2
- package/cjs/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.js +6 -3
- package/cjs/connectors/geo-search/connectGeoSearch.js +2 -2
- package/cjs/connectors/hierarchical-menu/connectHierarchicalMenu.js +28 -16
- package/cjs/connectors/hits/connectHits.js +2 -2
- package/cjs/connectors/hits/connectHitsWithInsights.js +1 -1
- package/cjs/connectors/hits-per-page/connectHitsPerPage.js +7 -7
- package/cjs/connectors/index.js +1 -1
- package/cjs/connectors/index.umd.js +1 -1
- package/cjs/connectors/infinite-hits/connectInfiniteHits.js +11 -11
- package/cjs/connectors/infinite-hits/connectInfiniteHitsWithInsights.js +1 -1
- package/cjs/connectors/looking-similar/connectLookingSimilar.js +3 -3
- package/cjs/connectors/menu/connectMenu.js +8 -8
- package/cjs/connectors/numeric-menu/connectNumericMenu.js +7 -7
- package/cjs/connectors/pagination/Paginator.js +5 -5
- package/cjs/connectors/pagination/connectPagination.js +3 -3
- package/cjs/connectors/powered-by/connectPoweredBy.js +2 -2
- package/cjs/connectors/query-rules/connectQueryRules.js +7 -7
- package/cjs/connectors/range/connectRange.js +22 -22
- package/cjs/connectors/rating-menu/connectRatingMenu.js +9 -9
- package/cjs/connectors/refinement-list/connectRefinementList.js +4 -4
- package/cjs/connectors/related-products/connectRelatedProducts.js +3 -3
- package/cjs/connectors/relevant-sort/connectRelevantSort.js +2 -2
- package/cjs/connectors/search-box/connectSearchBox.js +2 -2
- package/cjs/connectors/sort-by/connectSortBy.js +2 -2
- package/cjs/connectors/stats/connectStats.js +2 -2
- package/cjs/connectors/toggle-refinement/connectToggleRefinement.js +10 -10
- package/cjs/connectors/trending-items/connectTrendingItems.js +3 -3
- package/cjs/connectors/voice-search/connectVoiceSearch.js +3 -3
- package/cjs/helpers/components/Highlight.js +3 -3
- package/cjs/helpers/components/ReverseHighlight.js +5 -5
- package/cjs/helpers/components/ReverseSnippet.js +5 -5
- package/cjs/helpers/components/Snippet.js +3 -3
- package/cjs/helpers/index.js +2 -3
- package/cjs/index.js +2 -3
- package/cjs/lib/InstantSearch.js +13 -13
- package/cjs/lib/chat/chat.js +19 -19
- package/cjs/lib/createHelpers.js +2 -2
- package/cjs/lib/infiniteHitsCache/index.js +1 -1
- package/cjs/lib/infiniteHitsCache/sessionStorage.js +2 -2
- package/cjs/lib/insights/client.js +2 -2
- package/cjs/lib/insights/index.js +2 -3
- package/cjs/lib/routers/history.js +8 -8
- package/cjs/lib/routers/index.js +1 -1
- package/cjs/lib/server.js +2 -2
- package/cjs/lib/stateMappings/index.js +1 -1
- package/cjs/lib/stateMappings/simple.js +4 -4
- package/cjs/lib/stateMappings/singleIndex.js +4 -4
- package/cjs/lib/templating/prepareTemplateProps.js +7 -7
- package/cjs/lib/templating/renderTemplate.js +3 -3
- package/cjs/lib/utils/checkIndexUiState.js +14 -14
- package/cjs/lib/utils/createSendEventForFacet.js +6 -6
- package/cjs/lib/utils/createSendEventForHits.js +6 -6
- package/cjs/lib/utils/escape-highlight.js +4 -4
- package/cjs/lib/utils/geo-search.js +4 -4
- package/cjs/lib/utils/hits-absolute-position.js +2 -2
- package/cjs/lib/utils/hits-query-id.js +2 -2
- package/cjs/lib/utils/hydrateRecommendCache.js +2 -2
- package/cjs/lib/utils/hydrateSearchClient.js +6 -6
- package/cjs/lib/utils/mergeSearchParameters.js +4 -4
- package/cjs/lib/utils/range.js +5 -5
- package/cjs/lib/utils/reverseHighlightedParts.js +2 -2
- package/cjs/lib/version.js +1 -1
- package/cjs/lib/voiceSearchHelper/index.js +2 -2
- package/cjs/middlewares/createInsightsMiddleware.js +13 -13
- package/cjs/middlewares/createRouterMiddleware.js +3 -3
- package/cjs/templates/carousel/carousel.js +7 -7
- package/cjs/widgets/analytics/analytics.js +2 -2
- package/cjs/widgets/answers/answers.js +3 -3
- package/cjs/widgets/autocomplete/autocomplete.js +349 -0
- package/cjs/widgets/breadcrumb/breadcrumb.js +3 -3
- package/cjs/widgets/chat/chat.js +128 -80
- package/cjs/widgets/clear-refinements/clear-refinements.js +3 -3
- package/cjs/widgets/configure/configure.js +3 -3
- package/cjs/widgets/configure-related-items/configure-related-items.js +3 -3
- package/cjs/widgets/current-refinements/current-refinements.js +3 -3
- package/cjs/widgets/dynamic-widgets/dynamic-widgets.js +5 -5
- package/cjs/widgets/frequently-bought-together/frequently-bought-together.js +8 -6
- package/cjs/widgets/geo-search/GeoSearchRenderer.js +7 -7
- package/cjs/widgets/geo-search/createHTMLMarker.js +12 -12
- package/cjs/widgets/geo-search/geo-search.js +5 -5
- package/cjs/widgets/hierarchical-menu/hierarchical-menu.js +3 -3
- package/cjs/widgets/hits/hits.js +7 -7
- package/cjs/widgets/hits-per-page/hits-per-page.js +3 -3
- package/cjs/widgets/index/index.js +12 -16
- package/cjs/widgets/index.js +10 -2
- package/cjs/widgets/index.umd.js +10 -2
- package/cjs/widgets/infinite-hits/infinite-hits.js +3 -3
- package/cjs/widgets/looking-similar/looking-similar.js +6 -6
- package/cjs/widgets/menu/menu.js +3 -3
- package/cjs/widgets/menu-select/menu-select.js +3 -3
- package/cjs/widgets/numeric-menu/numeric-menu.js +3 -3
- package/cjs/widgets/pagination/pagination.js +3 -3
- package/cjs/widgets/panel/panel.js +3 -3
- package/cjs/widgets/places/places.js +4 -4
- package/cjs/widgets/powered-by/powered-by.js +3 -3
- package/cjs/widgets/query-rule-context/query-rule-context.js +3 -3
- package/cjs/widgets/query-rule-custom-data/query-rule-custom-data.js +3 -3
- package/cjs/widgets/range-input/range-input.js +7 -7
- package/cjs/widgets/range-slider/range-slider.js +7 -7
- package/cjs/widgets/rating-menu/rating-menu.js +3 -3
- package/cjs/widgets/refinement-list/refinement-list.js +3 -3
- package/cjs/widgets/related-products/related-products.js +6 -6
- package/cjs/widgets/relevant-sort/relevant-sort.js +3 -3
- package/cjs/widgets/search-box/search-box.js +3 -3
- package/cjs/widgets/sort-by/sort-by.js +3 -3
- package/cjs/widgets/stats/stats.js +3 -3
- package/cjs/widgets/toggle-refinement/toggle-refinement.js +3 -3
- package/cjs/widgets/trending-items/trending-items.js +6 -6
- package/cjs/widgets/voice-search/voice-search.js +3 -3
- package/dist/instantsearch.development.d.ts +108 -3
- package/dist/instantsearch.development.js +1678 -638
- package/dist/instantsearch.development.js.map +1 -1
- package/dist/instantsearch.production.d.ts +108 -3
- package/dist/instantsearch.production.min.d.ts +108 -3
- package/dist/instantsearch.production.min.js +2 -2
- package/dist/instantsearch.production.min.js.map +1 -1
- package/es/components/Answers/Answers.js +3 -3
- package/es/components/Breadcrumb/Breadcrumb.js +1 -1
- package/es/components/ClearRefinements/ClearRefinements.js +1 -1
- package/es/components/GeoSearchControls/GeoSearchControls.js +1 -1
- package/es/components/Highlight/Highlight.js +3 -3
- package/es/components/InfiniteHits/InfiniteHits.js +3 -3
- package/es/components/MenuSelect/MenuSelect.js +1 -1
- package/es/components/Panel/Panel.js +4 -4
- package/es/components/RangeInput/RangeInput.js +13 -13
- package/es/components/RefinementList/RefinementList.js +15 -15
- package/es/components/RefinementList/RefinementListItem.js +1 -1
- package/es/components/ReverseHighlight/ReverseHighlight.js +3 -3
- package/es/components/ReverseSnippet/ReverseSnippet.js +3 -3
- package/es/components/SearchBox/SearchBox.d.ts +4 -0
- package/es/components/SearchBox/SearchBox.js +30 -18
- package/es/components/Slider/Pit.js +2 -2
- package/es/components/Slider/Rheostat.js +13 -13
- package/es/components/Slider/Slider.js +18 -18
- package/es/components/Snippet/Snippet.js +3 -3
- package/es/components/Stats/Stats.js +5 -5
- package/es/components/Template/Template.js +18 -18
- package/es/components/ToggleRefinement/ToggleRefinement.js +1 -1
- package/es/connectors/answers/connectAnswers.js +2 -2
- package/es/connectors/autocomplete/connectAutocomplete.js +2 -2
- package/es/connectors/breadcrumb/connectBreadcrumb.js +6 -6
- package/es/connectors/chat/connectChat.d.ts +21 -1
- package/es/connectors/chat/connectChat.js +39 -8
- package/es/connectors/clear-refinements/connectClearRefinements.js +7 -7
- package/es/connectors/configure/connectConfigure.js +2 -2
- package/es/connectors/configure-related-items/connectConfigureRelatedItems.js +7 -7
- package/es/connectors/current-refinements/connectCurrentRefinements.js +7 -7
- package/es/connectors/dynamic-widgets/connectDynamicWidgets.js +2 -2
- package/es/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.d.ts +4 -0
- package/es/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.js +6 -3
- package/es/connectors/geo-search/connectGeoSearch.js +2 -2
- package/es/connectors/hierarchical-menu/connectHierarchicalMenu.js +28 -16
- package/es/connectors/hits/connectHits.js +2 -2
- package/es/connectors/hits-per-page/connectHitsPerPage.js +7 -7
- package/es/connectors/infinite-hits/connectInfiniteHits.js +11 -11
- package/es/connectors/looking-similar/connectLookingSimilar.js +3 -3
- package/es/connectors/menu/connectMenu.js +8 -8
- package/es/connectors/numeric-menu/connectNumericMenu.js +7 -7
- package/es/connectors/pagination/Paginator.js +5 -5
- package/es/connectors/pagination/connectPagination.js +2 -2
- package/es/connectors/powered-by/connectPoweredBy.js +2 -2
- package/es/connectors/query-rules/connectQueryRules.js +7 -7
- package/es/connectors/range/connectRange.js +22 -22
- package/es/connectors/rating-menu/connectRatingMenu.js +9 -9
- package/es/connectors/refinement-list/connectRefinementList.js +4 -4
- package/es/connectors/related-products/connectRelatedProducts.js +3 -3
- package/es/connectors/relevant-sort/connectRelevantSort.js +2 -2
- package/es/connectors/search-box/connectSearchBox.js +2 -2
- package/es/connectors/sort-by/connectSortBy.js +2 -2
- package/es/connectors/stats/connectStats.js +2 -2
- package/es/connectors/toggle-refinement/connectToggleRefinement.js +10 -10
- package/es/connectors/trending-items/connectTrendingItems.js +3 -3
- package/es/connectors/voice-search/connectVoiceSearch.js +2 -2
- package/es/helpers/components/Highlight.js +3 -3
- package/es/helpers/components/ReverseHighlight.js +5 -5
- package/es/helpers/components/ReverseSnippet.js +5 -5
- package/es/helpers/components/Snippet.js +3 -3
- package/es/lib/InstantSearch.d.ts +1 -1
- package/es/lib/InstantSearch.js +12 -12
- package/es/lib/chat/chat.js +19 -19
- package/es/lib/createHelpers.js +2 -2
- package/es/lib/infiniteHitsCache/sessionStorage.js +2 -2
- package/es/lib/insights/client.js +2 -2
- package/es/lib/routers/history.js +7 -7
- package/es/lib/server.js +2 -2
- package/es/lib/stateMappings/simple.js +4 -4
- package/es/lib/stateMappings/singleIndex.js +4 -4
- package/es/lib/templating/prepareTemplateProps.js +7 -7
- package/es/lib/templating/renderTemplate.js +2 -2
- package/es/lib/utils/checkIndexUiState.js +14 -14
- package/es/lib/utils/createSendEventForFacet.js +6 -6
- package/es/lib/utils/createSendEventForHits.js +6 -6
- package/es/lib/utils/escape-highlight.js +4 -4
- package/es/lib/utils/geo-search.js +4 -4
- package/es/lib/utils/hits-absolute-position.js +2 -2
- package/es/lib/utils/hits-query-id.js +2 -2
- package/es/lib/utils/hydrateRecommendCache.js +2 -2
- package/es/lib/utils/hydrateSearchClient.js +6 -6
- package/es/lib/utils/mergeSearchParameters.js +4 -4
- package/es/lib/utils/range.js +5 -5
- package/es/lib/utils/reverseHighlightedParts.js +2 -2
- package/es/lib/version.d.ts +1 -1
- package/es/lib/version.js +1 -1
- package/es/lib/voiceSearchHelper/index.js +2 -2
- package/es/middlewares/createInsightsMiddleware.js +13 -13
- package/es/middlewares/createRouterMiddleware.js +2 -2
- package/es/templates/carousel/carousel.js +7 -7
- package/es/types/widget.d.ts +8 -1
- package/es/widgets/analytics/analytics.js +2 -2
- package/es/widgets/answers/answers.js +2 -2
- package/es/widgets/autocomplete/autocomplete.d.ts +75 -0
- package/es/widgets/autocomplete/autocomplete.js +342 -0
- package/es/widgets/breadcrumb/breadcrumb.js +2 -2
- package/es/widgets/chat/chat.d.ts +44 -1
- package/es/widgets/chat/chat.js +127 -79
- package/es/widgets/clear-refinements/clear-refinements.js +2 -2
- package/es/widgets/configure/configure.js +2 -2
- package/es/widgets/configure-related-items/configure-related-items.js +2 -2
- package/es/widgets/current-refinements/current-refinements.js +2 -2
- package/es/widgets/dynamic-widgets/dynamic-widgets.js +4 -4
- package/es/widgets/frequently-bought-together/frequently-bought-together.js +7 -5
- package/es/widgets/geo-search/GeoSearchRenderer.js +6 -6
- package/es/widgets/geo-search/createHTMLMarker.js +12 -12
- package/es/widgets/geo-search/geo-search.js +4 -4
- package/es/widgets/hierarchical-menu/hierarchical-menu.js +2 -2
- package/es/widgets/hits/hits.js +6 -6
- package/es/widgets/hits-per-page/hits-per-page.js +2 -2
- package/es/widgets/index/index.d.ts +1 -1
- package/es/widgets/index/index.js +11 -15
- package/es/widgets/index.d.ts +1 -0
- package/es/widgets/index.js +1 -0
- package/es/widgets/index.umd.d.ts +1 -0
- package/es/widgets/index.umd.js +1 -0
- package/es/widgets/infinite-hits/infinite-hits.js +2 -2
- package/es/widgets/looking-similar/looking-similar.js +5 -5
- package/es/widgets/menu/menu.js +2 -2
- package/es/widgets/menu-select/menu-select.js +2 -2
- package/es/widgets/numeric-menu/numeric-menu.js +2 -2
- package/es/widgets/pagination/pagination.js +2 -2
- package/es/widgets/panel/panel.js +2 -2
- package/es/widgets/places/places.js +4 -4
- package/es/widgets/powered-by/powered-by.js +2 -2
- package/es/widgets/query-rule-context/query-rule-context.js +2 -2
- package/es/widgets/query-rule-custom-data/query-rule-custom-data.js +2 -2
- package/es/widgets/range-input/range-input.js +6 -6
- package/es/widgets/range-slider/range-slider.js +6 -6
- package/es/widgets/rating-menu/rating-menu.js +2 -2
- package/es/widgets/refinement-list/refinement-list.js +2 -2
- package/es/widgets/related-products/related-products.js +5 -5
- package/es/widgets/relevant-sort/relevant-sort.js +2 -2
- package/es/widgets/search-box/search-box.js +2 -2
- package/es/widgets/sort-by/sort-by.js +2 -2
- package/es/widgets/stats/stats.js +2 -2
- package/es/widgets/toggle-refinement/toggle-refinement.js +2 -2
- package/es/widgets/trending-items/trending-items.js +5 -5
- package/es/widgets/voice-search/voice-search.js +2 -2
- package/package.json +7 -7
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
|
|
2
|
+
import type { AutocompleteConnectorParams, AutocompleteWidgetDescription } from '../../connectors/autocomplete/connectAutocomplete';
|
|
3
|
+
import type { BaseHit, IndexUiState, IndexWidget, Template, WidgetFactory } from '../../types';
|
|
4
|
+
import type { AutocompleteClassNames, AutocompleteIndexClassNames, AutocompleteIndexConfig } from 'instantsearch-ui-components';
|
|
5
|
+
export type AutocompleteCSSClasses = Partial<AutocompleteClassNames>;
|
|
6
|
+
export type AutocompleteTemplates<TItem extends BaseHit> = Partial<Record<string, TItem>>;
|
|
7
|
+
type IndexConfig<TItem extends BaseHit> = AutocompleteIndexConfig<TItem> & {
|
|
8
|
+
templates?: Partial<{
|
|
9
|
+
/**
|
|
10
|
+
* Template to use for the header, before the list of items.
|
|
11
|
+
*/
|
|
12
|
+
header: Template<{
|
|
13
|
+
items: TItem[];
|
|
14
|
+
}>;
|
|
15
|
+
/**
|
|
16
|
+
* Template to use for each result. This template will receive an object containing a single record.
|
|
17
|
+
*/
|
|
18
|
+
item: Template<{
|
|
19
|
+
item: TItem;
|
|
20
|
+
onSelect: () => void;
|
|
21
|
+
}>;
|
|
22
|
+
}>;
|
|
23
|
+
cssClasses?: Partial<AutocompleteIndexClassNames>;
|
|
24
|
+
};
|
|
25
|
+
type AutocompleteWidgetParams<TItem extends BaseHit> = {
|
|
26
|
+
/**
|
|
27
|
+
* CSS Selector or HTMLElement to insert the widget.
|
|
28
|
+
*/
|
|
29
|
+
container: string | HTMLElement;
|
|
30
|
+
/**
|
|
31
|
+
* Indices to use in the Autocomplete.
|
|
32
|
+
*/
|
|
33
|
+
indices?: Array<IndexConfig<TItem>>;
|
|
34
|
+
/**
|
|
35
|
+
* Index to use for retrieving and showing query suggestions.
|
|
36
|
+
*/
|
|
37
|
+
showSuggestions?: Partial<Pick<IndexConfig<{
|
|
38
|
+
query: string;
|
|
39
|
+
}>, 'indexName' | 'getURL' | 'templates' | 'cssClasses'>>;
|
|
40
|
+
showRecent?: boolean | {
|
|
41
|
+
/**
|
|
42
|
+
* Storage key to use in the local storage.
|
|
43
|
+
*/
|
|
44
|
+
storageKey?: string;
|
|
45
|
+
templates?: Partial<{
|
|
46
|
+
/**
|
|
47
|
+
* Template to use for each result. This template will receive an object containing a single record.
|
|
48
|
+
*/
|
|
49
|
+
item: Template<{
|
|
50
|
+
item: {
|
|
51
|
+
query: string;
|
|
52
|
+
};
|
|
53
|
+
onSelect: () => void;
|
|
54
|
+
onRemoveRecentSearch: () => void;
|
|
55
|
+
}>;
|
|
56
|
+
}>;
|
|
57
|
+
};
|
|
58
|
+
getSearchPageURL?: (nextUiState: IndexUiState) => string;
|
|
59
|
+
onSelect?: AutocompleteIndexConfig<TItem>['onSelect'];
|
|
60
|
+
/**
|
|
61
|
+
* Templates to use for the widget.
|
|
62
|
+
*/
|
|
63
|
+
templates?: AutocompleteTemplates<TItem>;
|
|
64
|
+
/**
|
|
65
|
+
* CSS classes to add.
|
|
66
|
+
*/
|
|
67
|
+
cssClasses?: AutocompleteCSSClasses;
|
|
68
|
+
};
|
|
69
|
+
export type AutocompleteWidget<TItem extends BaseHit = BaseHit> = WidgetFactory<AutocompleteWidgetDescription & {
|
|
70
|
+
$$widgetType: 'ais.autocomplete';
|
|
71
|
+
}, AutocompleteConnectorParams, AutocompleteWidgetParams<TItem>>;
|
|
72
|
+
export declare function EXPERIMENTAL_autocomplete<TItem extends BaseHit = BaseHit>(widgetParams: AutocompleteWidgetParams<TItem> & AutocompleteConnectorParams): (IndexWidget<import("../../types").UiState> | import("../../types").Widget<import("../../connectors/search-box/connectSearchBox").SearchBoxWidgetDescription & {
|
|
73
|
+
widgetParams: import("../../connectors/search-box/connectSearchBox").SearchBoxConnectorParams & object;
|
|
74
|
+
}>)[];
|
|
75
|
+
export {};
|
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
var _excluded = ["instanceId", "containerNode"];
|
|
2
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
3
|
+
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."); }
|
|
4
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
5
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
6
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
7
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
8
|
+
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); }
|
|
9
|
+
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; }
|
|
10
|
+
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; }
|
|
11
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
12
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
13
|
+
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); }
|
|
14
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
15
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
16
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
17
|
+
import { createAutocompleteComponent, createAutocompleteIndexComponent, createAutocompletePanelComponent, createAutocompletePropGetters, createAutocompleteRecentSearchComponent, createAutocompleteSearchComponent, createAutocompleteStorage, createAutocompleteSuggestionComponent, cx } from 'instantsearch-ui-components';
|
|
18
|
+
import { Fragment, h, render } from 'preact';
|
|
19
|
+
import { useEffect, useId, useMemo, useRef, useState } from 'preact/hooks';
|
|
20
|
+
import TemplateComponent from "../../components/Template/Template.js";
|
|
21
|
+
import { connectAutocomplete, connectSearchBox } from "../../connectors/index.umd.js";
|
|
22
|
+
import { component } from "../../lib/suit.js";
|
|
23
|
+
import { prepareTemplateProps } from "../../lib/templating/index.js";
|
|
24
|
+
import { createDocumentationMessageGenerator, getContainerNode, walkIndex } from "../../lib/utils/index.js";
|
|
25
|
+
import configure from "../configure/configure.js";
|
|
26
|
+
import index from "../index/index.js";
|
|
27
|
+
var autocompleteInstanceId = 0;
|
|
28
|
+
var withUsage = createDocumentationMessageGenerator({
|
|
29
|
+
name: 'autocomplete'
|
|
30
|
+
});
|
|
31
|
+
var suit = component('Autocomplete');
|
|
32
|
+
var Autocomplete = createAutocompleteComponent({
|
|
33
|
+
createElement: h,
|
|
34
|
+
Fragment: Fragment
|
|
35
|
+
});
|
|
36
|
+
var AutocompletePanel = createAutocompletePanelComponent({
|
|
37
|
+
createElement: h,
|
|
38
|
+
Fragment: Fragment
|
|
39
|
+
});
|
|
40
|
+
var AutocompleteIndex = createAutocompleteIndexComponent({
|
|
41
|
+
createElement: h,
|
|
42
|
+
Fragment: Fragment
|
|
43
|
+
});
|
|
44
|
+
var AutocompleteSuggestion = createAutocompleteSuggestionComponent({
|
|
45
|
+
createElement: h,
|
|
46
|
+
Fragment: Fragment
|
|
47
|
+
});
|
|
48
|
+
var AutocompleteSearchBox = createAutocompleteSearchComponent({
|
|
49
|
+
createElement: h,
|
|
50
|
+
Fragment: Fragment
|
|
51
|
+
});
|
|
52
|
+
var AutocompleteRecentSearch = createAutocompleteRecentSearchComponent({
|
|
53
|
+
createElement: h,
|
|
54
|
+
Fragment: Fragment
|
|
55
|
+
});
|
|
56
|
+
var usePropGetters = createAutocompletePropGetters({
|
|
57
|
+
useEffect: useEffect,
|
|
58
|
+
useId: useId,
|
|
59
|
+
useMemo: useMemo,
|
|
60
|
+
useRef: useRef,
|
|
61
|
+
useState: useState
|
|
62
|
+
});
|
|
63
|
+
var useStorage = createAutocompleteStorage({
|
|
64
|
+
useEffect: useEffect,
|
|
65
|
+
useState: useState,
|
|
66
|
+
useMemo: useMemo
|
|
67
|
+
});
|
|
68
|
+
var createRenderer = function createRenderer(params) {
|
|
69
|
+
var instanceId = params.instanceId,
|
|
70
|
+
containerNode = params.containerNode,
|
|
71
|
+
rendererParams = _objectWithoutProperties(params, _excluded);
|
|
72
|
+
return function (connectorParams, isFirstRendering) {
|
|
73
|
+
if (isFirstRendering) {
|
|
74
|
+
var _targetIndex$getHelpe, _targetIndex$getHelpe2;
|
|
75
|
+
var isolatedIndex = connectorParams.instantSearchInstance.mainIndex;
|
|
76
|
+
var targetIndex = connectorParams.instantSearchInstance.mainIndex;
|
|
77
|
+
walkIndex(targetIndex, function (childIndex) {
|
|
78
|
+
if (childIndex.getIndexId() === "ais-autocomplete-".concat(instanceId)) {
|
|
79
|
+
isolatedIndex = childIndex;
|
|
80
|
+
targetIndex = childIndex.parent;
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
rendererParams.renderState = {
|
|
84
|
+
indexTemplateProps: [],
|
|
85
|
+
isolatedIndex: isolatedIndex,
|
|
86
|
+
targetIndex: targetIndex
|
|
87
|
+
};
|
|
88
|
+
connectorParams.refine((_targetIndex$getHelpe = (_targetIndex$getHelpe2 = targetIndex.getHelper()) === null || _targetIndex$getHelpe2 === void 0 ? void 0 : _targetIndex$getHelpe2.state.query) !== null && _targetIndex$getHelpe !== void 0 ? _targetIndex$getHelpe : '');
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
render(h(AutocompleteWrapper, _extends({}, rendererParams, connectorParams)), containerNode);
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
function AutocompleteWrapper(_ref) {
|
|
95
|
+
var _isolatedIndex$getHel, _targetIndex$getWidge, _showRecent$templates;
|
|
96
|
+
var indicesConfig = _ref.indicesConfig,
|
|
97
|
+
indices = _ref.indices,
|
|
98
|
+
getSearchPageURL = _ref.getSearchPageURL,
|
|
99
|
+
userOnSelect = _ref.onSelect,
|
|
100
|
+
refine = _ref.refine,
|
|
101
|
+
cssClasses = _ref.cssClasses,
|
|
102
|
+
renderState = _ref.renderState,
|
|
103
|
+
instantSearchInstance = _ref.instantSearchInstance,
|
|
104
|
+
showRecent = _ref.showRecent;
|
|
105
|
+
var isolatedIndex = renderState.isolatedIndex,
|
|
106
|
+
targetIndex = renderState.targetIndex;
|
|
107
|
+
var searchboxQuery = isolatedIndex === null || isolatedIndex === void 0 ? void 0 : (_isolatedIndex$getHel = isolatedIndex.getHelper()) === null || _isolatedIndex$getHel === void 0 ? void 0 : _isolatedIndex$getHel.state.query;
|
|
108
|
+
var _useStorage = useStorage({
|
|
109
|
+
query: searchboxQuery,
|
|
110
|
+
showRecent: showRecent,
|
|
111
|
+
indices: indices,
|
|
112
|
+
indicesConfig: indicesConfig
|
|
113
|
+
}),
|
|
114
|
+
storage = _useStorage.storage,
|
|
115
|
+
storageHits = _useStorage.storageHits,
|
|
116
|
+
indicesConfigForPropGetters = _useStorage.indicesConfigForPropGetters,
|
|
117
|
+
indicesForPropGetters = _useStorage.indicesForPropGetters;
|
|
118
|
+
var isSearchPage = (_targetIndex$getWidge = targetIndex === null || targetIndex === void 0 ? void 0 : targetIndex.getWidgets().some(function (_ref2) {
|
|
119
|
+
var $$type = _ref2.$$type;
|
|
120
|
+
return ['ais.hits', 'ais.infiniteHits'].includes($$type);
|
|
121
|
+
})) !== null && _targetIndex$getWidge !== void 0 ? _targetIndex$getWidge : false;
|
|
122
|
+
var onRefine = function onRefine(query) {
|
|
123
|
+
instantSearchInstance.setUiState(function (uiState) {
|
|
124
|
+
var _objectSpread2;
|
|
125
|
+
return _objectSpread(_objectSpread({}, uiState), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, targetIndex.getIndexId(), _objectSpread(_objectSpread({}, uiState[targetIndex.getIndexId()]), {}, {
|
|
126
|
+
query: query
|
|
127
|
+
})), _defineProperty(_objectSpread2, isolatedIndex.getIndexId(), {
|
|
128
|
+
query: query
|
|
129
|
+
}), _objectSpread2));
|
|
130
|
+
});
|
|
131
|
+
query.length > 0 && storage.onAdd(query);
|
|
132
|
+
};
|
|
133
|
+
var _usePropGetters = usePropGetters({
|
|
134
|
+
indices: indicesForPropGetters,
|
|
135
|
+
indicesConfig: indicesConfigForPropGetters,
|
|
136
|
+
onRefine: onRefine,
|
|
137
|
+
onSelect: userOnSelect !== null && userOnSelect !== void 0 ? userOnSelect : function (_ref3) {
|
|
138
|
+
var query = _ref3.query,
|
|
139
|
+
setQuery = _ref3.setQuery,
|
|
140
|
+
url = _ref3.url;
|
|
141
|
+
if (url) {
|
|
142
|
+
window.location.href = url;
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
if (!isSearchPage && typeof getSearchPageURL !== 'undefined') {
|
|
146
|
+
var indexUiState = instantSearchInstance.getUiState()[targetIndex.getIndexId()];
|
|
147
|
+
window.location.href = getSearchPageURL(_objectSpread(_objectSpread({}, indexUiState), {}, {
|
|
148
|
+
query: query
|
|
149
|
+
}));
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
setQuery(query);
|
|
153
|
+
}
|
|
154
|
+
}),
|
|
155
|
+
getInputProps = _usePropGetters.getInputProps,
|
|
156
|
+
getItemProps = _usePropGetters.getItemProps,
|
|
157
|
+
getPanelProps = _usePropGetters.getPanelProps,
|
|
158
|
+
getRootProps = _usePropGetters.getRootProps;
|
|
159
|
+
var AutocompleteRecentSearchComponent = AutocompleteRecentSearch;
|
|
160
|
+
if (_typeof(showRecent) === 'object' && (_showRecent$templates = showRecent.templates) !== null && _showRecent$templates !== void 0 && _showRecent$templates.item) {
|
|
161
|
+
var props = prepareTemplateProps({
|
|
162
|
+
defaultTemplates: {},
|
|
163
|
+
templatesConfig: instantSearchInstance.templatesConfig,
|
|
164
|
+
templates: showRecent.templates
|
|
165
|
+
});
|
|
166
|
+
AutocompleteRecentSearchComponent = function AutocompleteRecentSearchComponent(_ref4) {
|
|
167
|
+
var item = _ref4.item,
|
|
168
|
+
onSelect = _ref4.onSelect,
|
|
169
|
+
onRemoveRecentSearch = _ref4.onRemoveRecentSearch;
|
|
170
|
+
return h(TemplateComponent, _extends({}, props, {
|
|
171
|
+
templateKey: "item",
|
|
172
|
+
rootTagName: "fragment",
|
|
173
|
+
data: {
|
|
174
|
+
item: item,
|
|
175
|
+
onSelect: onSelect,
|
|
176
|
+
onRemoveRecentSearch: onRemoveRecentSearch
|
|
177
|
+
}
|
|
178
|
+
}));
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
return h(Autocomplete, _extends({}, getRootProps(), {
|
|
182
|
+
classNames: cssClasses
|
|
183
|
+
}), h(AutocompleteSearchBox, {
|
|
184
|
+
query: searchboxQuery || '',
|
|
185
|
+
inputProps: _objectSpread(_objectSpread({}, getInputProps()), {}, {
|
|
186
|
+
// @ts-ignore - This clashes with some ambient React JSX declarations.
|
|
187
|
+
onInput: function onInput(evt) {
|
|
188
|
+
return refine(evt.currentTarget.value);
|
|
189
|
+
}
|
|
190
|
+
}),
|
|
191
|
+
onClear: function onClear() {
|
|
192
|
+
return onRefine('');
|
|
193
|
+
},
|
|
194
|
+
isSearchStalled: instantSearchInstance.status === 'stalled'
|
|
195
|
+
}), h(AutocompletePanel, getPanelProps(), showRecent && h(AutocompleteIndex
|
|
196
|
+
// @ts-ignore - there seems to be problems with React.ComponentType and this, but it's actually correct
|
|
197
|
+
, {
|
|
198
|
+
ItemComponent: function ItemComponent(_ref5) {
|
|
199
|
+
var item = _ref5.item,
|
|
200
|
+
onSelect = _ref5.onSelect;
|
|
201
|
+
return h(AutocompleteRecentSearchComponent, {
|
|
202
|
+
item: item,
|
|
203
|
+
onSelect: onSelect,
|
|
204
|
+
onRemoveRecentSearch: function onRemoveRecentSearch() {
|
|
205
|
+
return storage.onRemove(item.query);
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
},
|
|
209
|
+
classNames: {
|
|
210
|
+
root: 'ais-AutocompleteRecentSearches',
|
|
211
|
+
list: 'ais-AutocompleteRecentSearchesList',
|
|
212
|
+
item: 'ais-AutocompleteRecentSearchesItem'
|
|
213
|
+
},
|
|
214
|
+
items: storageHits,
|
|
215
|
+
getItemProps: getItemProps
|
|
216
|
+
}), indices.map(function (_ref6, i) {
|
|
217
|
+
var _indicesConfig$i$temp;
|
|
218
|
+
var indexId = _ref6.indexId,
|
|
219
|
+
hits = _ref6.hits;
|
|
220
|
+
if (!renderState.indexTemplateProps[i]) {
|
|
221
|
+
renderState.indexTemplateProps[i] = prepareTemplateProps({
|
|
222
|
+
defaultTemplates: {},
|
|
223
|
+
templatesConfig: instantSearchInstance.templatesConfig,
|
|
224
|
+
templates: indicesConfig[i].templates
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
var headerComponent = (_indicesConfig$i$temp = indicesConfig[i].templates) !== null && _indicesConfig$i$temp !== void 0 && _indicesConfig$i$temp.header ? function (_ref7) {
|
|
228
|
+
var items = _ref7.items;
|
|
229
|
+
return h(TemplateComponent, _extends({}, renderState.indexTemplateProps[i], {
|
|
230
|
+
templateKey: "header",
|
|
231
|
+
rootTagName: "fragment",
|
|
232
|
+
data: {
|
|
233
|
+
items: items
|
|
234
|
+
}
|
|
235
|
+
}));
|
|
236
|
+
} : undefined;
|
|
237
|
+
var itemComponent = function itemComponent(_ref8) {
|
|
238
|
+
var item = _ref8.item,
|
|
239
|
+
onSelect = _ref8.onSelect;
|
|
240
|
+
return h(TemplateComponent, _extends({}, renderState.indexTemplateProps[i], {
|
|
241
|
+
templateKey: "item",
|
|
242
|
+
rootTagName: "fragment",
|
|
243
|
+
data: {
|
|
244
|
+
item: item,
|
|
245
|
+
onSelect: onSelect
|
|
246
|
+
}
|
|
247
|
+
}));
|
|
248
|
+
};
|
|
249
|
+
return h(AutocompleteIndex, {
|
|
250
|
+
key: indexId,
|
|
251
|
+
HeaderComponent: headerComponent,
|
|
252
|
+
ItemComponent: itemComponent,
|
|
253
|
+
items: hits.map(function (item) {
|
|
254
|
+
return _objectSpread(_objectSpread({}, item), {}, {
|
|
255
|
+
__indexName: indexId
|
|
256
|
+
});
|
|
257
|
+
}),
|
|
258
|
+
getItemProps: getItemProps,
|
|
259
|
+
classNames: indicesConfig[i].cssClasses
|
|
260
|
+
});
|
|
261
|
+
})));
|
|
262
|
+
}
|
|
263
|
+
export function EXPERIMENTAL_autocomplete(widgetParams) {
|
|
264
|
+
var _ref9 = widgetParams || {},
|
|
265
|
+
container = _ref9.container,
|
|
266
|
+
escapeHTML = _ref9.escapeHTML,
|
|
267
|
+
_ref9$indices = _ref9.indices,
|
|
268
|
+
indices = _ref9$indices === void 0 ? [] : _ref9$indices,
|
|
269
|
+
showSuggestions = _ref9.showSuggestions,
|
|
270
|
+
showRecent = _ref9.showRecent,
|
|
271
|
+
getSearchPageURL = _ref9.getSearchPageURL,
|
|
272
|
+
onSelect = _ref9.onSelect,
|
|
273
|
+
_ref9$templates = _ref9.templates,
|
|
274
|
+
templates = _ref9$templates === void 0 ? {} : _ref9$templates,
|
|
275
|
+
_ref9$cssClasses = _ref9.cssClasses,
|
|
276
|
+
userCssClasses = _ref9$cssClasses === void 0 ? {} : _ref9$cssClasses;
|
|
277
|
+
if (!container) {
|
|
278
|
+
throw new Error(withUsage('The `container` option is required.'));
|
|
279
|
+
}
|
|
280
|
+
var containerNode = getContainerNode(container);
|
|
281
|
+
var cssClasses = {
|
|
282
|
+
root: cx(suit(), userCssClasses.root)
|
|
283
|
+
};
|
|
284
|
+
var indicesConfig = _toConsumableArray(indices);
|
|
285
|
+
if (showSuggestions !== null && showSuggestions !== void 0 && showSuggestions.indexName) {
|
|
286
|
+
var _showSuggestions$cssC, _showSuggestions$cssC2, _showSuggestions$cssC3, _showSuggestions$cssC4;
|
|
287
|
+
indicesConfig.unshift({
|
|
288
|
+
indexName: showSuggestions.indexName,
|
|
289
|
+
templates: _objectSpread({
|
|
290
|
+
// @ts-expect-error
|
|
291
|
+
item: AutocompleteSuggestion
|
|
292
|
+
}, showSuggestions.templates),
|
|
293
|
+
cssClasses: {
|
|
294
|
+
root: cx('ais-AutocompleteSuggestions', (_showSuggestions$cssC = showSuggestions.cssClasses) === null || _showSuggestions$cssC === void 0 ? void 0 : _showSuggestions$cssC.root),
|
|
295
|
+
list: cx('ais-AutocompleteSuggestionsList', (_showSuggestions$cssC2 = showSuggestions.cssClasses) === null || _showSuggestions$cssC2 === void 0 ? void 0 : _showSuggestions$cssC2.list),
|
|
296
|
+
header: cx('ais-AutocompleteSuggestionsHeader', (_showSuggestions$cssC3 = showSuggestions.cssClasses) === null || _showSuggestions$cssC3 === void 0 ? void 0 : _showSuggestions$cssC3.header),
|
|
297
|
+
item: cx('ais-AutocompleteSuggestionsItem', (_showSuggestions$cssC4 = showSuggestions.cssClasses) === null || _showSuggestions$cssC4 === void 0 ? void 0 : _showSuggestions$cssC4.item)
|
|
298
|
+
},
|
|
299
|
+
getQuery: function getQuery(item) {
|
|
300
|
+
return item.query;
|
|
301
|
+
},
|
|
302
|
+
getURL: showSuggestions.getURL
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
var instanceId = ++autocompleteInstanceId;
|
|
306
|
+
var specializedRenderer = createRenderer({
|
|
307
|
+
instanceId: instanceId,
|
|
308
|
+
containerNode: containerNode,
|
|
309
|
+
indicesConfig: indicesConfig,
|
|
310
|
+
getSearchPageURL: getSearchPageURL,
|
|
311
|
+
onSelect: onSelect,
|
|
312
|
+
cssClasses: cssClasses,
|
|
313
|
+
showRecent: showRecent,
|
|
314
|
+
renderState: {
|
|
315
|
+
indexTemplateProps: [],
|
|
316
|
+
isolatedIndex: undefined,
|
|
317
|
+
targetIndex: undefined
|
|
318
|
+
},
|
|
319
|
+
templates: templates
|
|
320
|
+
});
|
|
321
|
+
var makeWidget = connectAutocomplete(specializedRenderer, function () {
|
|
322
|
+
return render(null, containerNode);
|
|
323
|
+
});
|
|
324
|
+
return [connectSearchBox(function () {
|
|
325
|
+
return null;
|
|
326
|
+
})({}), index({
|
|
327
|
+
indexId: "ais-autocomplete-".concat(instanceId),
|
|
328
|
+
EXPERIMENTAL_isolated: true
|
|
329
|
+
}).addWidgets([].concat(_toConsumableArray(indicesConfig.map(function (_ref0) {
|
|
330
|
+
var indexName = _ref0.indexName;
|
|
331
|
+
return index({
|
|
332
|
+
indexName: indexName,
|
|
333
|
+
indexId: indexName
|
|
334
|
+
}).addWidgets([configure({
|
|
335
|
+
hitsPerPage: 5
|
|
336
|
+
})]);
|
|
337
|
+
})), [_objectSpread(_objectSpread({}, makeWidget({
|
|
338
|
+
escapeHTML: escapeHTML
|
|
339
|
+
})), {}, {
|
|
340
|
+
$$widgetType: 'ais.autocomplete'
|
|
341
|
+
})]))];
|
|
342
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
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); }
|
|
2
2
|
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; }
|
|
3
3
|
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; }
|
|
4
|
-
function _defineProperty(
|
|
5
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i :
|
|
4
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : 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
|
import { cx } from 'instantsearch-ui-components';
|
|
8
8
|
import { h, render } from 'preact';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { SearchIndexToolType, RecommendToolType } from '../../lib/chat';
|
|
3
3
|
import type { ChatConnectorParams, ChatWidgetDescription } from '../../connectors/chat/connectChat';
|
|
4
4
|
import type { WidgetFactory, Hit, TemplateWithBindEvent, BaseHit, Template, IndexUiState } from '../../types';
|
|
5
|
-
import type { ChatClassNames, ChatHeaderProps, ChatMessageActionProps, ChatMessageBase, ChatMessageErrorProps, ChatMessageLoaderProps, ChatPromptProps, ChatToggleButtonProps, ClientSideToolComponentProps, RecordWithObjectID, UserClientSideTool } from 'instantsearch-ui-components';
|
|
5
|
+
import type { ChatClassNames, ChatHeaderProps, ChatMessageActionProps, ChatMessageBase, ChatMessageErrorProps, ChatMessageLoaderProps, ChatPromptProps, ChatToggleButtonProps, ClientSideToolComponentProps, ClientSideTools, RecordWithObjectID, UserClientSideTool } from 'instantsearch-ui-components';
|
|
6
6
|
export { SearchIndexToolType, RecommendToolType };
|
|
7
7
|
export type UserClientSideToolTemplates = Partial<{
|
|
8
8
|
layout: TemplateWithBindEvent<ClientSideToolComponentProps>;
|
|
@@ -95,6 +95,45 @@ export type ChatTemplates<THit extends NonNullable<object> = BaseHit> = Partial<
|
|
|
95
95
|
*/
|
|
96
96
|
regenerateLabelText?: string;
|
|
97
97
|
}>;
|
|
98
|
+
/**
|
|
99
|
+
* Templates to use for each message.
|
|
100
|
+
*/
|
|
101
|
+
message: Partial<{
|
|
102
|
+
/**
|
|
103
|
+
* Label for the message actions
|
|
104
|
+
*/
|
|
105
|
+
actionsLabelText?: string;
|
|
106
|
+
/**
|
|
107
|
+
* Label for the message container
|
|
108
|
+
*/
|
|
109
|
+
messageLabelText?: string;
|
|
110
|
+
}>;
|
|
111
|
+
/**
|
|
112
|
+
* Templates to use for the assistant message.
|
|
113
|
+
*/
|
|
114
|
+
assistantMessage: Partial<{
|
|
115
|
+
/**
|
|
116
|
+
* Template to use for the assistant message leading content.
|
|
117
|
+
*/
|
|
118
|
+
leading: Template;
|
|
119
|
+
/**
|
|
120
|
+
* Template to use for the assistant message footer content.
|
|
121
|
+
*/
|
|
122
|
+
footer: Template;
|
|
123
|
+
}>;
|
|
124
|
+
/**
|
|
125
|
+
* Templates to use for the user message.
|
|
126
|
+
*/
|
|
127
|
+
userMessage: Partial<{
|
|
128
|
+
/**
|
|
129
|
+
* Template to use for the user message leading content.
|
|
130
|
+
*/
|
|
131
|
+
leading: Template;
|
|
132
|
+
/**
|
|
133
|
+
* Template to use for the user message footer content.
|
|
134
|
+
*/
|
|
135
|
+
footer: Template;
|
|
136
|
+
}>;
|
|
98
137
|
/**
|
|
99
138
|
* Templates to use for the prompt.
|
|
100
139
|
*/
|
|
@@ -512,6 +551,10 @@ declare const _default: <THit extends RecordWithObjectID = RecordWithObjectID>(w
|
|
|
512
551
|
setInput: (input: string) => void;
|
|
513
552
|
setOpen: (open: boolean) => void;
|
|
514
553
|
setMessages: (messagesParam: import("ai").UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>[] | ((m: import("ai").UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>[]) => import("ai").UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>[])) => void;
|
|
554
|
+
isClearing: boolean;
|
|
555
|
+
clearMessages: () => void;
|
|
556
|
+
onClearTransitionEnd: () => void;
|
|
557
|
+
tools: ClientSideTools;
|
|
515
558
|
widgetParams: Partial<ChatWidgetParams<RecordWithObjectID>> & ChatConnectorParams<import("ai").UIMessage<unknown, import("ai").UIDataTypes, import("ai").UITools>>;
|
|
516
559
|
addToolResult: <TOOL extends string>({ tool, toolCallId, output, }: {
|
|
517
560
|
tool: TOOL;
|