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,40 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
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); }
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
function
|
|
13
|
-
|
|
14
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
|
-
|
|
8
|
+
var _utils = require("../../lib/utils");
|
|
9
|
+
var _excluded = ["name", "escapedValue", "data", "path"];
|
|
10
|
+
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; }
|
|
11
|
+
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; }
|
|
12
|
+
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; }
|
|
13
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
14
|
+
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); }
|
|
16
15
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
17
|
-
|
|
18
16
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
19
|
-
|
|
20
17
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
21
|
-
|
|
22
18
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
23
|
-
|
|
24
19
|
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); }
|
|
25
|
-
|
|
26
|
-
function
|
|
27
|
-
|
|
28
|
-
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
29
|
-
|
|
20
|
+
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; }
|
|
21
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
30
22
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
31
|
-
|
|
32
|
-
var withUsage = (0, _index.createDocumentationMessageGenerator)({
|
|
23
|
+
var withUsage = (0, _utils.createDocumentationMessageGenerator)({
|
|
33
24
|
name: 'hierarchical-menu',
|
|
34
25
|
connector: true
|
|
35
26
|
});
|
|
36
27
|
var DEFAULT_SORT = ['name:asc'];
|
|
37
|
-
|
|
38
28
|
/**
|
|
39
29
|
* **HierarchicalMenu** connector provides the logic to build a custom widget
|
|
40
30
|
* that will give the user the ability to explore facets in a tree-like structure.
|
|
@@ -49,90 +39,77 @@ var DEFAULT_SORT = ['name:asc'];
|
|
|
49
39
|
* @return {function(CustomHierarchicalMenuWidgetParams)} Re-usable widget factory for a custom **HierarchicalMenu** widget.
|
|
50
40
|
*/
|
|
51
41
|
var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
|
|
52
|
-
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] :
|
|
53
|
-
(0,
|
|
42
|
+
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
|
|
43
|
+
(0, _utils.checkRendering)(renderFn, withUsage());
|
|
54
44
|
return function (widgetParams) {
|
|
55
45
|
var _ref = widgetParams || {},
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
46
|
+
attributes = _ref.attributes,
|
|
47
|
+
_ref$separator = _ref.separator,
|
|
48
|
+
separator = _ref$separator === void 0 ? ' > ' : _ref$separator,
|
|
49
|
+
_ref$rootPath = _ref.rootPath,
|
|
50
|
+
rootPath = _ref$rootPath === void 0 ? null : _ref$rootPath,
|
|
51
|
+
_ref$showParentLevel = _ref.showParentLevel,
|
|
52
|
+
showParentLevel = _ref$showParentLevel === void 0 ? true : _ref$showParentLevel,
|
|
53
|
+
_ref$limit = _ref.limit,
|
|
54
|
+
limit = _ref$limit === void 0 ? 10 : _ref$limit,
|
|
55
|
+
_ref$showMore = _ref.showMore,
|
|
56
|
+
showMore = _ref$showMore === void 0 ? false : _ref$showMore,
|
|
57
|
+
_ref$showMoreLimit = _ref.showMoreLimit,
|
|
58
|
+
showMoreLimit = _ref$showMoreLimit === void 0 ? 20 : _ref$showMoreLimit,
|
|
59
|
+
_ref$sortBy = _ref.sortBy,
|
|
60
|
+
sortBy = _ref$sortBy === void 0 ? DEFAULT_SORT : _ref$sortBy,
|
|
61
|
+
_ref$transformItems = _ref.transformItems,
|
|
62
|
+
transformItems = _ref$transformItems === void 0 ? function (items) {
|
|
63
|
+
return items;
|
|
64
|
+
} : _ref$transformItems;
|
|
76
65
|
if (!attributes || !Array.isArray(attributes) || attributes.length === 0) {
|
|
77
66
|
throw new Error(withUsage('The `attributes` option expects an array of strings.'));
|
|
78
67
|
}
|
|
79
|
-
|
|
80
68
|
if (showMore === true && showMoreLimit <= limit) {
|
|
81
69
|
throw new Error(withUsage('The `showMoreLimit` option must be greater than `limit`.'));
|
|
82
70
|
}
|
|
83
|
-
|
|
84
71
|
// we need to provide a hierarchicalFacet name for the search state
|
|
85
72
|
// so that we can always map $hierarchicalFacetName => real attributes
|
|
86
73
|
// we use the first attribute name
|
|
87
74
|
var _attributes = _slicedToArray(attributes, 1),
|
|
88
|
-
|
|
75
|
+
hierarchicalFacetName = _attributes[0];
|
|
76
|
+
var sendEvent;
|
|
89
77
|
|
|
90
|
-
|
|
78
|
+
// Provide the same function to the `renderFn` so that way the user
|
|
91
79
|
// has to only bind it once when `isFirstRendering` for instance
|
|
92
|
-
|
|
93
80
|
var toggleShowMore = function toggleShowMore() {};
|
|
94
|
-
|
|
95
81
|
function cachedToggleShowMore() {
|
|
96
82
|
toggleShowMore();
|
|
97
83
|
}
|
|
98
|
-
|
|
99
84
|
var _refine;
|
|
100
|
-
|
|
101
85
|
var isShowingMore = false;
|
|
102
|
-
|
|
103
86
|
function createToggleShowMore(renderOptions, widget) {
|
|
104
87
|
return function () {
|
|
105
88
|
isShowingMore = !isShowingMore;
|
|
106
89
|
widget.render(renderOptions);
|
|
107
90
|
};
|
|
108
91
|
}
|
|
109
|
-
|
|
110
92
|
function getLimit() {
|
|
111
93
|
return isShowingMore ? showMoreLimit : limit;
|
|
112
94
|
}
|
|
113
|
-
|
|
114
95
|
function _prepareFacetValues(facetValues) {
|
|
115
96
|
return facetValues.slice(0, getLimit()).map(function (_ref2) {
|
|
116
97
|
var label = _ref2.name,
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
98
|
+
value = _ref2.escapedValue,
|
|
99
|
+
data = _ref2.data,
|
|
100
|
+
path = _ref2.path,
|
|
101
|
+
subValue = _objectWithoutProperties(_ref2, _excluded);
|
|
122
102
|
var item = _objectSpread(_objectSpread({}, subValue), {}, {
|
|
123
103
|
value: value,
|
|
124
104
|
label: label,
|
|
125
105
|
data: null
|
|
126
106
|
});
|
|
127
|
-
|
|
128
107
|
if (Array.isArray(data)) {
|
|
129
108
|
item.data = _prepareFacetValues(data);
|
|
130
109
|
}
|
|
131
|
-
|
|
132
110
|
return item;
|
|
133
111
|
});
|
|
134
112
|
}
|
|
135
|
-
|
|
136
113
|
return {
|
|
137
114
|
$$type: 'ais.hierarchicalMenu',
|
|
138
115
|
init: function init(initOptions) {
|
|
@@ -160,19 +137,19 @@ var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
|
|
|
160
137
|
},
|
|
161
138
|
getWidgetRenderState: function getWidgetRenderState(_ref4) {
|
|
162
139
|
var results = _ref4.results,
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
140
|
+
state = _ref4.state,
|
|
141
|
+
createURL = _ref4.createURL,
|
|
142
|
+
instantSearchInstance = _ref4.instantSearchInstance,
|
|
143
|
+
helper = _ref4.helper;
|
|
167
144
|
var items = [];
|
|
168
|
-
var canToggleShowMore = false;
|
|
145
|
+
var canToggleShowMore = false;
|
|
169
146
|
|
|
147
|
+
// Bind createURL to this specific attribute
|
|
170
148
|
function _createURL(facetValue) {
|
|
171
149
|
return createURL(state.resetPage().toggleFacetRefinement(hierarchicalFacetName, facetValue));
|
|
172
150
|
}
|
|
173
|
-
|
|
174
151
|
if (!sendEvent) {
|
|
175
|
-
sendEvent = (0,
|
|
152
|
+
sendEvent = (0, _utils.createSendEventForFacet)({
|
|
176
153
|
instantSearchInstance: instantSearchInstance,
|
|
177
154
|
helper: helper,
|
|
178
155
|
attribute: function attribute(facetValue) {
|
|
@@ -182,33 +159,31 @@ var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
|
|
|
182
159
|
widgetType: this.$$type
|
|
183
160
|
});
|
|
184
161
|
}
|
|
185
|
-
|
|
186
162
|
if (!_refine) {
|
|
187
163
|
_refine = function _refine(facetValue) {
|
|
188
164
|
sendEvent('click', facetValue);
|
|
189
165
|
helper.toggleFacetRefinement(hierarchicalFacetName, facetValue).search();
|
|
190
166
|
};
|
|
191
167
|
}
|
|
192
|
-
|
|
193
168
|
if (results) {
|
|
194
169
|
var facetValues = results.getFacetValues(hierarchicalFacetName, {
|
|
195
170
|
sortBy: sortBy,
|
|
196
171
|
facetOrdering: sortBy === DEFAULT_SORT
|
|
197
172
|
});
|
|
198
|
-
var facetItems = facetValues && !Array.isArray(facetValues) && facetValues.data ? facetValues.data : [];
|
|
173
|
+
var facetItems = facetValues && !Array.isArray(facetValues) && facetValues.data ? facetValues.data : [];
|
|
174
|
+
|
|
175
|
+
// If the limit is the max number of facet retrieved it is impossible to know
|
|
199
176
|
// if the facets are exhaustive. The only moment we are sure it is exhaustive
|
|
200
177
|
// is when it is strictly under the number requested unless we know that another
|
|
201
178
|
// widget has requested more values (maxValuesPerFacet > getLimit()).
|
|
202
179
|
// Because this is used for making the search of facets unable or not, it is important
|
|
203
180
|
// to be conservative here.
|
|
204
|
-
|
|
205
181
|
var hasExhaustiveItems = (state.maxValuesPerFacet || 0) > getLimit() ? facetItems.length <= getLimit() : facetItems.length < getLimit();
|
|
206
182
|
canToggleShowMore = showMore && (isShowingMore || !hasExhaustiveItems);
|
|
207
183
|
items = transformItems(_prepareFacetValues(facetItems), {
|
|
208
184
|
results: results
|
|
209
185
|
});
|
|
210
186
|
}
|
|
211
|
-
|
|
212
187
|
return {
|
|
213
188
|
items: items,
|
|
214
189
|
refine: _refine,
|
|
@@ -224,11 +199,9 @@ var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
|
|
|
224
199
|
getWidgetUiState: function getWidgetUiState(uiState, _ref5) {
|
|
225
200
|
var searchParameters = _ref5.searchParameters;
|
|
226
201
|
var path = searchParameters.getHierarchicalFacetBreadcrumb(hierarchicalFacetName);
|
|
227
|
-
|
|
228
202
|
if (!path.length) {
|
|
229
203
|
return uiState;
|
|
230
204
|
}
|
|
231
|
-
|
|
232
205
|
return _objectSpread(_objectSpread({}, uiState), {}, {
|
|
233
206
|
hierarchicalMenu: _objectSpread(_objectSpread({}, uiState.hierarchicalMenu), {}, _defineProperty({}, hierarchicalFacetName, path))
|
|
234
207
|
});
|
|
@@ -236,12 +209,10 @@ var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
|
|
|
236
209
|
getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref6) {
|
|
237
210
|
var uiState = _ref6.uiState;
|
|
238
211
|
var values = uiState.hierarchicalMenu && uiState.hierarchicalMenu[hierarchicalFacetName];
|
|
239
|
-
|
|
240
212
|
if (searchParameters.isHierarchicalFacet(hierarchicalFacetName)) {
|
|
241
213
|
var facet = searchParameters.getHierarchicalFacetByName(hierarchicalFacetName);
|
|
242
|
-
process.env.NODE_ENV === 'development' ? (0,
|
|
214
|
+
process.env.NODE_ENV === 'development' ? (0, _utils.warning)((0, _utils.isEqual)(facet.attributes, attributes) && facet.separator === separator && facet.rootPath === rootPath, 'Using Breadcrumb and HierarchicalMenu on the same facet with different options overrides the configuration of the HierarchicalMenu.') : void 0;
|
|
243
215
|
}
|
|
244
|
-
|
|
245
216
|
var withFacetConfiguration = searchParameters.removeHierarchicalFacet(hierarchicalFacetName).addHierarchicalFacet({
|
|
246
217
|
name: hierarchicalFacetName,
|
|
247
218
|
attributes: attributes,
|
|
@@ -252,18 +223,15 @@ var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
|
|
|
252
223
|
var currentMaxValuesPerFacet = withFacetConfiguration.maxValuesPerFacet || 0;
|
|
253
224
|
var nextMaxValuesPerFacet = Math.max(currentMaxValuesPerFacet, showMore ? showMoreLimit : limit);
|
|
254
225
|
var withMaxValuesPerFacet = withFacetConfiguration.setQueryParameter('maxValuesPerFacet', nextMaxValuesPerFacet);
|
|
255
|
-
|
|
256
226
|
if (!values) {
|
|
257
227
|
return withMaxValuesPerFacet.setQueryParameters({
|
|
258
228
|
hierarchicalFacetsRefinements: _objectSpread(_objectSpread({}, withMaxValuesPerFacet.hierarchicalFacetsRefinements), {}, _defineProperty({}, hierarchicalFacetName, []))
|
|
259
229
|
});
|
|
260
230
|
}
|
|
261
|
-
|
|
262
231
|
return withMaxValuesPerFacet.addHierarchicalFacetRefinement(hierarchicalFacetName, values.join(separator));
|
|
263
232
|
}
|
|
264
233
|
};
|
|
265
234
|
};
|
|
266
235
|
};
|
|
267
|
-
|
|
268
236
|
var _default = connectHierarchicalMenu;
|
|
269
237
|
exports.default = _default;
|
|
@@ -4,32 +4,28 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
function
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
var withUsage = (0, _index.createDocumentationMessageGenerator)({
|
|
7
|
+
var _utils = require("../../lib/utils");
|
|
8
|
+
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); }
|
|
9
|
+
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; }
|
|
10
|
+
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; }
|
|
11
|
+
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; }
|
|
12
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
13
|
+
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); }
|
|
14
|
+
var withUsage = (0, _utils.createDocumentationMessageGenerator)({
|
|
17
15
|
name: 'hits',
|
|
18
16
|
connector: true
|
|
19
17
|
});
|
|
20
|
-
|
|
21
18
|
var connectHits = function connectHits(renderFn) {
|
|
22
|
-
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] :
|
|
23
|
-
(0,
|
|
19
|
+
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
|
|
20
|
+
(0, _utils.checkRendering)(renderFn, withUsage());
|
|
24
21
|
return function (widgetParams) {
|
|
25
22
|
var _ref = widgetParams || {},
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
23
|
+
_ref$escapeHTML = _ref.escapeHTML,
|
|
24
|
+
escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML,
|
|
25
|
+
_ref$transformItems = _ref.transformItems,
|
|
26
|
+
transformItems = _ref$transformItems === void 0 ? function (items) {
|
|
27
|
+
return items;
|
|
28
|
+
} : _ref$transformItems;
|
|
33
29
|
var sendEvent;
|
|
34
30
|
var bindEvent;
|
|
35
31
|
return {
|
|
@@ -53,24 +49,21 @@ var connectHits = function connectHits(renderFn) {
|
|
|
53
49
|
},
|
|
54
50
|
getWidgetRenderState: function getWidgetRenderState(_ref2) {
|
|
55
51
|
var results = _ref2.results,
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
52
|
+
helper = _ref2.helper,
|
|
53
|
+
instantSearchInstance = _ref2.instantSearchInstance;
|
|
59
54
|
if (!sendEvent) {
|
|
60
|
-
sendEvent = (0,
|
|
55
|
+
sendEvent = (0, _utils.createSendEventForHits)({
|
|
61
56
|
instantSearchInstance: instantSearchInstance,
|
|
62
57
|
index: helper.getIndex(),
|
|
63
58
|
widgetType: this.$$type
|
|
64
59
|
});
|
|
65
60
|
}
|
|
66
|
-
|
|
67
61
|
if (!bindEvent) {
|
|
68
|
-
bindEvent = (0,
|
|
62
|
+
bindEvent = (0, _utils.createBindEventForHits)({
|
|
69
63
|
index: helper.getIndex(),
|
|
70
64
|
widgetType: this.$$type
|
|
71
65
|
});
|
|
72
66
|
}
|
|
73
|
-
|
|
74
67
|
if (!results) {
|
|
75
68
|
return {
|
|
76
69
|
hits: [],
|
|
@@ -80,13 +73,11 @@ var connectHits = function connectHits(renderFn) {
|
|
|
80
73
|
widgetParams: widgetParams
|
|
81
74
|
};
|
|
82
75
|
}
|
|
83
|
-
|
|
84
76
|
if (escapeHTML && results.hits.length > 0) {
|
|
85
|
-
results.hits = (0,
|
|
77
|
+
results.hits = (0, _utils.escapeHits)(results.hits);
|
|
86
78
|
}
|
|
87
|
-
|
|
88
|
-
var
|
|
89
|
-
var hitsWithAbsolutePositionAndQueryID = (0, _index.addQueryID)(hitsWithAbsolutePosition, results.queryID);
|
|
79
|
+
var hitsWithAbsolutePosition = (0, _utils.addAbsolutePosition)(results.hits, results.page, results.hitsPerPage);
|
|
80
|
+
var hitsWithAbsolutePositionAndQueryID = (0, _utils.addQueryID)(hitsWithAbsolutePosition, results.queryID);
|
|
90
81
|
var transformedHits = transformItems(hitsWithAbsolutePositionAndQueryID, {
|
|
91
82
|
results: results
|
|
92
83
|
});
|
|
@@ -101,12 +92,10 @@ var connectHits = function connectHits(renderFn) {
|
|
|
101
92
|
dispose: function dispose(_ref3) {
|
|
102
93
|
var state = _ref3.state;
|
|
103
94
|
unmountFn();
|
|
104
|
-
|
|
105
95
|
if (!escapeHTML) {
|
|
106
96
|
return state;
|
|
107
97
|
}
|
|
108
|
-
|
|
109
|
-
return state.setQueryParameters(Object.keys(_index.TAG_PLACEHOLDER).reduce(function (acc, key) {
|
|
98
|
+
return state.setQueryParameters(Object.keys(_utils.TAG_PLACEHOLDER).reduce(function (acc, key) {
|
|
110
99
|
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));
|
|
111
100
|
}, {}));
|
|
112
101
|
},
|
|
@@ -114,12 +103,10 @@ var connectHits = function connectHits(renderFn) {
|
|
|
114
103
|
if (!escapeHTML) {
|
|
115
104
|
return state;
|
|
116
105
|
}
|
|
117
|
-
|
|
118
|
-
return state.setQueryParameters(_index.TAG_PLACEHOLDER);
|
|
106
|
+
return state.setQueryParameters(_utils.TAG_PLACEHOLDER);
|
|
119
107
|
}
|
|
120
108
|
};
|
|
121
109
|
};
|
|
122
110
|
};
|
|
123
|
-
|
|
124
111
|
var _default = connectHits;
|
|
125
112
|
exports.default = _default;
|
|
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
var _connectHits = _interopRequireDefault(require("./connectHits.js"));
|
|
11
|
-
|
|
7
|
+
var _insights = require("../../lib/insights");
|
|
8
|
+
var _connectHits = _interopRequireDefault(require("./connectHits"));
|
|
12
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
var connectHitsWithInsights = (0, _index.withInsights)(_connectHits.default);
|
|
10
|
+
var connectHitsWithInsights = (0, _insights.withInsights)(_connectHits.default);
|
|
15
11
|
var _default = connectHitsWithInsights;
|
|
16
12
|
exports.default = _default;
|
|
@@ -4,62 +4,47 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
var _utils = require("../../lib/utils");
|
|
8
|
+
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); }
|
|
10
9
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
11
|
-
|
|
12
10
|
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."); }
|
|
13
|
-
|
|
14
11
|
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); }
|
|
15
|
-
|
|
16
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
|
17
|
-
|
|
12
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
18
13
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
19
|
-
|
|
20
|
-
function
|
|
21
|
-
|
|
22
|
-
function
|
|
23
|
-
|
|
24
|
-
function
|
|
25
|
-
|
|
26
|
-
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; }
|
|
27
|
-
|
|
28
|
-
var withUsage = (0, _index.createDocumentationMessageGenerator)({
|
|
14
|
+
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; }
|
|
15
|
+
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; }
|
|
16
|
+
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; }
|
|
17
|
+
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; }
|
|
18
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
19
|
+
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); }
|
|
20
|
+
var withUsage = (0, _utils.createDocumentationMessageGenerator)({
|
|
29
21
|
name: 'hits-per-page',
|
|
30
22
|
connector: true
|
|
31
23
|
});
|
|
32
|
-
|
|
33
24
|
var connectHitsPerPage = function connectHitsPerPage(renderFn) {
|
|
34
|
-
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] :
|
|
35
|
-
(0,
|
|
25
|
+
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
|
|
26
|
+
(0, _utils.checkRendering)(renderFn, withUsage());
|
|
36
27
|
return function (widgetParams) {
|
|
37
28
|
var _ref = widgetParams || {},
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
29
|
+
userItems = _ref.items,
|
|
30
|
+
_ref$transformItems = _ref.transformItems,
|
|
31
|
+
transformItems = _ref$transformItems === void 0 ? function (items) {
|
|
32
|
+
return items;
|
|
33
|
+
} : _ref$transformItems;
|
|
44
34
|
if (!Array.isArray(userItems)) {
|
|
45
35
|
throw new Error(withUsage('The `items` option expects an array of objects.'));
|
|
46
36
|
}
|
|
47
|
-
|
|
48
37
|
var items = userItems;
|
|
49
38
|
var defaultItems = items.filter(function (item) {
|
|
50
39
|
return item.default === true;
|
|
51
40
|
});
|
|
52
|
-
|
|
53
41
|
if (defaultItems.length === 0) {
|
|
54
42
|
throw new Error(withUsage("A default value must be specified in `items`."));
|
|
55
43
|
}
|
|
56
|
-
|
|
57
44
|
if (defaultItems.length > 1) {
|
|
58
45
|
throw new Error(withUsage('More than one default value is specified in `items`.'));
|
|
59
46
|
}
|
|
60
|
-
|
|
61
47
|
var defaultItem = defaultItems[0];
|
|
62
|
-
|
|
63
48
|
var normalizeItems = function normalizeItems(_ref2) {
|
|
64
49
|
var hitsPerPage = _ref2.hitsPerPage;
|
|
65
50
|
return items.map(function (item) {
|
|
@@ -68,7 +53,6 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
|
|
|
68
53
|
});
|
|
69
54
|
});
|
|
70
55
|
};
|
|
71
|
-
|
|
72
56
|
var connectorState = {
|
|
73
57
|
getRefine: function getRefine(helper) {
|
|
74
58
|
return function (value) {
|
|
@@ -77,7 +61,7 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
|
|
|
77
61
|
},
|
|
78
62
|
createURLFactory: function createURLFactory(_ref3) {
|
|
79
63
|
var state = _ref3.state,
|
|
80
|
-
|
|
64
|
+
createURL = _ref3.createURL;
|
|
81
65
|
return function (value) {
|
|
82
66
|
return createURL(state.resetPage().setQueryParameter('hitsPerPage', !value && value !== 0 ? undefined : value));
|
|
83
67
|
};
|
|
@@ -87,21 +71,20 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
|
|
|
87
71
|
$$type: 'ais.hitsPerPage',
|
|
88
72
|
init: function init(initOptions) {
|
|
89
73
|
var state = initOptions.state,
|
|
90
|
-
|
|
74
|
+
instantSearchInstance = initOptions.instantSearchInstance;
|
|
91
75
|
var isCurrentInOptions = items.some(function (item) {
|
|
92
76
|
return Number(state.hitsPerPage) === Number(item.value);
|
|
93
77
|
});
|
|
94
|
-
|
|
95
78
|
if (!isCurrentInOptions) {
|
|
96
|
-
process.env.NODE_ENV === 'development' ? (0,
|
|
97
|
-
process.env.NODE_ENV === 'development' ? (0,
|
|
98
|
-
items = [
|
|
79
|
+
process.env.NODE_ENV === 'development' ? (0, _utils.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;
|
|
80
|
+
process.env.NODE_ENV === 'development' ? (0, _utils.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;
|
|
81
|
+
items = [
|
|
82
|
+
// The helper will convert the empty string to `undefined`.
|
|
99
83
|
{
|
|
100
84
|
value: '',
|
|
101
85
|
label: ''
|
|
102
86
|
}].concat(_toConsumableArray(items));
|
|
103
87
|
}
|
|
104
|
-
|
|
105
88
|
renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {
|
|
106
89
|
instantSearchInstance: instantSearchInstance
|
|
107
90
|
}), true);
|
|
@@ -124,9 +107,9 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
|
|
|
124
107
|
},
|
|
125
108
|
getWidgetRenderState: function getWidgetRenderState(_ref5) {
|
|
126
109
|
var state = _ref5.state,
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
110
|
+
results = _ref5.results,
|
|
111
|
+
createURL = _ref5.createURL,
|
|
112
|
+
helper = _ref5.helper;
|
|
130
113
|
var canRefine = results ? results.nbHits > 0 : false;
|
|
131
114
|
return {
|
|
132
115
|
items: transformItems(normalizeItems(state), {
|
|
@@ -145,11 +128,9 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
|
|
|
145
128
|
getWidgetUiState: function getWidgetUiState(uiState, _ref6) {
|
|
146
129
|
var searchParameters = _ref6.searchParameters;
|
|
147
130
|
var hitsPerPage = searchParameters.hitsPerPage;
|
|
148
|
-
|
|
149
131
|
if (hitsPerPage === undefined || hitsPerPage === defaultItem.value) {
|
|
150
132
|
return uiState;
|
|
151
133
|
}
|
|
152
|
-
|
|
153
134
|
return _objectSpread(_objectSpread({}, uiState), {}, {
|
|
154
135
|
hitsPerPage: hitsPerPage
|
|
155
136
|
});
|
|
@@ -163,6 +144,5 @@ var connectHitsPerPage = function connectHitsPerPage(renderFn) {
|
|
|
163
144
|
};
|
|
164
145
|
};
|
|
165
146
|
};
|
|
166
|
-
|
|
167
147
|
var _default = connectHitsPerPage;
|
|
168
148
|
exports.default = _default;
|