instantsearch.js 4.49.0 → 4.49.2
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/README.md +3 -3
- package/cjs/components/Answers/Answers.js +6 -16
- package/cjs/components/Breadcrumb/Breadcrumb.js +5 -12
- package/cjs/components/ClearRefinements/ClearRefinements.js +4 -11
- package/cjs/components/CurrentRefinements/CurrentRefinements.js +5 -12
- package/cjs/components/GeoSearchControls/GeoSearchButton.js +4 -6
- package/cjs/components/GeoSearchControls/GeoSearchControls.js +11 -20
- package/cjs/components/GeoSearchControls/GeoSearchToggle.js +4 -6
- package/cjs/components/Highlight/Highlight.js +3 -11
- package/cjs/components/Hits/Hits.js +8 -20
- package/cjs/components/InfiniteHits/InfiniteHits.js +13 -25
- package/cjs/components/InternalHighlight/InternalHighlight.js +0 -3
- package/cjs/components/MenuSelect/MenuSelect.js +9 -19
- package/cjs/components/Pagination/Pagination.js +10 -17
- package/cjs/components/Panel/Panel.js +7 -26
- package/cjs/components/PoweredBy/PoweredBy.js +4 -5
- package/cjs/components/QueryRuleCustomData/QueryRuleCustomData.js +2 -6
- package/cjs/components/RangeInput/RangeInput.js +16 -48
- package/cjs/components/RefinementList/RefinementList.js +19 -73
- package/cjs/components/RefinementList/RefinementListItem.js +8 -14
- package/cjs/components/RelevantSort/RelevantSort.js +4 -8
- package/cjs/components/ReverseHighlight/ReverseHighlight.js +3 -11
- package/cjs/components/ReverseSnippet/ReverseSnippet.js +3 -11
- package/cjs/components/SearchBox/SearchBox.js +25 -69
- package/cjs/components/Selector/Selector.js +3 -6
- package/cjs/components/Slider/Pit.js +3 -10
- package/cjs/components/Slider/Rheostat.js +63 -131
- package/cjs/components/Slider/Slider.js +28 -65
- package/cjs/components/Snippet/Snippet.js +3 -11
- package/cjs/components/Stats/Stats.js +7 -20
- package/cjs/components/Template/Template.js +8 -37
- package/cjs/components/ToggleRefinement/ToggleRefinement.js +4 -10
- package/cjs/components/VoiceSearch/VoiceSearch.js +8 -15
- package/cjs/connectors/answers/connectAnswers.js +21 -36
- package/cjs/connectors/autocomplete/connectAutocomplete.js +8 -25
- package/cjs/connectors/breadcrumb/connectBreadcrumb.js +17 -48
- package/cjs/connectors/clear-refinements/connectClearRefinements.js +27 -45
- package/cjs/connectors/configure/connectConfigure.js +6 -20
- package/cjs/connectors/configure-related-items/connectConfigureRelatedItems.js +11 -36
- package/cjs/connectors/current-refinements/connectCurrentRefinements.js +18 -57
- package/cjs/connectors/dynamic-widgets/connectDynamicWidgets.js +17 -37
- package/cjs/connectors/geo-search/connectGeoSearch.js +17 -47
- package/cjs/connectors/hierarchical-menu/connectHierarchicalMenu.js +38 -74
- package/cjs/connectors/hits/connectHits.js +10 -26
- package/cjs/connectors/hits/connectHitsWithInsights.js +0 -4
- package/cjs/connectors/hits-per-page/connectHitsPerPage.js +15 -38
- package/cjs/connectors/index.js +62 -96
- package/cjs/connectors/infinite-hits/connectInfiniteHits.js +26 -62
- package/cjs/connectors/infinite-hits/connectInfiniteHitsWithInsights.js +0 -4
- package/cjs/connectors/menu/connectMenu.js +28 -66
- package/cjs/connectors/numeric-menu/connectNumericMenu.js +24 -78
- package/cjs/connectors/pagination/Paginator.js +3 -20
- package/cjs/connectors/pagination/connectPagination.js +8 -25
- package/cjs/connectors/powered-by/connectPoweredBy.js +4 -13
- package/cjs/connectors/query-rules/connectQueryRules.js +32 -56
- package/cjs/connectors/range/connectRange.js +41 -101
- package/cjs/connectors/rating-menu/connectRatingMenu.js +23 -79
- package/cjs/connectors/refinement-list/connectRefinementList.js +37 -70
- package/cjs/connectors/relevant-sort/connectRelevantSort.js +4 -14
- package/cjs/connectors/search-box/connectSearchBox.js +7 -23
- package/cjs/connectors/sort-by/connectSortBy.js +11 -21
- package/cjs/connectors/stats/connectStats.js +4 -11
- package/cjs/connectors/toggle-refinement/connectToggleRefinement.js +29 -63
- package/cjs/connectors/voice-search/connectVoiceSearch.js +13 -35
- package/cjs/helpers/components/Highlight.js +4 -12
- package/cjs/helpers/components/ReverseHighlight.js +7 -19
- package/cjs/helpers/components/ReverseSnippet.js +7 -19
- package/cjs/helpers/components/Snippet.js +4 -12
- package/cjs/helpers/components/index.js +0 -8
- package/cjs/helpers/get-insights-anonymous-user-token.js +7 -12
- package/cjs/helpers/highlight.js +10 -16
- package/cjs/helpers/index.js +17 -31
- package/cjs/helpers/insights.js +5 -17
- package/cjs/helpers/reverseHighlight.js +10 -16
- package/cjs/helpers/reverseSnippet.js +10 -16
- package/cjs/helpers/snippet.js +10 -16
- package/cjs/index.js +3 -18
- package/cjs/lib/InstantSearch.js +79 -180
- package/cjs/lib/createHelpers.js +4 -11
- package/cjs/lib/formatNumber.js +0 -1
- package/cjs/lib/infiniteHitsCache/index.js +0 -2
- package/cjs/lib/infiniteHitsCache/sessionStorage.js +9 -18
- package/cjs/lib/insights/client.js +8 -34
- package/cjs/lib/insights/index.js +7 -13
- package/cjs/lib/insights/listener.js +4 -20
- package/cjs/lib/routers/history.js +63 -102
- package/cjs/lib/routers/index.js +0 -2
- package/cjs/lib/stateMappings/index.js +0 -3
- package/cjs/lib/stateMappings/simple.js +6 -13
- package/cjs/lib/stateMappings/singleIndex.js +1 -7
- package/cjs/lib/suit.js +2 -5
- package/cjs/lib/templating/index.js +0 -4
- package/cjs/lib/templating/prepareTemplateProps.js +8 -19
- package/cjs/lib/templating/renderTemplate.js +9 -24
- package/cjs/lib/utils/capitalize.js +0 -1
- package/cjs/lib/utils/checkIndexUiState.js +15 -43
- package/cjs/lib/utils/checkRendering.js +0 -2
- package/cjs/lib/utils/clearRefinements.js +2 -9
- package/cjs/lib/utils/concatHighlightedParts.js +1 -3
- package/cjs/lib/utils/createConcurrentSafePromise.js +0 -3
- package/cjs/lib/utils/createSendEventForFacet.js +7 -14
- package/cjs/lib/utils/createSendEventForHits.js +9 -33
- package/cjs/lib/utils/debounce.js +0 -3
- package/cjs/lib/utils/defer.js +0 -11
- package/cjs/lib/utils/detect-insights-client.js +0 -2
- package/cjs/lib/utils/documentation.js +2 -5
- package/cjs/lib/utils/escape-highlight.js +5 -22
- package/cjs/lib/utils/escape-html.js +9 -7
- package/cjs/lib/utils/escapeFacetValue.js +1 -5
- package/cjs/lib/utils/find.js +2 -5
- package/cjs/lib/utils/findIndex.js +0 -3
- package/cjs/lib/utils/geo-search.js +14 -34
- package/cjs/lib/utils/getAppIdAndApiKey.js +2 -3
- package/cjs/lib/utils/getContainerNode.js +0 -6
- package/cjs/lib/utils/getHighlightFromSiblings.js +0 -6
- package/cjs/lib/utils/getHighlightedParts.js +1 -4
- package/cjs/lib/utils/getObjectType.js +0 -1
- package/cjs/lib/utils/getPropertyByPath.js +0 -1
- package/cjs/lib/utils/getRefinements.js +13 -26
- package/cjs/lib/utils/getWidgetAttribute.js +0 -6
- package/cjs/lib/utils/hits-absolute-position.js +2 -6
- package/cjs/lib/utils/hits-query-id.js +2 -7
- package/cjs/lib/utils/index.js +0 -92
- package/cjs/lib/utils/isDomElement.js +0 -1
- package/cjs/lib/utils/isEqual.js +0 -8
- package/cjs/lib/utils/isFacetRefined.js +0 -1
- package/cjs/lib/utils/isFiniteNumber.js +0 -1
- package/cjs/lib/utils/isIndexWidget.js +0 -1
- package/cjs/lib/utils/isPlainObject.js +3 -11
- package/cjs/lib/utils/isSpecialClick.js +0 -1
- package/cjs/lib/utils/logger.js +3 -13
- package/cjs/lib/utils/mergeSearchParameters.js +16 -40
- package/cjs/lib/utils/noop.js +0 -1
- package/cjs/lib/utils/range.js +8 -14
- package/cjs/lib/utils/render-args.js +0 -2
- package/cjs/lib/utils/resolveSearchParameters.js +0 -3
- package/cjs/lib/utils/reverseHighlightedParts.js +2 -8
- package/cjs/lib/utils/safelyRunOnBrowser.js +7 -9
- package/cjs/lib/utils/serializer.js +1 -3
- package/cjs/lib/utils/setIndexHelperState.js +0 -5
- package/cjs/lib/utils/toArray.js +0 -1
- package/cjs/lib/utils/typedObject.js +0 -1
- package/cjs/lib/utils/uniq.js +0 -1
- package/cjs/lib/version.js +1 -1
- package/cjs/lib/voiceSearchHelper/index.js +8 -36
- package/cjs/middlewares/createInsightsMiddleware.js +15 -44
- package/cjs/middlewares/createMetadataMiddleware.js +4 -12
- package/cjs/middlewares/createRouterMiddleware.js +8 -19
- package/cjs/middlewares/index.js +0 -6
- package/cjs/types/algoliasearch.js +0 -2
- package/cjs/types/index.js +0 -28
- package/cjs/widgets/analytics/analytics.js +12 -47
- package/cjs/widgets/answers/answers.js +19 -39
- package/cjs/widgets/breadcrumb/breadcrumb.js +18 -38
- package/cjs/widgets/clear-refinements/clear-refinements.js +15 -35
- package/cjs/widgets/configure/configure.js +2 -10
- package/cjs/widgets/configure-related-items/configure-related-items.js +2 -10
- package/cjs/widgets/current-refinements/current-refinements.js +12 -30
- package/cjs/widgets/dynamic-widgets/dynamic-widgets.js +6 -25
- package/cjs/widgets/geo-search/GeoSearchRenderer.js +41 -68
- package/cjs/widgets/geo-search/createHTMLMarker.js +30 -60
- package/cjs/widgets/geo-search/defaultTemplates.js +0 -3
- package/cjs/widgets/geo-search/geo-search.js +27 -59
- package/cjs/widgets/hierarchical-menu/defaultTemplates.js +4 -7
- package/cjs/widgets/hierarchical-menu/hierarchical-menu.js +28 -47
- package/cjs/widgets/hits/hits.js +16 -37
- package/cjs/widgets/hits-per-page/hits-per-page.js +13 -31
- package/cjs/widgets/index/index.js +49 -95
- package/cjs/widgets/index.js +12 -50
- package/cjs/widgets/infinite-hits/infinite-hits.js +23 -44
- package/cjs/widgets/menu/defaultTemplates.js +3 -6
- package/cjs/widgets/menu/menu.js +23 -43
- package/cjs/widgets/menu-select/defaultTemplates.js +1 -3
- package/cjs/widgets/menu-select/menu-select.js +18 -38
- package/cjs/widgets/numeric-menu/defaultTemplates.js +3 -4
- package/cjs/widgets/numeric-menu/numeric-menu.js +17 -37
- package/cjs/widgets/pagination/pagination.js +32 -53
- package/cjs/widgets/panel/panel.js +20 -48
- package/cjs/widgets/places/places.js +16 -33
- package/cjs/widgets/powered-by/powered-by.js +10 -27
- package/cjs/widgets/query-rule-context/query-rule-context.js +2 -13
- package/cjs/widgets/query-rule-custom-data/query-rule-custom-data.js +14 -32
- package/cjs/widgets/range-input/range-input.js +23 -50
- package/cjs/widgets/range-slider/range-slider.js +28 -53
- package/cjs/widgets/rating-menu/defaultTemplates.js +8 -14
- package/cjs/widgets/rating-menu/rating-menu.js +17 -38
- package/cjs/widgets/refinement-list/defaultTemplates.js +5 -8
- package/cjs/widgets/refinement-list/refinement-list.js +39 -60
- package/cjs/widgets/relevant-sort/relevant-sort.js +10 -29
- package/cjs/widgets/search-box/defaultTemplates.js +0 -5
- package/cjs/widgets/search-box/search-box.js +31 -49
- package/cjs/widgets/sort-by/sort-by.js +11 -29
- package/cjs/widgets/stats/defaultTemplates.js +0 -1
- package/cjs/widgets/stats/stats.js +27 -57
- package/cjs/widgets/toggle-refinement/toggle-refinement.js +16 -36
- package/cjs/widgets/voice-search/defaultTemplates.js +4 -14
- package/cjs/widgets/voice-search/voice-search.js +17 -36
- package/dist/instantsearch.development.d.ts +8 -6
- package/dist/instantsearch.development.js +1725 -3087
- package/dist/instantsearch.development.js.map +1 -1
- package/dist/instantsearch.production.d.ts +8 -6
- package/dist/instantsearch.production.min.d.ts +8 -6
- package/dist/instantsearch.production.min.js +2 -2
- package/dist/instantsearch.production.min.js.map +1 -1
- package/es/components/Answers/Answers.js +6 -11
- package/es/components/Breadcrumb/Breadcrumb.js +5 -7
- package/es/components/ClearRefinements/ClearRefinements.js +4 -6
- package/es/components/CurrentRefinements/CurrentRefinements.js +7 -10
- package/es/components/GeoSearchControls/GeoSearchButton.js +6 -6
- package/es/components/GeoSearchControls/GeoSearchControls.js +11 -13
- package/es/components/GeoSearchControls/GeoSearchToggle.js +6 -6
- package/es/components/Highlight/Highlight.js +3 -7
- package/es/components/Hits/Hits.js +8 -15
- package/es/components/InfiniteHits/InfiniteHits.js +13 -20
- package/es/components/MenuSelect/MenuSelect.js +9 -13
- package/es/components/Pagination/Pagination.js +12 -15
- package/es/components/Panel/Panel.js +7 -20
- package/es/components/PoweredBy/PoweredBy.js +6 -5
- package/es/components/QueryRuleCustomData/QueryRuleCustomData.js +4 -4
- package/es/components/RangeInput/RangeInput.js +16 -43
- package/es/components/RefinementList/RefinementList.js +19 -64
- package/es/components/RefinementList/RefinementListItem.js +8 -10
- package/es/components/RelevantSort/RelevantSort.js +6 -6
- package/es/components/ReverseHighlight/ReverseHighlight.js +3 -7
- package/es/components/ReverseSnippet/ReverseSnippet.js +3 -7
- package/es/components/SearchBox/SearchBox.js +25 -63
- package/es/components/Selector/Selector.js +5 -5
- package/es/components/Slider/Pit.js +3 -7
- package/es/components/Slider/Rheostat.js +64 -129
- package/es/components/Slider/Slider.js +28 -58
- package/es/components/Snippet/Snippet.js +3 -7
- package/es/components/Stats/Stats.js +7 -15
- package/es/components/Template/Template.js +8 -32
- package/es/components/ToggleRefinement/ToggleRefinement.js +4 -6
- package/es/components/VoiceSearch/VoiceSearch.js +10 -13
- package/es/connectors/answers/connectAnswers.js +21 -35
- package/es/connectors/autocomplete/connectAutocomplete.js +8 -23
- package/es/connectors/breadcrumb/connectBreadcrumb.js +17 -46
- package/es/connectors/clear-refinements/connectClearRefinements.js +27 -43
- package/es/connectors/configure/connectConfigure.js +7 -16
- package/es/connectors/configure-related-items/connectConfigureRelatedItems.js +11 -31
- package/es/connectors/current-refinements/connectCurrentRefinements.js +18 -55
- package/es/connectors/dynamic-widgets/connectDynamicWidgets.js +17 -35
- package/es/connectors/geo-search/connectGeoSearch.js +17 -45
- package/es/connectors/hierarchical-menu/connectHierarchicalMenu.js +38 -72
- package/es/connectors/hits/connectHits.js +10 -24
- package/es/connectors/hits-per-page/connectHitsPerPage.js +15 -36
- package/es/connectors/index.d.ts +2 -1
- package/es/connectors/index.js +6 -3
- package/es/connectors/infinite-hits/connectInfiniteHits.js +26 -60
- package/es/connectors/menu/connectMenu.js +28 -64
- package/es/connectors/numeric-menu/connectNumericMenu.js +24 -76
- package/es/connectors/pagination/Paginator.js +3 -19
- package/es/connectors/pagination/connectPagination.js +8 -21
- package/es/connectors/powered-by/connectPoweredBy.js +4 -11
- package/es/connectors/query-rules/connectQueryRules.js +32 -54
- package/es/connectors/range/connectRange.js +41 -99
- package/es/connectors/rating-menu/connectRatingMenu.js +23 -77
- package/es/connectors/refinement-list/connectRefinementList.js +37 -68
- package/es/connectors/relevant-sort/connectRelevantSort.js +4 -13
- package/es/connectors/search-box/connectSearchBox.js +7 -21
- package/es/connectors/sort-by/connectSortBy.js +11 -19
- package/es/connectors/stats/connectStats.js +4 -9
- package/es/connectors/toggle-refinement/connectToggleRefinement.js +29 -61
- package/es/connectors/voice-search/connectVoiceSearch.js +13 -31
- package/es/helpers/components/Highlight.js +4 -8
- package/es/helpers/components/ReverseHighlight.js +7 -15
- package/es/helpers/components/ReverseSnippet.js +7 -15
- package/es/helpers/components/Snippet.js +4 -8
- package/es/helpers/get-insights-anonymous-user-token.js +5 -7
- package/es/helpers/highlight.js +9 -11
- package/es/helpers/insights.js +3 -10
- package/es/helpers/reverseHighlight.js +9 -11
- package/es/helpers/reverseSnippet.js +9 -11
- package/es/helpers/snippet.js +9 -11
- package/es/index.js +0 -2
- package/es/lib/InstantSearch.js +79 -170
- package/es/lib/createHelpers.js +4 -8
- package/es/lib/infiniteHitsCache/sessionStorage.js +9 -16
- package/es/lib/insights/client.js +8 -32
- package/es/lib/insights/listener.js +6 -18
- package/es/lib/routers/history.js +63 -99
- package/es/lib/stateMappings/simple.js +6 -12
- package/es/lib/stateMappings/singleIndex.js +1 -6
- package/es/lib/suit.js +2 -3
- package/es/lib/templating/prepareTemplateProps.js +8 -18
- package/es/lib/templating/renderTemplate.js +9 -20
- package/es/lib/utils/checkIndexUiState.js +18 -40
- package/es/lib/utils/clearRefinements.js +2 -8
- package/es/lib/utils/concatHighlightedParts.js +1 -1
- package/es/lib/utils/createConcurrentSafePromise.js +0 -2
- package/es/lib/utils/createSendEventForFacet.js +7 -12
- package/es/lib/utils/createSendEventForHits.js +8 -30
- package/es/lib/utils/debounce.js +0 -2
- package/es/lib/utils/defer.js +0 -10
- package/es/lib/utils/documentation.js +2 -3
- package/es/lib/utils/escape-highlight.js +3 -16
- package/es/lib/utils/escape-html.js +9 -5
- package/es/lib/utils/escapeFacetValue.js +0 -2
- package/es/lib/utils/find.js +2 -4
- package/es/lib/utils/findIndex.js +0 -2
- package/es/lib/utils/geo-search.js +14 -32
- package/es/lib/utils/getAppIdAndApiKey.js +2 -2
- package/es/lib/utils/getContainerNode.js +1 -5
- package/es/lib/utils/getHighlightFromSiblings.js +0 -3
- package/es/lib/utils/getHighlightedParts.js +1 -2
- package/es/lib/utils/getRefinements.js +13 -24
- package/es/lib/utils/getWidgetAttribute.js +0 -5
- package/es/lib/utils/hits-absolute-position.js +2 -5
- package/es/lib/utils/hits-query-id.js +2 -6
- package/es/lib/utils/isEqual.js +0 -7
- package/es/lib/utils/isPlainObject.js +3 -10
- package/es/lib/utils/logger.js +2 -12
- package/es/lib/utils/mergeSearchParameters.js +16 -37
- package/es/lib/utils/range.js +8 -13
- package/es/lib/utils/resolveSearchParameters.js +0 -2
- package/es/lib/utils/reverseHighlightedParts.js +2 -6
- package/es/lib/utils/safelyRunOnBrowser.js +7 -8
- package/es/lib/utils/setIndexHelperState.js +0 -2
- package/es/lib/version.d.ts +1 -1
- package/es/lib/version.js +1 -1
- package/es/lib/voiceSearchHelper/index.js +8 -35
- package/es/middlewares/createInsightsMiddleware.js +15 -41
- package/es/middlewares/createMetadataMiddleware.js +3 -9
- package/es/middlewares/createRouterMiddleware.js +8 -13
- package/es/types/index.js +9 -5
- package/es/widgets/analytics/analytics.js +12 -45
- package/es/widgets/answers/answers.js +19 -28
- package/es/widgets/breadcrumb/breadcrumb.js +18 -27
- package/es/widgets/clear-refinements/clear-refinements.js +15 -24
- package/es/widgets/configure/configure.js +3 -6
- package/es/widgets/configure-related-items/configure-related-items.js +2 -7
- package/es/widgets/current-refinements/current-refinements.js +12 -21
- package/es/widgets/dynamic-widgets/dynamic-widgets.js +6 -20
- package/es/widgets/geo-search/GeoSearchRenderer.js +41 -63
- package/es/widgets/geo-search/createHTMLMarker.js +30 -59
- package/es/widgets/geo-search/defaultTemplates.js +2 -2
- package/es/widgets/geo-search/geo-search.js +27 -49
- package/es/widgets/hierarchical-menu/defaultTemplates.js +5 -4
- package/es/widgets/hierarchical-menu/hierarchical-menu.js +28 -36
- package/es/widgets/hits/hits.js +16 -25
- package/es/widgets/hits-per-page/hits-per-page.js +13 -22
- package/es/widgets/index/index.js +49 -91
- package/es/widgets/index.d.ts +2 -1
- package/es/widgets/index.js +4 -3
- package/es/widgets/infinite-hits/infinite-hits.js +23 -32
- package/es/widgets/menu/defaultTemplates.js +4 -3
- package/es/widgets/menu/menu.js +23 -32
- package/es/widgets/menu-select/defaultTemplates.js +1 -1
- package/es/widgets/menu-select/menu-select.js +18 -27
- package/es/widgets/numeric-menu/defaultTemplates.js +4 -3
- package/es/widgets/numeric-menu/numeric-menu.js +17 -26
- package/es/widgets/pagination/pagination.js +32 -44
- package/es/widgets/panel/panel.js +20 -40
- package/es/widgets/places/places.js +16 -32
- package/es/widgets/powered-by/powered-by.js +10 -18
- package/es/widgets/query-rule-context/query-rule-context.js +2 -9
- package/es/widgets/query-rule-custom-data/query-rule-custom-data.js +13 -22
- package/es/widgets/range-input/range-input.js +23 -40
- package/es/widgets/range-slider/range-slider.js +28 -44
- package/es/widgets/rating-menu/defaultTemplates.js +9 -12
- package/es/widgets/rating-menu/rating-menu.js +17 -27
- package/es/widgets/refinement-list/defaultTemplates.js +6 -5
- package/es/widgets/refinement-list/refinement-list.js +39 -48
- package/es/widgets/relevant-sort/relevant-sort.js +10 -19
- package/es/widgets/search-box/defaultTemplates.js +1 -4
- package/es/widgets/search-box/search-box.js +31 -39
- package/es/widgets/sort-by/sort-by.js +11 -20
- package/es/widgets/stats/stats.js +26 -45
- package/es/widgets/toggle-refinement/toggle-refinement.js +16 -25
- package/es/widgets/voice-search/defaultTemplates.js +5 -13
- package/es/widgets/voice-search/voice-search.js +17 -26
- package/package.json +20 -119
- package/scripts/transforms/__testfixtures__/addWidget-to-addWidgets/imported.input.js +0 -1
- package/scripts/transforms/__testfixtures__/addWidget-to-addWidgets/imported.output.js +0 -1
- package/CHANGELOG.md +0 -3684
|
@@ -4,25 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _index = require("../../lib/utils/index.js");
|
|
9
|
-
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
13
|
-
|
|
8
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
9
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
14
10
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
|
-
|
|
16
11
|
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; }
|
|
17
|
-
|
|
18
12
|
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; }
|
|
19
|
-
|
|
20
13
|
var withUsage = (0, _index.createDocumentationMessageGenerator)({
|
|
21
14
|
name: 'refinement-list',
|
|
22
15
|
connector: true
|
|
23
16
|
});
|
|
24
17
|
var DEFAULT_SORT = ['isRefined', 'count:desc', 'name:asc'];
|
|
25
|
-
|
|
26
18
|
/**
|
|
27
19
|
* **RefinementList** connector provides the logic to build a custom widget that
|
|
28
20
|
* will let the user filter the results based on the values of a specific facet.
|
|
@@ -40,83 +32,71 @@ var connectRefinementList = function connectRefinementList(renderFn) {
|
|
|
40
32
|
(0, _index.checkRendering)(renderFn, withUsage());
|
|
41
33
|
return function (widgetParams) {
|
|
42
34
|
var _ref = widgetParams || {},
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
35
|
+
attribute = _ref.attribute,
|
|
36
|
+
_ref$operator = _ref.operator,
|
|
37
|
+
operator = _ref$operator === void 0 ? 'or' : _ref$operator,
|
|
38
|
+
_ref$limit = _ref.limit,
|
|
39
|
+
limit = _ref$limit === void 0 ? 10 : _ref$limit,
|
|
40
|
+
_ref$showMore = _ref.showMore,
|
|
41
|
+
showMore = _ref$showMore === void 0 ? false : _ref$showMore,
|
|
42
|
+
_ref$showMoreLimit = _ref.showMoreLimit,
|
|
43
|
+
showMoreLimit = _ref$showMoreLimit === void 0 ? 20 : _ref$showMoreLimit,
|
|
44
|
+
_ref$sortBy = _ref.sortBy,
|
|
45
|
+
sortBy = _ref$sortBy === void 0 ? DEFAULT_SORT : _ref$sortBy,
|
|
46
|
+
_ref$escapeFacetValue = _ref.escapeFacetValues,
|
|
47
|
+
escapeFacetValues = _ref$escapeFacetValue === void 0 ? true : _ref$escapeFacetValue,
|
|
48
|
+
_ref$transformItems = _ref.transformItems,
|
|
49
|
+
transformItems = _ref$transformItems === void 0 ? function (items) {
|
|
50
|
+
return items;
|
|
51
|
+
} : _ref$transformItems;
|
|
61
52
|
if (!attribute) {
|
|
62
53
|
throw new Error(withUsage('The `attribute` option is required.'));
|
|
63
54
|
}
|
|
64
|
-
|
|
65
55
|
if (!/^(and|or)$/.test(operator)) {
|
|
66
56
|
throw new Error(withUsage("The `operator` must one of: `\"and\"`, `\"or\"` (got \"".concat(operator, "\").")));
|
|
67
57
|
}
|
|
68
|
-
|
|
69
58
|
if (showMore === true && showMoreLimit <= limit) {
|
|
70
59
|
throw new Error(withUsage('`showMoreLimit` should be greater than `limit`.'));
|
|
71
60
|
}
|
|
72
|
-
|
|
73
61
|
var formatItems = function formatItems(_ref2) {
|
|
74
62
|
var label = _ref2.name,
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
63
|
+
value = _ref2.escapedValue,
|
|
64
|
+
item = _objectWithoutProperties(_ref2, ["name", "escapedValue"]);
|
|
78
65
|
return _objectSpread(_objectSpread({}, item), {}, {
|
|
79
66
|
value: value,
|
|
80
67
|
label: label,
|
|
81
68
|
highlighted: label
|
|
82
69
|
});
|
|
83
70
|
};
|
|
84
|
-
|
|
85
71
|
var lastResultsFromMainSearch;
|
|
86
72
|
var lastItemsFromMainSearch = [];
|
|
87
73
|
var hasExhaustiveItems = true;
|
|
88
74
|
var triggerRefine;
|
|
89
75
|
var sendEvent;
|
|
90
|
-
var isShowingMore = false;
|
|
76
|
+
var isShowingMore = false;
|
|
77
|
+
// Provide the same function to the `renderFn` so that way the user
|
|
91
78
|
// has to only bind it once when `isFirstRendering` for instance
|
|
92
|
-
|
|
93
79
|
var toggleShowMore = function toggleShowMore() {};
|
|
94
|
-
|
|
95
80
|
function cachedToggleShowMore() {
|
|
96
81
|
toggleShowMore();
|
|
97
82
|
}
|
|
98
|
-
|
|
99
83
|
function createToggleShowMore(renderOptions, widget) {
|
|
100
84
|
return function () {
|
|
101
85
|
isShowingMore = !isShowingMore;
|
|
102
86
|
widget.render(renderOptions);
|
|
103
87
|
};
|
|
104
88
|
}
|
|
105
|
-
|
|
106
89
|
function getLimit() {
|
|
107
90
|
return isShowingMore ? showMoreLimit : limit;
|
|
108
91
|
}
|
|
109
|
-
|
|
110
92
|
var searchForFacetValues = function searchForFacetValues() {
|
|
111
93
|
return function () {};
|
|
112
94
|
};
|
|
113
|
-
|
|
114
95
|
var createSearchForFacetValues = function createSearchForFacetValues(helper, widget) {
|
|
115
96
|
return function (renderOptions) {
|
|
116
97
|
return function (query) {
|
|
117
98
|
var instantSearchInstance = renderOptions.instantSearchInstance,
|
|
118
|
-
|
|
119
|
-
|
|
99
|
+
searchResults = renderOptions.results;
|
|
120
100
|
if (query === '' && lastItemsFromMainSearch) {
|
|
121
101
|
// render with previous data from the helper.
|
|
122
102
|
renderFn(_objectSpread(_objectSpread({}, widget.getWidgetRenderState(_objectSpread(_objectSpread({}, renderOptions), {}, {
|
|
@@ -129,16 +109,16 @@ var connectRefinementList = function connectRefinementList(renderFn) {
|
|
|
129
109
|
highlightPreTag: escapeFacetValues ? _index.TAG_PLACEHOLDER.highlightPreTag : _index.TAG_REPLACEMENT.highlightPreTag,
|
|
130
110
|
highlightPostTag: escapeFacetValues ? _index.TAG_PLACEHOLDER.highlightPostTag : _index.TAG_REPLACEMENT.highlightPostTag
|
|
131
111
|
};
|
|
132
|
-
helper.searchForFacetValues(attribute, query,
|
|
112
|
+
helper.searchForFacetValues(attribute, query,
|
|
113
|
+
// We cap the `maxFacetHits` value to 100 because the Algolia API
|
|
133
114
|
// doesn't support a greater number.
|
|
134
115
|
// See https://www.algolia.com/doc/api-reference/api-parameters/maxFacetHits/
|
|
135
116
|
Math.min(getLimit(), 100), tags).then(function (results) {
|
|
136
117
|
var facetValues = escapeFacetValues ? (0, _index.escapeFacets)(results.facetHits) : results.facetHits;
|
|
137
118
|
var normalizedFacetValues = transformItems(facetValues.map(function (_ref3) {
|
|
138
119
|
var escapedValue = _ref3.escapedValue,
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
120
|
+
value = _ref3.value,
|
|
121
|
+
item = _objectWithoutProperties(_ref3, ["escapedValue", "value"]);
|
|
142
122
|
return _objectSpread(_objectSpread({}, item), {}, {
|
|
143
123
|
value: escapedValue,
|
|
144
124
|
label: value
|
|
@@ -160,7 +140,6 @@ var connectRefinementList = function connectRefinementList(renderFn) {
|
|
|
160
140
|
};
|
|
161
141
|
};
|
|
162
142
|
};
|
|
163
|
-
|
|
164
143
|
return {
|
|
165
144
|
$$type: 'ais.refinementList',
|
|
166
145
|
init: function init(initOptions) {
|
|
@@ -180,13 +159,12 @@ var connectRefinementList = function connectRefinementList(renderFn) {
|
|
|
180
159
|
},
|
|
181
160
|
getWidgetRenderState: function getWidgetRenderState(renderOptions) {
|
|
182
161
|
var results = renderOptions.results,
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
162
|
+
state = renderOptions.state,
|
|
163
|
+
_createURL = renderOptions.createURL,
|
|
164
|
+
instantSearchInstance = renderOptions.instantSearchInstance,
|
|
165
|
+
helper = renderOptions.helper;
|
|
187
166
|
var items = [];
|
|
188
167
|
var facetValues = [];
|
|
189
|
-
|
|
190
168
|
if (!sendEvent || !triggerRefine || !searchForFacetValues) {
|
|
191
169
|
sendEvent = (0, _index.createSendEventForFacet)({
|
|
192
170
|
instantSearchInstance: instantSearchInstance,
|
|
@@ -194,15 +172,12 @@ var connectRefinementList = function connectRefinementList(renderFn) {
|
|
|
194
172
|
attribute: attribute,
|
|
195
173
|
widgetType: this.$$type
|
|
196
174
|
});
|
|
197
|
-
|
|
198
175
|
triggerRefine = function triggerRefine(facetValue) {
|
|
199
176
|
sendEvent('click', facetValue);
|
|
200
177
|
helper.toggleFacetRefinement(attribute, facetValue).search();
|
|
201
178
|
};
|
|
202
|
-
|
|
203
179
|
searchForFacetValues = createSearchForFacetValues(helper, this);
|
|
204
180
|
}
|
|
205
|
-
|
|
206
181
|
if (results) {
|
|
207
182
|
var values = results.getFacetValues(attribute, {
|
|
208
183
|
sortBy: sortBy,
|
|
@@ -213,24 +188,23 @@ var connectRefinementList = function connectRefinementList(renderFn) {
|
|
|
213
188
|
results: results
|
|
214
189
|
});
|
|
215
190
|
var maxValuesPerFacetConfig = state.maxValuesPerFacet;
|
|
216
|
-
var currentLimit = getLimit();
|
|
191
|
+
var currentLimit = getLimit();
|
|
192
|
+
// If the limit is the max number of facet retrieved it is impossible to know
|
|
217
193
|
// if the facets are exhaustive. The only moment we are sure it is exhaustive
|
|
218
194
|
// is when it is strictly under the number requested unless we know that another
|
|
219
195
|
// widget has requested more values (maxValuesPerFacet > getLimit()).
|
|
220
196
|
// Because this is used for making the search of facets unable or not, it is important
|
|
221
197
|
// to be conservative here.
|
|
222
|
-
|
|
223
198
|
hasExhaustiveItems = maxValuesPerFacetConfig > currentLimit ? facetValues.length <= currentLimit : facetValues.length < currentLimit;
|
|
224
199
|
lastResultsFromMainSearch = results;
|
|
225
200
|
lastItemsFromMainSearch = items;
|
|
226
|
-
|
|
227
201
|
if (renderOptions.results) {
|
|
228
202
|
toggleShowMore = createToggleShowMore(renderOptions, this);
|
|
229
203
|
}
|
|
230
|
-
}
|
|
231
|
-
// function
|
|
232
|
-
|
|
204
|
+
}
|
|
233
205
|
|
|
206
|
+
// Do not mistake searchForFacetValues and searchFacetValues which is the actual search
|
|
207
|
+
// function
|
|
234
208
|
var searchFacetValues = searchForFacetValues && searchForFacetValues(renderOptions);
|
|
235
209
|
var canShowLess = isShowingMore && lastItemsFromMainSearch.length > limit;
|
|
236
210
|
var canShowMore = showMore && !hasExhaustiveItems;
|
|
@@ -256,21 +230,17 @@ var connectRefinementList = function connectRefinementList(renderFn) {
|
|
|
256
230
|
var state = _ref4.state;
|
|
257
231
|
unmountFn();
|
|
258
232
|
var withoutMaxValuesPerFacet = state.setQueryParameter('maxValuesPerFacet', undefined);
|
|
259
|
-
|
|
260
233
|
if (operator === 'and') {
|
|
261
234
|
return withoutMaxValuesPerFacet.removeFacet(attribute);
|
|
262
235
|
}
|
|
263
|
-
|
|
264
236
|
return withoutMaxValuesPerFacet.removeDisjunctiveFacet(attribute);
|
|
265
237
|
},
|
|
266
238
|
getWidgetUiState: function getWidgetUiState(uiState, _ref5) {
|
|
267
239
|
var searchParameters = _ref5.searchParameters;
|
|
268
240
|
var values = operator === 'or' ? searchParameters.getDisjunctiveRefinements(attribute) : searchParameters.getConjunctiveRefinements(attribute);
|
|
269
|
-
|
|
270
241
|
if (!values.length) {
|
|
271
242
|
return uiState;
|
|
272
243
|
}
|
|
273
|
-
|
|
274
244
|
return _objectSpread(_objectSpread({}, uiState), {}, {
|
|
275
245
|
refinementList: _objectSpread(_objectSpread({}, uiState.refinementList), {}, _defineProperty({}, attribute, values))
|
|
276
246
|
});
|
|
@@ -284,12 +254,10 @@ var connectRefinementList = function connectRefinementList(renderFn) {
|
|
|
284
254
|
var currentMaxValuesPerFacet = withFacetConfiguration.maxValuesPerFacet || 0;
|
|
285
255
|
var nextMaxValuesPerFacet = Math.max(currentMaxValuesPerFacet, showMore ? showMoreLimit : limit);
|
|
286
256
|
var withMaxValuesPerFacet = withFacetConfiguration.setQueryParameter('maxValuesPerFacet', nextMaxValuesPerFacet);
|
|
287
|
-
|
|
288
257
|
if (!values) {
|
|
289
258
|
var key = isDisjunctive ? 'disjunctiveFacetsRefinements' : 'facetsRefinements';
|
|
290
259
|
return withMaxValuesPerFacet.setQueryParameters(_defineProperty({}, key, _objectSpread(_objectSpread({}, withMaxValuesPerFacet[key]), {}, _defineProperty({}, attribute, []))));
|
|
291
260
|
}
|
|
292
|
-
|
|
293
261
|
return values.reduce(function (parameters, value) {
|
|
294
262
|
return isDisjunctive ? parameters.addDisjunctiveFacetRefinement(attribute, value) : parameters.addFacetRefinement(attribute, value);
|
|
295
263
|
}, withMaxValuesPerFacet);
|
|
@@ -297,6 +265,5 @@ var connectRefinementList = function connectRefinementList(renderFn) {
|
|
|
297
265
|
};
|
|
298
266
|
};
|
|
299
267
|
};
|
|
300
|
-
|
|
301
268
|
var _default = connectRefinementList;
|
|
302
269
|
exports.default = _default;
|
|
@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _index = require("../../lib/utils/index.js");
|
|
9
|
-
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
13
|
-
|
|
8
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
9
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
14
10
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
|
-
|
|
16
11
|
var connectRelevantSort = function connectRelevantSort() {
|
|
17
12
|
var renderFn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _index.noop;
|
|
18
13
|
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _index.noop;
|
|
@@ -44,17 +39,14 @@ var connectRelevantSort = function connectRelevantSort() {
|
|
|
44
39
|
},
|
|
45
40
|
getWidgetRenderState: function getWidgetRenderState(_ref2) {
|
|
46
41
|
var results = _ref2.results,
|
|
47
|
-
|
|
48
|
-
|
|
42
|
+
helper = _ref2.helper;
|
|
49
43
|
if (!connectorState.refine) {
|
|
50
44
|
connectorState.refine = function (relevancyStrictness) {
|
|
51
45
|
helper.setQueryParameter('relevancyStrictness', relevancyStrictness).search();
|
|
52
46
|
};
|
|
53
47
|
}
|
|
54
|
-
|
|
55
48
|
var _ref3 = results || {},
|
|
56
|
-
|
|
57
|
-
|
|
49
|
+
appliedRelevancyStrictness = _ref3.appliedRelevancyStrictness;
|
|
58
50
|
var isVirtualReplica = appliedRelevancyStrictness !== undefined;
|
|
59
51
|
return {
|
|
60
52
|
isRelevantSorted: typeof appliedRelevancyStrictness !== 'undefined' && appliedRelevancyStrictness > 0,
|
|
@@ -66,7 +58,6 @@ var connectRelevantSort = function connectRelevantSort() {
|
|
|
66
58
|
},
|
|
67
59
|
getWidgetSearchParameters: function getWidgetSearchParameters(state, _ref4) {
|
|
68
60
|
var _uiState$relevantSort;
|
|
69
|
-
|
|
70
61
|
var uiState = _ref4.uiState;
|
|
71
62
|
return state.setQueryParameter('relevancyStrictness', (_uiState$relevantSort = uiState.relevantSort) !== null && _uiState$relevantSort !== void 0 ? _uiState$relevantSort : state.relevancyStrictness);
|
|
72
63
|
},
|
|
@@ -79,6 +70,5 @@ var connectRelevantSort = function connectRelevantSort() {
|
|
|
79
70
|
};
|
|
80
71
|
};
|
|
81
72
|
};
|
|
82
|
-
|
|
83
73
|
var _default = connectRelevantSort;
|
|
84
74
|
exports.default = _default;
|
|
@@ -4,43 +4,33 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _index = require("../../lib/utils/index.js");
|
|
9
|
-
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
13
|
-
|
|
8
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
9
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
14
10
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
|
-
|
|
16
11
|
var withUsage = (0, _index.createDocumentationMessageGenerator)({
|
|
17
12
|
name: 'search-box',
|
|
18
13
|
connector: true
|
|
19
14
|
});
|
|
20
|
-
|
|
21
15
|
var defaultQueryHook = function defaultQueryHook(query, hook) {
|
|
22
16
|
return hook(query);
|
|
23
17
|
};
|
|
18
|
+
|
|
24
19
|
/**
|
|
25
20
|
* **SearchBox** connector provides the logic to build a widget that will let the user search for a query.
|
|
26
21
|
*
|
|
27
22
|
* The connector provides to the rendering: `refine()` to set the query. The behaviour of this function
|
|
28
23
|
* may be impacted by the `queryHook` widget parameter.
|
|
29
24
|
*/
|
|
30
|
-
|
|
31
|
-
|
|
32
25
|
var connectSearchBox = function connectSearchBox(renderFn) {
|
|
33
26
|
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _index.noop;
|
|
34
27
|
(0, _index.checkRendering)(renderFn, withUsage());
|
|
35
28
|
return function (widgetParams) {
|
|
36
29
|
var _ref = widgetParams || {},
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
30
|
+
_ref$queryHook = _ref.queryHook,
|
|
31
|
+
queryHook = _ref$queryHook === void 0 ? defaultQueryHook : _ref$queryHook;
|
|
40
32
|
var _refine;
|
|
41
|
-
|
|
42
33
|
var _clear;
|
|
43
|
-
|
|
44
34
|
return {
|
|
45
35
|
$$type: 'ais.searchBox',
|
|
46
36
|
init: function init(initOptions) {
|
|
@@ -67,21 +57,18 @@ var connectSearchBox = function connectSearchBox(renderFn) {
|
|
|
67
57
|
},
|
|
68
58
|
getWidgetRenderState: function getWidgetRenderState(_ref3) {
|
|
69
59
|
var helper = _ref3.helper,
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
60
|
+
searchMetadata = _ref3.searchMetadata,
|
|
61
|
+
state = _ref3.state;
|
|
73
62
|
if (!_refine) {
|
|
74
63
|
_refine = function _refine(query) {
|
|
75
64
|
queryHook(query, function (q) {
|
|
76
65
|
return helper.setQuery(q).search();
|
|
77
66
|
});
|
|
78
67
|
};
|
|
79
|
-
|
|
80
68
|
_clear = function _clear() {
|
|
81
69
|
helper.setQuery('').search();
|
|
82
70
|
};
|
|
83
71
|
}
|
|
84
|
-
|
|
85
72
|
return {
|
|
86
73
|
query: state.query || '',
|
|
87
74
|
refine: _refine,
|
|
@@ -93,11 +80,9 @@ var connectSearchBox = function connectSearchBox(renderFn) {
|
|
|
93
80
|
getWidgetUiState: function getWidgetUiState(uiState, _ref4) {
|
|
94
81
|
var searchParameters = _ref4.searchParameters;
|
|
95
82
|
var query = searchParameters.query || '';
|
|
96
|
-
|
|
97
83
|
if (query === '' || uiState && uiState.query === query) {
|
|
98
84
|
return uiState;
|
|
99
85
|
}
|
|
100
|
-
|
|
101
86
|
return _objectSpread(_objectSpread({}, uiState), {}, {
|
|
102
87
|
query: query
|
|
103
88
|
});
|
|
@@ -109,6 +94,5 @@ var connectSearchBox = function connectSearchBox(renderFn) {
|
|
|
109
94
|
};
|
|
110
95
|
};
|
|
111
96
|
};
|
|
112
|
-
|
|
113
97
|
var _default = connectSearchBox;
|
|
114
98
|
exports.default = _default;
|
|
@@ -4,19 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _index = require("../../lib/utils/index.js");
|
|
9
|
-
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
13
|
-
|
|
8
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
9
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
14
10
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
|
-
|
|
16
11
|
var withUsage = (0, _index.createDocumentationMessageGenerator)({
|
|
17
12
|
name: 'sort-by',
|
|
18
13
|
connector: true
|
|
19
14
|
});
|
|
15
|
+
|
|
20
16
|
/**
|
|
21
17
|
* The **SortBy** connector provides the logic to build a custom widget that will display a
|
|
22
18
|
* list of indices. With Algolia, this is most commonly used for changing ranking strategy. This allows
|
|
@@ -29,16 +25,14 @@ var connectSortBy = function connectSortBy(renderFn) {
|
|
|
29
25
|
var connectorState = {};
|
|
30
26
|
return function (widgetParams) {
|
|
31
27
|
var _ref = widgetParams || {},
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
28
|
+
items = _ref.items,
|
|
29
|
+
_ref$transformItems = _ref.transformItems,
|
|
30
|
+
transformItems = _ref$transformItems === void 0 ? function (x) {
|
|
31
|
+
return x;
|
|
32
|
+
} : _ref$transformItems;
|
|
38
33
|
if (!Array.isArray(items)) {
|
|
39
34
|
throw new Error(withUsage('The `items` option expects an array of objects.'));
|
|
40
35
|
}
|
|
41
|
-
|
|
42
36
|
return {
|
|
43
37
|
$$type: 'ais.sortBy',
|
|
44
38
|
init: function init(initOptions) {
|
|
@@ -71,20 +65,17 @@ var connectSortBy = function connectSortBy(renderFn) {
|
|
|
71
65
|
},
|
|
72
66
|
getWidgetRenderState: function getWidgetRenderState(_ref3) {
|
|
73
67
|
var results = _ref3.results,
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
68
|
+
helper = _ref3.helper,
|
|
69
|
+
state = _ref3.state,
|
|
70
|
+
parent = _ref3.parent;
|
|
78
71
|
if (!connectorState.initialIndex && parent) {
|
|
79
72
|
connectorState.initialIndex = parent.getIndexName();
|
|
80
73
|
}
|
|
81
|
-
|
|
82
74
|
if (!connectorState.setIndex) {
|
|
83
75
|
connectorState.setIndex = function (indexName) {
|
|
84
76
|
helper.setIndex(indexName).search();
|
|
85
77
|
};
|
|
86
78
|
}
|
|
87
|
-
|
|
88
79
|
var hasNoResults = results ? results.nbHits === 0 : true;
|
|
89
80
|
return {
|
|
90
81
|
currentRefinement: state.index,
|
|
@@ -111,6 +102,5 @@ var connectSortBy = function connectSortBy(renderFn) {
|
|
|
111
102
|
};
|
|
112
103
|
};
|
|
113
104
|
};
|
|
114
|
-
|
|
115
105
|
var _default = connectSortBy;
|
|
116
106
|
exports.default = _default;
|
|
@@ -4,19 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _index = require("../../lib/utils/index.js");
|
|
9
|
-
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
13
|
-
|
|
8
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
9
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
14
10
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
|
-
|
|
16
11
|
var withUsage = (0, _index.createDocumentationMessageGenerator)({
|
|
17
12
|
name: 'stats',
|
|
18
13
|
connector: true
|
|
19
14
|
});
|
|
15
|
+
|
|
20
16
|
/**
|
|
21
17
|
* **Stats** connector provides the logic to build a custom widget that will displays
|
|
22
18
|
* search statistics (hits number and processing time).
|
|
@@ -50,8 +46,7 @@ var connectStats = function connectStats(renderFn) {
|
|
|
50
46
|
},
|
|
51
47
|
getWidgetRenderState: function getWidgetRenderState(_ref) {
|
|
52
48
|
var results = _ref.results,
|
|
53
|
-
|
|
54
|
-
|
|
49
|
+
state = _ref.state;
|
|
55
50
|
if (!results) {
|
|
56
51
|
return {
|
|
57
52
|
hitsPerPage: state.hitsPerPage,
|
|
@@ -65,7 +60,6 @@ var connectStats = function connectStats(renderFn) {
|
|
|
65
60
|
widgetParams: widgetParams
|
|
66
61
|
};
|
|
67
62
|
}
|
|
68
|
-
|
|
69
63
|
return {
|
|
70
64
|
hitsPerPage: results.hitsPerPage,
|
|
71
65
|
nbHits: results.nbHits,
|
|
@@ -81,6 +75,5 @@ var connectStats = function connectStats(renderFn) {
|
|
|
81
75
|
};
|
|
82
76
|
};
|
|
83
77
|
};
|
|
84
|
-
|
|
85
78
|
var _default = connectStats;
|
|
86
79
|
exports.default = _default;
|