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
|
@@ -4,18 +4,16 @@ 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
|
-
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
|
-
|
|
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); }
|
|
16
14
|
var connectRelevantSort = function connectRelevantSort() {
|
|
17
|
-
var renderFn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] :
|
|
18
|
-
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] :
|
|
15
|
+
var renderFn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _utils.noop;
|
|
16
|
+
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
|
|
19
17
|
return function (widgetParams) {
|
|
20
18
|
var connectorState = {};
|
|
21
19
|
return {
|
|
@@ -44,17 +42,14 @@ var connectRelevantSort = function connectRelevantSort() {
|
|
|
44
42
|
},
|
|
45
43
|
getWidgetRenderState: function getWidgetRenderState(_ref2) {
|
|
46
44
|
var results = _ref2.results,
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
helper = _ref2.helper;
|
|
49
46
|
if (!connectorState.refine) {
|
|
50
47
|
connectorState.refine = function (relevancyStrictness) {
|
|
51
48
|
helper.setQueryParameter('relevancyStrictness', relevancyStrictness).search();
|
|
52
49
|
};
|
|
53
50
|
}
|
|
54
|
-
|
|
55
51
|
var _ref3 = results || {},
|
|
56
|
-
|
|
57
|
-
|
|
52
|
+
appliedRelevancyStrictness = _ref3.appliedRelevancyStrictness;
|
|
58
53
|
var isVirtualReplica = appliedRelevancyStrictness !== undefined;
|
|
59
54
|
return {
|
|
60
55
|
isRelevantSorted: typeof appliedRelevancyStrictness !== 'undefined' && appliedRelevancyStrictness > 0,
|
|
@@ -66,7 +61,6 @@ var connectRelevantSort = function connectRelevantSort() {
|
|
|
66
61
|
},
|
|
67
62
|
getWidgetSearchParameters: function getWidgetSearchParameters(state, _ref4) {
|
|
68
63
|
var _uiState$relevantSort;
|
|
69
|
-
|
|
70
64
|
var uiState = _ref4.uiState;
|
|
71
65
|
return state.setQueryParameter('relevancyStrictness', (_uiState$relevantSort = uiState.relevantSort) !== null && _uiState$relevantSort !== void 0 ? _uiState$relevantSort : state.relevancyStrictness);
|
|
72
66
|
},
|
|
@@ -79,6 +73,5 @@ var connectRelevantSort = function connectRelevantSort() {
|
|
|
79
73
|
};
|
|
80
74
|
};
|
|
81
75
|
};
|
|
82
|
-
|
|
83
76
|
var _default = connectRelevantSort;
|
|
84
77
|
exports.default = _default;
|
|
@@ -4,43 +4,36 @@ 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: 'search-box',
|
|
18
16
|
connector: true
|
|
19
17
|
});
|
|
20
|
-
|
|
21
18
|
var defaultQueryHook = function defaultQueryHook(query, hook) {
|
|
22
19
|
return hook(query);
|
|
23
20
|
};
|
|
21
|
+
|
|
24
22
|
/**
|
|
25
23
|
* **SearchBox** connector provides the logic to build a widget that will let the user search for a query.
|
|
26
24
|
*
|
|
27
25
|
* The connector provides to the rendering: `refine()` to set the query. The behaviour of this function
|
|
28
26
|
* may be impacted by the `queryHook` widget parameter.
|
|
29
27
|
*/
|
|
30
|
-
|
|
31
|
-
|
|
32
28
|
var connectSearchBox = function connectSearchBox(renderFn) {
|
|
33
|
-
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] :
|
|
34
|
-
(0,
|
|
29
|
+
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
|
|
30
|
+
(0, _utils.checkRendering)(renderFn, withUsage());
|
|
35
31
|
return function (widgetParams) {
|
|
36
32
|
var _ref = widgetParams || {},
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
33
|
+
_ref$queryHook = _ref.queryHook,
|
|
34
|
+
queryHook = _ref$queryHook === void 0 ? defaultQueryHook : _ref$queryHook;
|
|
40
35
|
var _refine;
|
|
41
|
-
|
|
42
36
|
var _clear;
|
|
43
|
-
|
|
44
37
|
return {
|
|
45
38
|
$$type: 'ais.searchBox',
|
|
46
39
|
init: function init(initOptions) {
|
|
@@ -67,21 +60,18 @@ var connectSearchBox = function connectSearchBox(renderFn) {
|
|
|
67
60
|
},
|
|
68
61
|
getWidgetRenderState: function getWidgetRenderState(_ref3) {
|
|
69
62
|
var helper = _ref3.helper,
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
63
|
+
searchMetadata = _ref3.searchMetadata,
|
|
64
|
+
state = _ref3.state;
|
|
73
65
|
if (!_refine) {
|
|
74
66
|
_refine = function _refine(query) {
|
|
75
67
|
queryHook(query, function (q) {
|
|
76
68
|
return helper.setQuery(q).search();
|
|
77
69
|
});
|
|
78
70
|
};
|
|
79
|
-
|
|
80
71
|
_clear = function _clear() {
|
|
81
72
|
helper.setQuery('').search();
|
|
82
73
|
};
|
|
83
74
|
}
|
|
84
|
-
|
|
85
75
|
return {
|
|
86
76
|
query: state.query || '',
|
|
87
77
|
refine: _refine,
|
|
@@ -93,11 +83,9 @@ var connectSearchBox = function connectSearchBox(renderFn) {
|
|
|
93
83
|
getWidgetUiState: function getWidgetUiState(uiState, _ref4) {
|
|
94
84
|
var searchParameters = _ref4.searchParameters;
|
|
95
85
|
var query = searchParameters.query || '';
|
|
96
|
-
|
|
97
86
|
if (query === '' || uiState && uiState.query === query) {
|
|
98
87
|
return uiState;
|
|
99
88
|
}
|
|
100
|
-
|
|
101
89
|
return _objectSpread(_objectSpread({}, uiState), {}, {
|
|
102
90
|
query: query
|
|
103
91
|
});
|
|
@@ -109,6 +97,5 @@ var connectSearchBox = function connectSearchBox(renderFn) {
|
|
|
109
97
|
};
|
|
110
98
|
};
|
|
111
99
|
};
|
|
112
|
-
|
|
113
100
|
var _default = connectSearchBox;
|
|
114
101
|
exports.default = _default;
|
|
@@ -4,19 +4,18 @@ 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: 'sort-by',
|
|
18
16
|
connector: true
|
|
19
17
|
});
|
|
18
|
+
|
|
20
19
|
/**
|
|
21
20
|
* The **SortBy** connector provides the logic to build a custom widget that will display a
|
|
22
21
|
* list of indices. With Algolia, this is most commonly used for changing ranking strategy. This allows
|
|
@@ -24,31 +23,29 @@ var withUsage = (0, _index.createDocumentationMessageGenerator)({
|
|
|
24
23
|
*/
|
|
25
24
|
|
|
26
25
|
var connectSortBy = function connectSortBy(renderFn) {
|
|
27
|
-
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] :
|
|
28
|
-
(0,
|
|
26
|
+
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
|
|
27
|
+
(0, _utils.checkRendering)(renderFn, withUsage());
|
|
29
28
|
var connectorState = {};
|
|
30
29
|
return function (widgetParams) {
|
|
31
30
|
var _ref = widgetParams || {},
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
31
|
+
items = _ref.items,
|
|
32
|
+
_ref$transformItems = _ref.transformItems,
|
|
33
|
+
transformItems = _ref$transformItems === void 0 ? function (x) {
|
|
34
|
+
return x;
|
|
35
|
+
} : _ref$transformItems;
|
|
38
36
|
if (!Array.isArray(items)) {
|
|
39
37
|
throw new Error(withUsage('The `items` option expects an array of objects.'));
|
|
40
38
|
}
|
|
41
|
-
|
|
42
39
|
return {
|
|
43
40
|
$$type: 'ais.sortBy',
|
|
44
41
|
init: function init(initOptions) {
|
|
45
42
|
var instantSearchInstance = initOptions.instantSearchInstance;
|
|
46
43
|
var widgetRenderState = this.getWidgetRenderState(initOptions);
|
|
47
44
|
var currentIndex = widgetRenderState.currentRefinement;
|
|
48
|
-
var isCurrentIndexInItems = (0,
|
|
45
|
+
var isCurrentIndexInItems = (0, _utils.find)(items, function (item) {
|
|
49
46
|
return item.value === currentIndex;
|
|
50
47
|
});
|
|
51
|
-
process.env.NODE_ENV === 'development' ? (0,
|
|
48
|
+
process.env.NODE_ENV === 'development' ? (0, _utils.warning)(isCurrentIndexInItems !== undefined, "The index named \"".concat(currentIndex, "\" is not listed in the `items` of `sortBy`.")) : void 0;
|
|
52
49
|
renderFn(_objectSpread(_objectSpread({}, widgetRenderState), {}, {
|
|
53
50
|
instantSearchInstance: instantSearchInstance
|
|
54
51
|
}), true);
|
|
@@ -71,20 +68,17 @@ var connectSortBy = function connectSortBy(renderFn) {
|
|
|
71
68
|
},
|
|
72
69
|
getWidgetRenderState: function getWidgetRenderState(_ref3) {
|
|
73
70
|
var results = _ref3.results,
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
71
|
+
helper = _ref3.helper,
|
|
72
|
+
state = _ref3.state,
|
|
73
|
+
parent = _ref3.parent;
|
|
78
74
|
if (!connectorState.initialIndex && parent) {
|
|
79
75
|
connectorState.initialIndex = parent.getIndexName();
|
|
80
76
|
}
|
|
81
|
-
|
|
82
77
|
if (!connectorState.setIndex) {
|
|
83
78
|
connectorState.setIndex = function (indexName) {
|
|
84
79
|
helper.setIndex(indexName).search();
|
|
85
80
|
};
|
|
86
81
|
}
|
|
87
|
-
|
|
88
82
|
var hasNoResults = results ? results.nbHits === 0 : true;
|
|
89
83
|
return {
|
|
90
84
|
currentRefinement: state.index,
|
|
@@ -111,6 +105,5 @@ var connectSortBy = function connectSortBy(renderFn) {
|
|
|
111
105
|
};
|
|
112
106
|
};
|
|
113
107
|
};
|
|
114
|
-
|
|
115
108
|
var _default = connectSortBy;
|
|
116
109
|
exports.default = _default;
|
|
@@ -4,27 +4,26 @@ 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: 'stats',
|
|
18
16
|
connector: true
|
|
19
17
|
});
|
|
18
|
+
|
|
20
19
|
/**
|
|
21
20
|
* **Stats** connector provides the logic to build a custom widget that will displays
|
|
22
21
|
* search statistics (hits number and processing time).
|
|
23
22
|
*/
|
|
24
23
|
|
|
25
24
|
var connectStats = function connectStats(renderFn) {
|
|
26
|
-
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] :
|
|
27
|
-
(0,
|
|
25
|
+
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
|
|
26
|
+
(0, _utils.checkRendering)(renderFn, withUsage());
|
|
28
27
|
return function (widgetParams) {
|
|
29
28
|
return {
|
|
30
29
|
$$type: 'ais.stats',
|
|
@@ -50,8 +49,7 @@ var connectStats = function connectStats(renderFn) {
|
|
|
50
49
|
},
|
|
51
50
|
getWidgetRenderState: function getWidgetRenderState(_ref) {
|
|
52
51
|
var results = _ref.results,
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
state = _ref.state;
|
|
55
53
|
if (!results) {
|
|
56
54
|
return {
|
|
57
55
|
hitsPerPage: state.hitsPerPage,
|
|
@@ -65,7 +63,6 @@ var connectStats = function connectStats(renderFn) {
|
|
|
65
63
|
widgetParams: widgetParams
|
|
66
64
|
};
|
|
67
65
|
}
|
|
68
|
-
|
|
69
66
|
return {
|
|
70
67
|
hitsPerPage: results.hitsPerPage,
|
|
71
68
|
nbHits: results.nbHits,
|
|
@@ -81,6 +78,5 @@ var connectStats = function connectStats(renderFn) {
|
|
|
81
78
|
};
|
|
82
79
|
};
|
|
83
80
|
};
|
|
84
|
-
|
|
85
81
|
var _default = connectStats;
|
|
86
82
|
exports.default = _default;
|
|
@@ -4,48 +4,41 @@ 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: 'toggle-refinement',
|
|
18
16
|
connector: true
|
|
19
17
|
});
|
|
20
18
|
var $$type = 'ais.toggleRefinement';
|
|
21
|
-
|
|
22
19
|
var createSendEvent = function createSendEvent(_ref) {
|
|
23
20
|
var instantSearchInstance = _ref.instantSearchInstance,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
helper = _ref.helper,
|
|
22
|
+
attribute = _ref.attribute,
|
|
23
|
+
on = _ref.on;
|
|
28
24
|
var sendEventForToggle = function sendEventForToggle() {
|
|
29
25
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
30
26
|
args[_key] = arguments[_key];
|
|
31
27
|
}
|
|
32
|
-
|
|
33
28
|
if (args.length === 1) {
|
|
34
29
|
instantSearchInstance.sendEventToInsights(args[0]);
|
|
35
30
|
return;
|
|
36
31
|
}
|
|
37
|
-
|
|
38
32
|
var eventType = args[0],
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
33
|
+
isRefined = args[1],
|
|
34
|
+
_args$ = args[2],
|
|
35
|
+
eventName = _args$ === void 0 ? 'Filter Applied' : _args$;
|
|
43
36
|
if (eventType !== 'click' || on === undefined) {
|
|
44
37
|
return;
|
|
45
|
-
}
|
|
46
|
-
// not when it gets removed
|
|
47
|
-
|
|
38
|
+
}
|
|
48
39
|
|
|
40
|
+
// only send an event when the refinement gets applied,
|
|
41
|
+
// not when it gets removed
|
|
49
42
|
if (!isRefined) {
|
|
50
43
|
instantSearchInstance.sendEventToInsights({
|
|
51
44
|
insightsMethod: 'clickedFilters',
|
|
@@ -62,10 +55,8 @@ var createSendEvent = function createSendEvent(_ref) {
|
|
|
62
55
|
});
|
|
63
56
|
}
|
|
64
57
|
};
|
|
65
|
-
|
|
66
58
|
return sendEventForToggle;
|
|
67
59
|
};
|
|
68
|
-
|
|
69
60
|
/**
|
|
70
61
|
* **Toggle** connector provides the logic to build a custom widget that will provide
|
|
71
62
|
* an on/off filtering feature based on an attribute value or values.
|
|
@@ -75,42 +66,36 @@ var createSendEvent = function createSendEvent(_ref) {
|
|
|
75
66
|
* - switch between two values.
|
|
76
67
|
*/
|
|
77
68
|
var connectToggleRefinement = function connectToggleRefinement(renderFn) {
|
|
78
|
-
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] :
|
|
79
|
-
(0,
|
|
69
|
+
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
|
|
70
|
+
(0, _utils.checkRendering)(renderFn, withUsage());
|
|
80
71
|
return function (widgetParams) {
|
|
81
72
|
var _ref2 = widgetParams || {},
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
73
|
+
attribute = _ref2.attribute,
|
|
74
|
+
_ref2$on = _ref2.on,
|
|
75
|
+
userOn = _ref2$on === void 0 ? true : _ref2$on,
|
|
76
|
+
userOff = _ref2.off;
|
|
87
77
|
if (!attribute) {
|
|
88
78
|
throw new Error(withUsage('The `attribute` option is required.'));
|
|
89
79
|
}
|
|
90
|
-
|
|
91
|
-
|
|
80
|
+
var hasAnOffValue = userOff !== undefined;
|
|
81
|
+
// even though facet values can be numbers and boolean,
|
|
92
82
|
// the helper methods only accept string in the type
|
|
93
|
-
|
|
94
|
-
var
|
|
95
|
-
var off = hasAnOffValue ? (0, _index.toArray)(userOff).map(_index.escapeFacetValue) : undefined;
|
|
83
|
+
var on = (0, _utils.toArray)(userOn).map(_utils.escapeFacetValue);
|
|
84
|
+
var off = hasAnOffValue ? (0, _utils.toArray)(userOff).map(_utils.escapeFacetValue) : undefined;
|
|
96
85
|
var sendEvent;
|
|
97
|
-
|
|
98
86
|
var toggleRefinementFactory = function toggleRefinementFactory(helper) {
|
|
99
87
|
return function () {
|
|
100
88
|
var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
89
|
+
isRefined: false
|
|
90
|
+
},
|
|
91
|
+
isRefined = _ref3.isRefined;
|
|
105
92
|
if (!isRefined) {
|
|
106
93
|
sendEvent('click', isRefined);
|
|
107
|
-
|
|
108
94
|
if (hasAnOffValue) {
|
|
109
95
|
off.forEach(function (v) {
|
|
110
96
|
return helper.removeDisjunctiveFacetRefinement(attribute, v);
|
|
111
97
|
});
|
|
112
98
|
}
|
|
113
|
-
|
|
114
99
|
on.forEach(function (v) {
|
|
115
100
|
return helper.addDisjunctiveFacetRefinement(attribute, v);
|
|
116
101
|
});
|
|
@@ -118,40 +103,33 @@ var connectToggleRefinement = function connectToggleRefinement(renderFn) {
|
|
|
118
103
|
on.forEach(function (v) {
|
|
119
104
|
return helper.removeDisjunctiveFacetRefinement(attribute, v);
|
|
120
105
|
});
|
|
121
|
-
|
|
122
106
|
if (hasAnOffValue) {
|
|
123
107
|
off.forEach(function (v) {
|
|
124
108
|
return helper.addDisjunctiveFacetRefinement(attribute, v);
|
|
125
109
|
});
|
|
126
110
|
}
|
|
127
111
|
}
|
|
128
|
-
|
|
129
112
|
helper.search();
|
|
130
113
|
};
|
|
131
114
|
};
|
|
132
|
-
|
|
133
115
|
var connectorState = {
|
|
134
116
|
createURLFactory: function createURLFactory(isRefined, _ref4) {
|
|
135
117
|
var state = _ref4.state,
|
|
136
|
-
|
|
118
|
+
createURL = _ref4.createURL;
|
|
137
119
|
return function () {
|
|
138
120
|
state = state.resetPage();
|
|
139
121
|
var valuesToRemove = isRefined ? on : off;
|
|
140
|
-
|
|
141
122
|
if (valuesToRemove) {
|
|
142
123
|
valuesToRemove.forEach(function (v) {
|
|
143
124
|
state = state.removeDisjunctiveFacetRefinement(attribute, v);
|
|
144
125
|
});
|
|
145
126
|
}
|
|
146
|
-
|
|
147
127
|
var valuesToAdd = isRefined ? off : on;
|
|
148
|
-
|
|
149
128
|
if (valuesToAdd) {
|
|
150
129
|
valuesToAdd.forEach(function (v) {
|
|
151
130
|
state = state.addDisjunctiveFacetRefinement(attribute, v);
|
|
152
131
|
});
|
|
153
132
|
}
|
|
154
|
-
|
|
155
133
|
return createURL(state);
|
|
156
134
|
};
|
|
157
135
|
}
|
|
@@ -182,10 +160,10 @@ var connectToggleRefinement = function connectToggleRefinement(renderFn) {
|
|
|
182
160
|
},
|
|
183
161
|
getWidgetRenderState: function getWidgetRenderState(_ref6) {
|
|
184
162
|
var state = _ref6.state,
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
163
|
+
helper = _ref6.helper,
|
|
164
|
+
results = _ref6.results,
|
|
165
|
+
createURL = _ref6.createURL,
|
|
166
|
+
instantSearchInstance = _ref6.instantSearchInstance;
|
|
189
167
|
var isRefined = results ? on.every(function (v) {
|
|
190
168
|
return state.isDisjunctiveFacetRefined(attribute, v);
|
|
191
169
|
}) : on.every(function (v) {
|
|
@@ -199,22 +177,21 @@ var connectToggleRefinement = function connectToggleRefinement(renderFn) {
|
|
|
199
177
|
isRefined: hasAnOffValue && !isRefined,
|
|
200
178
|
count: 0
|
|
201
179
|
};
|
|
202
|
-
|
|
203
180
|
if (results) {
|
|
204
|
-
var offValue = (0,
|
|
181
|
+
var offValue = (0, _utils.toArray)(off || false);
|
|
205
182
|
var allFacetValues = results.getFacetValues(attribute, {}) || [];
|
|
206
183
|
var onData = on.map(function (v) {
|
|
207
|
-
return (0,
|
|
184
|
+
return (0, _utils.find)(allFacetValues, function (_ref7) {
|
|
208
185
|
var escapedValue = _ref7.escapedValue;
|
|
209
|
-
return escapedValue === (0,
|
|
186
|
+
return escapedValue === (0, _utils.escapeFacetValue)(String(v));
|
|
210
187
|
});
|
|
211
188
|
}).filter(function (v) {
|
|
212
189
|
return v !== undefined;
|
|
213
190
|
});
|
|
214
191
|
var offData = hasAnOffValue ? offValue.map(function (v) {
|
|
215
|
-
return (0,
|
|
192
|
+
return (0, _utils.find)(allFacetValues, function (_ref8) {
|
|
216
193
|
var escapedValue = _ref8.escapedValue;
|
|
217
|
-
return escapedValue === (0,
|
|
194
|
+
return escapedValue === (0, _utils.escapeFacetValue)(String(v));
|
|
218
195
|
});
|
|
219
196
|
}).filter(function (v) {
|
|
220
197
|
return v !== undefined;
|
|
@@ -239,7 +216,6 @@ var connectToggleRefinement = function connectToggleRefinement(renderFn) {
|
|
|
239
216
|
}, 0)
|
|
240
217
|
};
|
|
241
218
|
}
|
|
242
|
-
|
|
243
219
|
if (!sendEvent) {
|
|
244
220
|
sendEvent = createSendEvent({
|
|
245
221
|
instantSearchInstance: instantSearchInstance,
|
|
@@ -248,7 +224,6 @@ var connectToggleRefinement = function connectToggleRefinement(renderFn) {
|
|
|
248
224
|
helper: helper
|
|
249
225
|
});
|
|
250
226
|
}
|
|
251
|
-
|
|
252
227
|
var nextRefinement = isRefined ? offFacetValue : onFacetValue;
|
|
253
228
|
return {
|
|
254
229
|
value: {
|
|
@@ -273,11 +248,9 @@ var connectToggleRefinement = function connectToggleRefinement(renderFn) {
|
|
|
273
248
|
var isRefined = on && on.every(function (v) {
|
|
274
249
|
return searchParameters.isDisjunctiveFacetRefined(attribute, v);
|
|
275
250
|
});
|
|
276
|
-
|
|
277
251
|
if (!isRefined) {
|
|
278
252
|
return uiState;
|
|
279
253
|
}
|
|
280
|
-
|
|
281
254
|
return _objectSpread(_objectSpread({}, uiState), {}, {
|
|
282
255
|
toggle: _objectSpread(_objectSpread({}, uiState.toggle), {}, _defineProperty({}, attribute, isRefined))
|
|
283
256
|
});
|
|
@@ -286,29 +259,26 @@ var connectToggleRefinement = function connectToggleRefinement(renderFn) {
|
|
|
286
259
|
var uiState = _ref11.uiState;
|
|
287
260
|
var withFacetConfiguration = searchParameters.clearRefinements(attribute).addDisjunctiveFacet(attribute);
|
|
288
261
|
var isRefined = Boolean(uiState.toggle && uiState.toggle[attribute]);
|
|
289
|
-
|
|
290
262
|
if (isRefined) {
|
|
291
263
|
if (on) {
|
|
292
264
|
on.forEach(function (v) {
|
|
293
265
|
withFacetConfiguration = withFacetConfiguration.addDisjunctiveFacetRefinement(attribute, v);
|
|
294
266
|
});
|
|
295
267
|
}
|
|
296
|
-
|
|
297
268
|
return withFacetConfiguration;
|
|
298
|
-
}
|
|
299
|
-
|
|
269
|
+
}
|
|
300
270
|
|
|
271
|
+
// It's not refined with an `off` value
|
|
301
272
|
if (hasAnOffValue) {
|
|
302
273
|
if (off) {
|
|
303
274
|
off.forEach(function (v) {
|
|
304
275
|
withFacetConfiguration = withFacetConfiguration.addDisjunctiveFacetRefinement(attribute, v);
|
|
305
276
|
});
|
|
306
277
|
}
|
|
307
|
-
|
|
308
278
|
return withFacetConfiguration;
|
|
309
|
-
}
|
|
310
|
-
|
|
279
|
+
}
|
|
311
280
|
|
|
281
|
+
// It's not refined without an `off` value
|
|
312
282
|
return withFacetConfiguration.setQueryParameters({
|
|
313
283
|
disjunctiveFacetsRefinements: _objectSpread(_objectSpread({}, searchParameters.disjunctiveFacetsRefinements), {}, _defineProperty({}, attribute, []))
|
|
314
284
|
});
|
|
@@ -316,6 +286,5 @@ var connectToggleRefinement = function connectToggleRefinement(renderFn) {
|
|
|
316
286
|
};
|
|
317
287
|
};
|
|
318
288
|
};
|
|
319
|
-
|
|
320
289
|
var _default = connectToggleRefinement;
|
|
321
290
|
exports.default = _default;
|