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