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,23 +1,21 @@
|
|
|
1
|
-
function
|
|
2
|
-
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
4
|
-
|
|
5
|
-
function
|
|
6
|
-
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
6
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
7
7
|
import { escapeHits, TAG_PLACEHOLDER, checkRendering, createDocumentationMessageGenerator, createSendEventForHits, noop, warning } from "../../lib/utils/index.js";
|
|
8
8
|
var withUsage = createDocumentationMessageGenerator({
|
|
9
9
|
name: 'autocomplete',
|
|
10
10
|
connector: true
|
|
11
11
|
});
|
|
12
|
-
|
|
13
12
|
var connectAutocomplete = function connectAutocomplete(renderFn) {
|
|
14
13
|
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
|
|
15
14
|
checkRendering(renderFn, withUsage());
|
|
16
15
|
return function (widgetParams) {
|
|
17
16
|
var _ref = widgetParams || {},
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
_ref$escapeHTML = _ref.escapeHTML,
|
|
18
|
+
escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML;
|
|
21
19
|
process.env.NODE_ENV === 'development' ? warning(!widgetParams.indices, "\nThe option `indices` has been removed from the Autocomplete connector.\n\nThe indices to target are now inferred from the widgets tree.\n".concat(Array.isArray(widgetParams.indices) ? "\nAn alternative would be:\n\nconst autocomplete = connectAutocomplete(renderer);\n\nsearch.addWidgets([\n ".concat(widgetParams.indices.map(function (_ref2) {
|
|
22
20
|
var value = _ref2.value;
|
|
23
21
|
return "index({ indexName: '".concat(value, "' }),");
|
|
@@ -36,7 +34,7 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
|
|
|
36
34
|
var renderState = this.getWidgetRenderState(renderOptions);
|
|
37
35
|
renderState.indices.forEach(function (_ref3) {
|
|
38
36
|
var sendEvent = _ref3.sendEvent,
|
|
39
|
-
|
|
37
|
+
hits = _ref3.hits;
|
|
40
38
|
sendEvent('view', hits);
|
|
41
39
|
});
|
|
42
40
|
renderFn(_objectSpread(_objectSpread({}, renderState), {}, {
|
|
@@ -50,18 +48,15 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
|
|
|
50
48
|
},
|
|
51
49
|
getWidgetRenderState: function getWidgetRenderState(_ref4) {
|
|
52
50
|
var _this = this;
|
|
53
|
-
|
|
54
51
|
var helper = _ref4.helper,
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
52
|
+
state = _ref4.state,
|
|
53
|
+
scopedResults = _ref4.scopedResults,
|
|
54
|
+
instantSearchInstance = _ref4.instantSearchInstance;
|
|
59
55
|
if (!connectorState.refine) {
|
|
60
56
|
connectorState.refine = function (query) {
|
|
61
57
|
helper.setQuery(query).search();
|
|
62
58
|
};
|
|
63
59
|
}
|
|
64
|
-
|
|
65
60
|
var indices = scopedResults.map(function (scopedResult) {
|
|
66
61
|
// We need to escape the hits because highlighting
|
|
67
62
|
// exposes HTML tags to the end-user.
|
|
@@ -89,11 +84,9 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
|
|
|
89
84
|
getWidgetUiState: function getWidgetUiState(uiState, _ref5) {
|
|
90
85
|
var searchParameters = _ref5.searchParameters;
|
|
91
86
|
var query = searchParameters.query || '';
|
|
92
|
-
|
|
93
87
|
if (query === '' || uiState && uiState.query === query) {
|
|
94
88
|
return uiState;
|
|
95
89
|
}
|
|
96
|
-
|
|
97
90
|
return _objectSpread(_objectSpread({}, uiState), {}, {
|
|
98
91
|
query: query
|
|
99
92
|
});
|
|
@@ -103,22 +96,18 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
|
|
|
103
96
|
var parameters = {
|
|
104
97
|
query: uiState.query || ''
|
|
105
98
|
};
|
|
106
|
-
|
|
107
99
|
if (!escapeHTML) {
|
|
108
100
|
return searchParameters.setQueryParameters(parameters);
|
|
109
101
|
}
|
|
110
|
-
|
|
111
102
|
return searchParameters.setQueryParameters(_objectSpread(_objectSpread({}, parameters), TAG_PLACEHOLDER));
|
|
112
103
|
},
|
|
113
104
|
dispose: function dispose(_ref7) {
|
|
114
105
|
var state = _ref7.state;
|
|
115
106
|
unmountFn();
|
|
116
107
|
var stateWithoutQuery = state.setQueryParameter('query', undefined);
|
|
117
|
-
|
|
118
108
|
if (!escapeHTML) {
|
|
119
109
|
return stateWithoutQuery;
|
|
120
110
|
}
|
|
121
|
-
|
|
122
111
|
return stateWithoutQuery.setQueryParameters(Object.keys(TAG_PLACEHOLDER).reduce(function (acc, key) {
|
|
123
112
|
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));
|
|
124
113
|
}, {}));
|
|
@@ -126,5 +115,4 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
|
|
|
126
115
|
};
|
|
127
116
|
};
|
|
128
117
|
};
|
|
129
|
-
|
|
130
118
|
export default connectAutocomplete;
|
|
@@ -1,64 +1,51 @@
|
|
|
1
|
-
function
|
|
2
|
-
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
4
|
-
|
|
5
|
-
function
|
|
6
|
-
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
6
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
7
7
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
8
|
-
|
|
9
8
|
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."); }
|
|
10
|
-
|
|
11
9
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
12
|
-
|
|
13
|
-
function
|
|
14
|
-
|
|
15
|
-
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; }
|
|
16
|
-
|
|
10
|
+
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; }
|
|
11
|
+
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; } }
|
|
17
12
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
18
|
-
|
|
19
13
|
import { checkRendering, warning, createDocumentationMessageGenerator, isEqual, noop } from "../../lib/utils/index.js";
|
|
20
14
|
var withUsage = createDocumentationMessageGenerator({
|
|
21
15
|
name: 'breadcrumb',
|
|
22
16
|
connector: true
|
|
23
17
|
});
|
|
24
|
-
|
|
25
18
|
var connectBreadcrumb = function connectBreadcrumb(renderFn) {
|
|
26
19
|
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
|
|
27
20
|
checkRendering(renderFn, withUsage());
|
|
28
21
|
var connectorState = {};
|
|
29
22
|
return function (widgetParams) {
|
|
30
23
|
var _ref = widgetParams || {},
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
24
|
+
attributes = _ref.attributes,
|
|
25
|
+
_ref$separator = _ref.separator,
|
|
26
|
+
separator = _ref$separator === void 0 ? ' > ' : _ref$separator,
|
|
27
|
+
_ref$rootPath = _ref.rootPath,
|
|
28
|
+
rootPath = _ref$rootPath === void 0 ? null : _ref$rootPath,
|
|
29
|
+
_ref$transformItems = _ref.transformItems,
|
|
30
|
+
transformItems = _ref$transformItems === void 0 ? function (items) {
|
|
31
|
+
return items;
|
|
32
|
+
} : _ref$transformItems;
|
|
41
33
|
if (!attributes || !Array.isArray(attributes) || attributes.length === 0) {
|
|
42
34
|
throw new Error(withUsage('The `attributes` option expects an array of strings.'));
|
|
43
35
|
}
|
|
44
|
-
|
|
45
36
|
var _attributes = _slicedToArray(attributes, 1),
|
|
46
|
-
|
|
47
|
-
|
|
37
|
+
hierarchicalFacetName = _attributes[0];
|
|
48
38
|
function getRefinedState(state, facetValue) {
|
|
49
39
|
if (!facetValue) {
|
|
50
40
|
var breadcrumb = state.getHierarchicalFacetBreadcrumb(hierarchicalFacetName);
|
|
51
|
-
|
|
52
41
|
if (breadcrumb.length === 0) {
|
|
53
42
|
return state;
|
|
54
43
|
} else {
|
|
55
44
|
return state.resetPage().toggleFacetRefinement(hierarchicalFacetName, breadcrumb[0]);
|
|
56
45
|
}
|
|
57
46
|
}
|
|
58
|
-
|
|
59
47
|
return state.resetPage().toggleFacetRefinement(hierarchicalFacetName, facetValue);
|
|
60
48
|
}
|
|
61
|
-
|
|
62
49
|
return {
|
|
63
50
|
$$type: 'ais.breadcrumb',
|
|
64
51
|
init: function init(initOptions) {
|
|
@@ -81,10 +68,9 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
|
|
|
81
68
|
},
|
|
82
69
|
getWidgetRenderState: function getWidgetRenderState(_ref2) {
|
|
83
70
|
var helper = _ref2.helper,
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
71
|
+
createURL = _ref2.createURL,
|
|
72
|
+
results = _ref2.results,
|
|
73
|
+
state = _ref2.state;
|
|
88
74
|
function getItems() {
|
|
89
75
|
// The hierarchicalFacets condition is required for flavors
|
|
90
76
|
// that render immediately with empty results, without relying
|
|
@@ -92,10 +78,8 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
|
|
|
92
78
|
if (!results || state.hierarchicalFacets.length === 0) {
|
|
93
79
|
return [];
|
|
94
80
|
}
|
|
95
|
-
|
|
96
81
|
var _state$hierarchicalFa = _slicedToArray(state.hierarchicalFacets, 1),
|
|
97
|
-
|
|
98
|
-
|
|
82
|
+
facetName = _state$hierarchicalFa[0].name;
|
|
99
83
|
var facetValues = results.getFacetValues(facetName, {});
|
|
100
84
|
var data = Array.isArray(facetValues.data) ? facetValues.data : [];
|
|
101
85
|
var items = transformItems(shiftItemsValues(prepareItems(data)), {
|
|
@@ -103,21 +87,17 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
|
|
|
103
87
|
});
|
|
104
88
|
return items;
|
|
105
89
|
}
|
|
106
|
-
|
|
107
90
|
var items = getItems();
|
|
108
|
-
|
|
109
91
|
if (!connectorState.createURL) {
|
|
110
92
|
connectorState.createURL = function (facetValue) {
|
|
111
93
|
return createURL(getRefinedState(helper.state, facetValue));
|
|
112
94
|
};
|
|
113
95
|
}
|
|
114
|
-
|
|
115
96
|
if (!connectorState.refine) {
|
|
116
97
|
connectorState.refine = function (facetValue) {
|
|
117
98
|
helper.setState(getRefinedState(helper.state, facetValue)).search();
|
|
118
99
|
};
|
|
119
100
|
}
|
|
120
|
-
|
|
121
101
|
return {
|
|
122
102
|
canRefine: items.length > 0,
|
|
123
103
|
createURL: connectorState.createURL,
|
|
@@ -132,7 +112,6 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
|
|
|
132
112
|
process.env.NODE_ENV === 'development' ? warning(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;
|
|
133
113
|
return searchParameters;
|
|
134
114
|
}
|
|
135
|
-
|
|
136
115
|
return searchParameters.addHierarchicalFacet({
|
|
137
116
|
name: hierarchicalFacetName,
|
|
138
117
|
attributes: attributes,
|
|
@@ -143,7 +122,6 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
|
|
|
143
122
|
};
|
|
144
123
|
};
|
|
145
124
|
};
|
|
146
|
-
|
|
147
125
|
function prepareItems(data) {
|
|
148
126
|
return data.reduce(function (result, currentItem) {
|
|
149
127
|
if (currentItem.isRefined) {
|
|
@@ -151,16 +129,13 @@ function prepareItems(data) {
|
|
|
151
129
|
label: currentItem.name,
|
|
152
130
|
value: currentItem.escapedValue
|
|
153
131
|
});
|
|
154
|
-
|
|
155
132
|
if (Array.isArray(currentItem.data)) {
|
|
156
133
|
result = result.concat(prepareItems(currentItem.data));
|
|
157
134
|
}
|
|
158
135
|
}
|
|
159
|
-
|
|
160
136
|
return result;
|
|
161
137
|
}, []);
|
|
162
138
|
}
|
|
163
|
-
|
|
164
139
|
function shiftItemsValues(array) {
|
|
165
140
|
return array.map(function (x, idx) {
|
|
166
141
|
return {
|
|
@@ -169,5 +144,4 @@ function shiftItemsValues(array) {
|
|
|
169
144
|
};
|
|
170
145
|
});
|
|
171
146
|
}
|
|
172
|
-
|
|
173
147
|
export default connectBreadcrumb;
|
|
@@ -1,45 +1,36 @@
|
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
1
2
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
2
|
-
|
|
3
3
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
-
|
|
5
4
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
|
-
|
|
7
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
|
8
|
-
|
|
5
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
9
6
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
10
|
-
|
|
11
|
-
function
|
|
12
|
-
|
|
13
|
-
function
|
|
14
|
-
|
|
15
|
-
function
|
|
16
|
-
|
|
17
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
18
|
-
|
|
7
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
8
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
9
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
10
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
11
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
12
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
19
13
|
import { checkRendering, clearRefinements, getRefinements, createDocumentationMessageGenerator, noop, uniq, mergeSearchParameters } from "../../lib/utils/index.js";
|
|
20
14
|
var withUsage = createDocumentationMessageGenerator({
|
|
21
15
|
name: 'clear-refinements',
|
|
22
16
|
connector: true
|
|
23
17
|
});
|
|
24
|
-
|
|
25
18
|
var connectClearRefinements = function connectClearRefinements(renderFn) {
|
|
26
19
|
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
|
|
27
20
|
checkRendering(renderFn, withUsage());
|
|
28
21
|
return function (widgetParams) {
|
|
29
22
|
var _ref = widgetParams || {},
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
23
|
+
_ref$includedAttribut = _ref.includedAttributes,
|
|
24
|
+
includedAttributes = _ref$includedAttribut === void 0 ? [] : _ref$includedAttribut,
|
|
25
|
+
_ref$excludedAttribut = _ref.excludedAttributes,
|
|
26
|
+
excludedAttributes = _ref$excludedAttribut === void 0 ? ['query'] : _ref$excludedAttribut,
|
|
27
|
+
_ref$transformItems = _ref.transformItems,
|
|
28
|
+
transformItems = _ref$transformItems === void 0 ? function (items) {
|
|
29
|
+
return items;
|
|
30
|
+
} : _ref$transformItems;
|
|
39
31
|
if (widgetParams && widgetParams.includedAttributes && widgetParams.excludedAttributes) {
|
|
40
32
|
throw new Error(withUsage('The options `includedAttributes` and `excludedAttributes` cannot be used together.'));
|
|
41
33
|
}
|
|
42
|
-
|
|
43
34
|
var connectorState = {
|
|
44
35
|
refine: noop,
|
|
45
36
|
createURL: function createURL() {
|
|
@@ -47,15 +38,12 @@ var connectClearRefinements = function connectClearRefinements(renderFn) {
|
|
|
47
38
|
},
|
|
48
39
|
attributesToClear: []
|
|
49
40
|
};
|
|
50
|
-
|
|
51
41
|
var cachedRefine = function cachedRefine() {
|
|
52
42
|
return connectorState.refine();
|
|
53
43
|
};
|
|
54
|
-
|
|
55
44
|
var cachedCreateURL = function cachedCreateURL() {
|
|
56
45
|
return connectorState.createURL();
|
|
57
46
|
};
|
|
58
|
-
|
|
59
47
|
return {
|
|
60
48
|
$$type: 'ais.clearRefinements',
|
|
61
49
|
init: function init(initOptions) {
|
|
@@ -80,8 +68,8 @@ var connectClearRefinements = function connectClearRefinements(renderFn) {
|
|
|
80
68
|
},
|
|
81
69
|
getWidgetRenderState: function getWidgetRenderState(_ref2) {
|
|
82
70
|
var createURL = _ref2.createURL,
|
|
83
|
-
|
|
84
|
-
|
|
71
|
+
scopedResults = _ref2.scopedResults,
|
|
72
|
+
results = _ref2.results;
|
|
85
73
|
connectorState.attributesToClear = scopedResults.reduce(function (attributesToClear, scopedResult) {
|
|
86
74
|
return attributesToClear.concat(getAttributesToClear({
|
|
87
75
|
scopedResult: scopedResult,
|
|
@@ -91,29 +79,26 @@ var connectClearRefinements = function connectClearRefinements(renderFn) {
|
|
|
91
79
|
results: results
|
|
92
80
|
}));
|
|
93
81
|
}, []);
|
|
94
|
-
|
|
95
82
|
connectorState.refine = function () {
|
|
96
83
|
connectorState.attributesToClear.forEach(function (_ref3) {
|
|
97
84
|
var indexHelper = _ref3.helper,
|
|
98
|
-
|
|
85
|
+
items = _ref3.items;
|
|
99
86
|
indexHelper.setState(clearRefinements({
|
|
100
87
|
helper: indexHelper,
|
|
101
88
|
attributesToClear: items
|
|
102
89
|
})).search();
|
|
103
90
|
});
|
|
104
91
|
};
|
|
105
|
-
|
|
106
92
|
connectorState.createURL = function () {
|
|
107
93
|
return createURL(mergeSearchParameters.apply(void 0, _toConsumableArray(connectorState.attributesToClear.map(function (_ref4) {
|
|
108
94
|
var indexHelper = _ref4.helper,
|
|
109
|
-
|
|
95
|
+
items = _ref4.items;
|
|
110
96
|
return clearRefinements({
|
|
111
97
|
helper: indexHelper,
|
|
112
98
|
attributesToClear: items
|
|
113
99
|
});
|
|
114
100
|
}))));
|
|
115
101
|
};
|
|
116
|
-
|
|
117
102
|
var canRefine = connectorState.attributesToClear.some(function (attributeToClear) {
|
|
118
103
|
return attributeToClear.items.length > 0;
|
|
119
104
|
});
|
|
@@ -128,26 +113,29 @@ var connectClearRefinements = function connectClearRefinements(renderFn) {
|
|
|
128
113
|
};
|
|
129
114
|
};
|
|
130
115
|
};
|
|
131
|
-
|
|
132
116
|
function getAttributesToClear(_ref5) {
|
|
133
117
|
var scopedResult = _ref5.scopedResult,
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
118
|
+
includedAttributes = _ref5.includedAttributes,
|
|
119
|
+
excludedAttributes = _ref5.excludedAttributes,
|
|
120
|
+
transformItems = _ref5.transformItems,
|
|
121
|
+
results = _ref5.results;
|
|
138
122
|
var includesQuery = includedAttributes.indexOf('query') !== -1 || excludedAttributes.indexOf('query') === -1;
|
|
139
123
|
return {
|
|
140
124
|
helper: scopedResult.helper,
|
|
141
125
|
items: transformItems(uniq(getRefinements(scopedResult.results, scopedResult.helper.state, includesQuery).map(function (refinement) {
|
|
142
126
|
return refinement.attribute;
|
|
143
127
|
}).filter(function (attribute) {
|
|
144
|
-
return (
|
|
145
|
-
|
|
128
|
+
return (
|
|
129
|
+
// If the array is empty (default case), we keep all the attributes
|
|
130
|
+
includedAttributes.length === 0 ||
|
|
131
|
+
// Otherwise, only add the specified attributes
|
|
146
132
|
includedAttributes.indexOf(attribute) !== -1
|
|
147
133
|
);
|
|
148
134
|
}).filter(function (attribute) {
|
|
149
|
-
return (
|
|
150
|
-
|
|
135
|
+
return (
|
|
136
|
+
// If the query is included, we ignore the default `excludedAttributes = ['query']`
|
|
137
|
+
attribute === 'query' && includesQuery ||
|
|
138
|
+
// Otherwise, ignore the excluded attributes
|
|
151
139
|
excludedAttributes.indexOf(attribute) === -1
|
|
152
140
|
);
|
|
153
141
|
})), {
|
|
@@ -155,5 +143,4 @@ function getAttributesToClear(_ref5) {
|
|
|
155
143
|
})
|
|
156
144
|
};
|
|
157
145
|
}
|
|
158
|
-
|
|
159
146
|
export default connectClearRefinements;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
function
|
|
2
|
-
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
4
|
-
|
|
5
|
-
function
|
|
6
|
-
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
6
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
7
7
|
import algoliasearchHelper from 'algoliasearch-helper';
|
|
8
8
|
import { createDocumentationMessageGenerator, isPlainObject, mergeSearchParameters, noop } from "../../lib/utils/index.js";
|
|
9
|
+
|
|
9
10
|
/**
|
|
10
11
|
* Refine the given search parameters.
|
|
11
12
|
*/
|
|
@@ -14,7 +15,6 @@ var withUsage = createDocumentationMessageGenerator({
|
|
|
14
15
|
name: 'configure',
|
|
15
16
|
connector: true
|
|
16
17
|
});
|
|
17
|
-
|
|
18
18
|
function getInitialSearchParameters(state, widgetParams) {
|
|
19
19
|
// We leverage the helper internals to remove the `widgetParams` from
|
|
20
20
|
// the state. The function `setQueryParameters` omits the values that
|
|
@@ -23,7 +23,6 @@ function getInitialSearchParameters(state, widgetParams) {
|
|
|
23
23
|
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));
|
|
24
24
|
}, {}));
|
|
25
25
|
}
|
|
26
|
-
|
|
27
26
|
var connectConfigure = function connectConfigure() {
|
|
28
27
|
var renderFn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;
|
|
29
28
|
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
|
|
@@ -31,21 +30,20 @@ var connectConfigure = function connectConfigure() {
|
|
|
31
30
|
if (!widgetParams || !isPlainObject(widgetParams.searchParameters)) {
|
|
32
31
|
throw new Error(withUsage('The `searchParameters` option expects an object.'));
|
|
33
32
|
}
|
|
34
|
-
|
|
35
33
|
var connectorState = {};
|
|
36
|
-
|
|
37
34
|
function refine(helper) {
|
|
38
35
|
return function (searchParameters) {
|
|
39
36
|
// Merge new `searchParameters` with the ones set from other widgets
|
|
40
37
|
var actualState = getInitialSearchParameters(helper.state, widgetParams);
|
|
41
|
-
var nextSearchParameters = mergeSearchParameters(actualState, new algoliasearchHelper.SearchParameters(searchParameters));
|
|
38
|
+
var nextSearchParameters = mergeSearchParameters(actualState, new algoliasearchHelper.SearchParameters(searchParameters));
|
|
42
39
|
|
|
43
|
-
|
|
40
|
+
// Update original `widgetParams.searchParameters` to the new refined one
|
|
41
|
+
widgetParams.searchParameters = searchParameters;
|
|
44
42
|
|
|
43
|
+
// Trigger a search with the resolved search parameters
|
|
45
44
|
helper.setState(nextSearchParameters).search();
|
|
46
45
|
};
|
|
47
46
|
}
|
|
48
|
-
|
|
49
47
|
return {
|
|
50
48
|
$$type: 'ais.configure',
|
|
51
49
|
init: function init(initOptions) {
|
|
@@ -67,7 +65,6 @@ var connectConfigure = function connectConfigure() {
|
|
|
67
65
|
},
|
|
68
66
|
getRenderState: function getRenderState(renderState, renderOptions) {
|
|
69
67
|
var _renderState$configur;
|
|
70
|
-
|
|
71
68
|
var widgetRenderState = this.getWidgetRenderState(renderOptions);
|
|
72
69
|
return _objectSpread(_objectSpread({}, renderState), {}, {
|
|
73
70
|
configure: _objectSpread(_objectSpread({}, widgetRenderState), {}, {
|
|
@@ -79,11 +76,9 @@ var connectConfigure = function connectConfigure() {
|
|
|
79
76
|
},
|
|
80
77
|
getWidgetRenderState: function getWidgetRenderState(_ref2) {
|
|
81
78
|
var helper = _ref2.helper;
|
|
82
|
-
|
|
83
79
|
if (!connectorState.refine) {
|
|
84
80
|
connectorState.refine = refine(helper);
|
|
85
81
|
}
|
|
86
|
-
|
|
87
82
|
return {
|
|
88
83
|
refine: connectorState.refine,
|
|
89
84
|
widgetParams: widgetParams
|
|
@@ -101,5 +96,4 @@ var connectConfigure = function connectConfigure() {
|
|
|
101
96
|
};
|
|
102
97
|
};
|
|
103
98
|
};
|
|
104
|
-
|
|
105
99
|
export default connectConfigure;
|