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,57 +1,44 @@
|
|
|
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); }
|
|
1
2
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
2
|
-
|
|
3
3
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
-
|
|
5
4
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
|
-
|
|
7
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
|
8
|
-
|
|
5
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
9
6
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
10
|
-
|
|
11
|
-
function
|
|
12
|
-
|
|
13
|
-
function
|
|
14
|
-
|
|
15
|
-
function
|
|
16
|
-
|
|
17
|
-
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; }
|
|
18
|
-
|
|
7
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
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; }
|
|
10
|
+
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; }
|
|
11
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
12
|
+
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); }
|
|
19
13
|
import { checkRendering, warning, createDocumentationMessageGenerator, noop } from "../../lib/utils/index.js";
|
|
20
14
|
var withUsage = createDocumentationMessageGenerator({
|
|
21
15
|
name: 'hits-per-page',
|
|
22
16
|
connector: true
|
|
23
17
|
});
|
|
24
|
-
|
|
25
18
|
var connectHitsPerPage = function connectHitsPerPage(renderFn) {
|
|
26
19
|
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
|
|
27
20
|
checkRendering(renderFn, withUsage());
|
|
28
21
|
return function (widgetParams) {
|
|
29
22
|
var _ref = widgetParams || {},
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
23
|
+
userItems = _ref.items,
|
|
24
|
+
_ref$transformItems = _ref.transformItems,
|
|
25
|
+
transformItems = _ref$transformItems === void 0 ? function (items) {
|
|
26
|
+
return items;
|
|
27
|
+
} : _ref$transformItems;
|
|
36
28
|
if (!Array.isArray(userItems)) {
|
|
37
29
|
throw new Error(withUsage('The `items` option expects an array of objects.'));
|
|
38
30
|
}
|
|
39
|
-
|
|
40
31
|
var items = userItems;
|
|
41
32
|
var defaultItems = items.filter(function (item) {
|
|
42
33
|
return item.default === true;
|
|
43
34
|
});
|
|
44
|
-
|
|
45
35
|
if (defaultItems.length === 0) {
|
|
46
36
|
throw new Error(withUsage("A default value must be specified in `items`."));
|
|
47
37
|
}
|
|
48
|
-
|
|
49
38
|
if (defaultItems.length > 1) {
|
|
50
39
|
throw new Error(withUsage('More than one default value is specified in `items`.'));
|
|
51
40
|
}
|
|
52
|
-
|
|
53
41
|
var defaultItem = defaultItems[0];
|
|
54
|
-
|
|
55
42
|
var normalizeItems = function normalizeItems(_ref2) {
|
|
56
43
|
var hitsPerPage = _ref2.hitsPerPage;
|
|
57
44
|
return items.map(function (item) {
|
|
@@ -60,7 +47,6 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
|
|
|
60
47
|
});
|
|
61
48
|
});
|
|
62
49
|
};
|
|
63
|
-
|
|
64
50
|
var connectorState = {
|
|
65
51
|
getRefine: function getRefine(helper) {
|
|
66
52
|
return function (value) {
|
|
@@ -69,7 +55,7 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
|
|
|
69
55
|
},
|
|
70
56
|
createURLFactory: function createURLFactory(_ref3) {
|
|
71
57
|
var state = _ref3.state,
|
|
72
|
-
|
|
58
|
+
createURL = _ref3.createURL;
|
|
73
59
|
return function (value) {
|
|
74
60
|
return createURL(state.resetPage().setQueryParameter('hitsPerPage', !value && value !== 0 ? undefined : value));
|
|
75
61
|
};
|
|
@@ -79,21 +65,20 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
|
|
|
79
65
|
$$type: 'ais.hitsPerPage',
|
|
80
66
|
init: function init(initOptions) {
|
|
81
67
|
var state = initOptions.state,
|
|
82
|
-
|
|
68
|
+
instantSearchInstance = initOptions.instantSearchInstance;
|
|
83
69
|
var isCurrentInOptions = items.some(function (item) {
|
|
84
70
|
return Number(state.hitsPerPage) === Number(item.value);
|
|
85
71
|
});
|
|
86
|
-
|
|
87
72
|
if (!isCurrentInOptions) {
|
|
88
73
|
process.env.NODE_ENV === 'development' ? warning(state.hitsPerPage !== undefined, "\n`hitsPerPage` is not defined.\nThe option `hitsPerPage` needs to be set using the `configure` widget.\n\nLearn more: https://www.algolia.com/doc/api-reference/widgets/hits-per-page/js/\n ") : void 0;
|
|
89
74
|
process.env.NODE_ENV === 'development' ? warning(false, "\nThe `items` option of `hitsPerPage` does not contain the \"hits per page\" value coming from the state: ".concat(state.hitsPerPage, ".\n\nYou may want to add another entry to the `items` option with this value.")) : void 0;
|
|
90
|
-
items = [
|
|
75
|
+
items = [
|
|
76
|
+
// The helper will convert the empty string to `undefined`.
|
|
91
77
|
{
|
|
92
78
|
value: '',
|
|
93
79
|
label: ''
|
|
94
80
|
}].concat(_toConsumableArray(items));
|
|
95
81
|
}
|
|
96
|
-
|
|
97
82
|
renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {
|
|
98
83
|
instantSearchInstance: instantSearchInstance
|
|
99
84
|
}), true);
|
|
@@ -116,9 +101,9 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
|
|
|
116
101
|
},
|
|
117
102
|
getWidgetRenderState: function getWidgetRenderState(_ref5) {
|
|
118
103
|
var state = _ref5.state,
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
104
|
+
results = _ref5.results,
|
|
105
|
+
createURL = _ref5.createURL,
|
|
106
|
+
helper = _ref5.helper;
|
|
122
107
|
var canRefine = results ? results.nbHits > 0 : false;
|
|
123
108
|
return {
|
|
124
109
|
items: transformItems(normalizeItems(state), {
|
|
@@ -137,11 +122,9 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
|
|
|
137
122
|
getWidgetUiState: function getWidgetUiState(uiState, _ref6) {
|
|
138
123
|
var searchParameters = _ref6.searchParameters;
|
|
139
124
|
var hitsPerPage = searchParameters.hitsPerPage;
|
|
140
|
-
|
|
141
125
|
if (hitsPerPage === undefined || hitsPerPage === defaultItem.value) {
|
|
142
126
|
return uiState;
|
|
143
127
|
}
|
|
144
|
-
|
|
145
128
|
return _objectSpread(_objectSpread({}, uiState), {}, {
|
|
146
129
|
hitsPerPage: hitsPerPage
|
|
147
130
|
});
|
|
@@ -155,5 +138,4 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
|
|
|
155
138
|
};
|
|
156
139
|
};
|
|
157
140
|
};
|
|
158
|
-
|
|
159
141
|
export default connectHitsPerPage;
|
package/es/connectors/index.d.ts
CHANGED
|
@@ -24,7 +24,8 @@ export { default as EXPERIMENTAL_connectConfigureRelatedItems } from './configur
|
|
|
24
24
|
export { default as connectAutocomplete } from './autocomplete/connectAutocomplete';
|
|
25
25
|
export { default as connectQueryRules } from './query-rules/connectQueryRules';
|
|
26
26
|
export { default as connectVoiceSearch } from './voice-search/connectVoiceSearch';
|
|
27
|
-
|
|
27
|
+
/** @deprecated answers is no longer supported */
|
|
28
|
+
export declare const EXPERIMENTAL_connectAnswers: import("./answers/connectAnswers").AnswersConnector;
|
|
28
29
|
export { default as connectRelevantSort } from './relevant-sort/connectRelevantSort';
|
|
29
30
|
import connectDynamicWidgets from './dynamic-widgets/connectDynamicWidgets';
|
|
30
31
|
export { connectDynamicWidgets };
|
package/es/connectors/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { deprecate } from "../lib/utils/index.js";
|
|
1
2
|
export { default as connectClearRefinements } from "./clear-refinements/connectClearRefinements.js";
|
|
2
3
|
export { default as connectCurrentRefinements } from "./current-refinements/connectCurrentRefinements.js";
|
|
3
4
|
export { default as connectHierarchicalMenu } from "./hierarchical-menu/connectHierarchicalMenu.js";
|
|
@@ -24,11 +25,13 @@ export { default as EXPERIMENTAL_connectConfigureRelatedItems } from "./configur
|
|
|
24
25
|
export { default as connectAutocomplete } from "./autocomplete/connectAutocomplete.js";
|
|
25
26
|
export { default as connectQueryRules } from "./query-rules/connectQueryRules.js";
|
|
26
27
|
export { default as connectVoiceSearch } from "./voice-search/connectVoiceSearch.js";
|
|
27
|
-
|
|
28
|
+
import connectAnswers from "./answers/connectAnswers.js";
|
|
29
|
+
|
|
30
|
+
/** @deprecated answers is no longer supported */
|
|
31
|
+
export var EXPERIMENTAL_connectAnswers = deprecate(connectAnswers, 'answers is no longer supported');
|
|
28
32
|
export { default as connectRelevantSort } from "./relevant-sort/connectRelevantSort.js";
|
|
29
33
|
import connectDynamicWidgets from "./dynamic-widgets/connectDynamicWidgets.js";
|
|
30
34
|
export { connectDynamicWidgets };
|
|
31
|
-
import { deprecate } from "../lib/utils/index.js";
|
|
32
|
-
/** @deprecated use connectDynamicWidgets */
|
|
33
35
|
|
|
36
|
+
/** @deprecated use connectDynamicWidgets */
|
|
34
37
|
export var EXPERIMENTAL_connectDynamicWidgets = deprecate(connectDynamicWidgets, 'use connectDynamicWidgets');
|
|
@@ -1,39 +1,29 @@
|
|
|
1
|
-
function
|
|
2
|
-
|
|
3
|
-
function
|
|
4
|
-
|
|
5
|
-
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; }
|
|
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 = ["page"];
|
|
3
|
+
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; }
|
|
4
|
+
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; }
|
|
5
|
+
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; }
|
|
6
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
7
|
+
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
8
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
8
|
-
|
|
9
9
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
10
|
-
|
|
11
10
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
12
|
-
|
|
13
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
|
14
|
-
|
|
11
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
15
12
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
16
|
-
|
|
17
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
18
|
-
|
|
13
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
19
14
|
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; }
|
|
20
|
-
|
|
21
15
|
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; }
|
|
22
|
-
|
|
23
16
|
import { escapeHits, TAG_PLACEHOLDER, checkRendering, createDocumentationMessageGenerator, isEqual, addAbsolutePosition, addQueryID, noop, createSendEventForHits, createBindEventForHits } from "../../lib/utils/index.js";
|
|
24
17
|
var withUsage = createDocumentationMessageGenerator({
|
|
25
18
|
name: 'infinite-hits',
|
|
26
19
|
connector: true
|
|
27
20
|
});
|
|
28
|
-
|
|
29
21
|
function getStateWithoutPage(state) {
|
|
30
22
|
var _ref = state || {},
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
23
|
+
page = _ref.page,
|
|
24
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
34
25
|
return rest;
|
|
35
26
|
}
|
|
36
|
-
|
|
37
27
|
function getInMemoryCache() {
|
|
38
28
|
var cachedHits = null;
|
|
39
29
|
var cachedState = null;
|
|
@@ -44,13 +34,12 @@ function getInMemoryCache() {
|
|
|
44
34
|
},
|
|
45
35
|
write: function write(_ref3) {
|
|
46
36
|
var state = _ref3.state,
|
|
47
|
-
|
|
37
|
+
hits = _ref3.hits;
|
|
48
38
|
cachedState = getStateWithoutPage(state);
|
|
49
39
|
cachedHits = hits;
|
|
50
40
|
}
|
|
51
41
|
};
|
|
52
42
|
}
|
|
53
|
-
|
|
54
43
|
function extractHitsFromCachedHits(cachedHits) {
|
|
55
44
|
return Object.keys(cachedHits).map(Number).sort(function (a, b) {
|
|
56
45
|
return a - b;
|
|
@@ -58,51 +47,46 @@ function extractHitsFromCachedHits(cachedHits) {
|
|
|
58
47
|
return acc.concat(cachedHits[page]);
|
|
59
48
|
}, []);
|
|
60
49
|
}
|
|
61
|
-
|
|
62
50
|
var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
63
51
|
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
|
|
64
|
-
checkRendering(renderFn, withUsage());
|
|
52
|
+
checkRendering(renderFn, withUsage());
|
|
53
|
+
|
|
54
|
+
// @TODO: this should be a generic, but a Connector can not yet be generic itself
|
|
65
55
|
|
|
66
56
|
return function (widgetParams) {
|
|
67
57
|
var _ref4 = widgetParams || {},
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
58
|
+
_ref4$escapeHTML = _ref4.escapeHTML,
|
|
59
|
+
escapeHTML = _ref4$escapeHTML === void 0 ? true : _ref4$escapeHTML,
|
|
60
|
+
_ref4$transformItems = _ref4.transformItems,
|
|
61
|
+
transformItems = _ref4$transformItems === void 0 ? function (items) {
|
|
62
|
+
return items;
|
|
63
|
+
} : _ref4$transformItems,
|
|
64
|
+
_ref4$cache = _ref4.cache,
|
|
65
|
+
cache = _ref4$cache === void 0 ? getInMemoryCache() : _ref4$cache;
|
|
77
66
|
var showPrevious;
|
|
78
67
|
var showMore;
|
|
79
68
|
var sendEvent;
|
|
80
69
|
var bindEvent;
|
|
81
|
-
|
|
82
70
|
var getFirstReceivedPage = function getFirstReceivedPage(state, cachedHits) {
|
|
83
71
|
var _state$page = state.page,
|
|
84
|
-
|
|
72
|
+
page = _state$page === void 0 ? 0 : _state$page;
|
|
85
73
|
var pages = Object.keys(cachedHits).map(Number);
|
|
86
|
-
|
|
87
74
|
if (pages.length === 0) {
|
|
88
75
|
return page;
|
|
89
76
|
} else {
|
|
90
77
|
return Math.min.apply(Math, [page].concat(_toConsumableArray(pages)));
|
|
91
78
|
}
|
|
92
79
|
};
|
|
93
|
-
|
|
94
80
|
var getLastReceivedPage = function getLastReceivedPage(state, cachedHits) {
|
|
95
81
|
var _state$page2 = state.page,
|
|
96
|
-
|
|
82
|
+
page = _state$page2 === void 0 ? 0 : _state$page2;
|
|
97
83
|
var pages = Object.keys(cachedHits).map(Number);
|
|
98
|
-
|
|
99
84
|
if (pages.length === 0) {
|
|
100
85
|
return page;
|
|
101
86
|
} else {
|
|
102
87
|
return Math.max.apply(Math, [page].concat(_toConsumableArray(pages)));
|
|
103
88
|
}
|
|
104
89
|
};
|
|
105
|
-
|
|
106
90
|
var getShowPrevious = function getShowPrevious(helper) {
|
|
107
91
|
return function () {
|
|
108
92
|
// Using the helper's `overrideStateWithoutTriggeringChangeEvent` method
|
|
@@ -114,7 +98,6 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
114
98
|
})).searchWithoutTriggeringOnStateChange();
|
|
115
99
|
};
|
|
116
100
|
};
|
|
117
|
-
|
|
118
101
|
var getShowMore = function getShowMore(helper) {
|
|
119
102
|
return function () {
|
|
120
103
|
helper.setPage(getLastReceivedPage(helper.state, cache.read({
|
|
@@ -122,7 +105,6 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
122
105
|
}) || {}) + 1).search();
|
|
123
106
|
};
|
|
124
107
|
};
|
|
125
|
-
|
|
126
108
|
return {
|
|
127
109
|
$$type: 'ais.infiniteHits',
|
|
128
110
|
init: function init(initOptions) {
|
|
@@ -145,15 +127,14 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
145
127
|
},
|
|
146
128
|
getWidgetRenderState: function getWidgetRenderState(_ref5) {
|
|
147
129
|
var results = _ref5.results,
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
130
|
+
helper = _ref5.helper,
|
|
131
|
+
state = _ref5.state,
|
|
132
|
+
instantSearchInstance = _ref5.instantSearchInstance;
|
|
151
133
|
var isFirstPage;
|
|
152
134
|
var currentPageHits = [];
|
|
153
135
|
var cachedHits = cache.read({
|
|
154
136
|
state: state
|
|
155
137
|
}) || {};
|
|
156
|
-
|
|
157
138
|
if (!results) {
|
|
158
139
|
showPrevious = getShowPrevious(helper);
|
|
159
140
|
showMore = getShowMore(helper);
|
|
@@ -169,18 +150,15 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
169
150
|
isFirstPage = state.page === undefined || getFirstReceivedPage(state, cachedHits) === 0;
|
|
170
151
|
} else {
|
|
171
152
|
var _state$page3 = state.page,
|
|
172
|
-
|
|
173
|
-
|
|
153
|
+
_page = _state$page3 === void 0 ? 0 : _state$page3;
|
|
174
154
|
if (escapeHTML && results.hits.length > 0) {
|
|
175
155
|
results.hits = escapeHits(results.hits);
|
|
176
156
|
}
|
|
177
|
-
|
|
178
157
|
var hitsWithAbsolutePosition = addAbsolutePosition(results.hits, results.page, results.hitsPerPage);
|
|
179
158
|
var hitsWithAbsolutePositionAndQueryID = addQueryID(hitsWithAbsolutePosition, results.queryID);
|
|
180
159
|
var transformedHits = transformItems(hitsWithAbsolutePositionAndQueryID, {
|
|
181
160
|
results: results
|
|
182
161
|
});
|
|
183
|
-
|
|
184
162
|
if (cachedHits[_page] === undefined && !results.__isArtificial) {
|
|
185
163
|
cachedHits[_page] = transformedHits;
|
|
186
164
|
cache.write({
|
|
@@ -188,11 +166,9 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
188
166
|
hits: cachedHits
|
|
189
167
|
});
|
|
190
168
|
}
|
|
191
|
-
|
|
192
169
|
currentPageHits = transformedHits;
|
|
193
170
|
isFirstPage = getFirstReceivedPage(state, cachedHits) === 0;
|
|
194
171
|
}
|
|
195
|
-
|
|
196
172
|
var hits = extractHitsFromCachedHits(cachedHits);
|
|
197
173
|
var isLastPage = results ? results.nbPages <= getLastReceivedPage(state, cachedHits) + 1 : true;
|
|
198
174
|
return {
|
|
@@ -212,11 +188,9 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
212
188
|
var state = _ref6.state;
|
|
213
189
|
unmountFn();
|
|
214
190
|
var stateWithoutPage = state.setQueryParameter('page', undefined);
|
|
215
|
-
|
|
216
191
|
if (!escapeHTML) {
|
|
217
192
|
return stateWithoutPage;
|
|
218
193
|
}
|
|
219
|
-
|
|
220
194
|
return stateWithoutPage.setQueryParameters(Object.keys(TAG_PLACEHOLDER).reduce(function (acc, key) {
|
|
221
195
|
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));
|
|
222
196
|
}, {}));
|
|
@@ -224,13 +198,11 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
224
198
|
getWidgetUiState: function getWidgetUiState(uiState, _ref7) {
|
|
225
199
|
var searchParameters = _ref7.searchParameters;
|
|
226
200
|
var page = searchParameters.page || 0;
|
|
227
|
-
|
|
228
201
|
if (!page) {
|
|
229
202
|
// return without adding `page` to uiState
|
|
230
203
|
// because we don't want `page=1` in the URL
|
|
231
204
|
return uiState;
|
|
232
205
|
}
|
|
233
|
-
|
|
234
206
|
return _objectSpread(_objectSpread({}, uiState), {}, {
|
|
235
207
|
// The page in the UI state is incremented by one
|
|
236
208
|
// to expose the user value (not `0`).
|
|
@@ -240,18 +212,16 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
240
212
|
getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref8) {
|
|
241
213
|
var uiState = _ref8.uiState;
|
|
242
214
|
var widgetSearchParameters = searchParameters;
|
|
243
|
-
|
|
244
215
|
if (escapeHTML) {
|
|
245
216
|
widgetSearchParameters = searchParameters.setQueryParameters(TAG_PLACEHOLDER);
|
|
246
|
-
}
|
|
247
|
-
// to get to the actual parameter value from the UI state.
|
|
248
|
-
|
|
217
|
+
}
|
|
249
218
|
|
|
219
|
+
// The page in the search parameters is decremented by one
|
|
220
|
+
// to get to the actual parameter value from the UI state.
|
|
250
221
|
var page = uiState.page ? uiState.page - 1 : 0;
|
|
251
222
|
return widgetSearchParameters.setQueryParameter('page', page);
|
|
252
223
|
}
|
|
253
224
|
};
|
|
254
225
|
};
|
|
255
226
|
};
|
|
256
|
-
|
|
257
227
|
export default connectInfiniteHits;
|