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,74 +4,66 @@ 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
|
function hasFindAnswersMethod(answersIndex) {
|
|
17
15
|
return typeof answersIndex.findAnswers === 'function';
|
|
18
16
|
}
|
|
19
|
-
|
|
20
|
-
var withUsage = (0, _index.createDocumentationMessageGenerator)({
|
|
17
|
+
var withUsage = (0, _utils.createDocumentationMessageGenerator)({
|
|
21
18
|
name: 'answers',
|
|
22
19
|
connector: true
|
|
23
20
|
});
|
|
24
|
-
|
|
25
21
|
var connectAnswers = function connectAnswers(renderFn) {
|
|
26
|
-
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] :
|
|
27
|
-
(0,
|
|
22
|
+
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
|
|
23
|
+
(0, _utils.checkRendering)(renderFn, withUsage());
|
|
28
24
|
return function (widgetParams) {
|
|
29
25
|
var _ref = widgetParams || {},
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
26
|
+
queryLanguages = _ref.queryLanguages,
|
|
27
|
+
attributesForPrediction = _ref.attributesForPrediction,
|
|
28
|
+
_ref$nbHits = _ref.nbHits,
|
|
29
|
+
nbHits = _ref$nbHits === void 0 ? 1 : _ref$nbHits,
|
|
30
|
+
_ref$renderDebounceTi = _ref.renderDebounceTime,
|
|
31
|
+
renderDebounceTime = _ref$renderDebounceTi === void 0 ? 100 : _ref$renderDebounceTi,
|
|
32
|
+
_ref$searchDebounceTi = _ref.searchDebounceTime,
|
|
33
|
+
searchDebounceTime = _ref$searchDebounceTi === void 0 ? 100 : _ref$searchDebounceTi,
|
|
34
|
+
_ref$escapeHTML = _ref.escapeHTML,
|
|
35
|
+
escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML,
|
|
36
|
+
_ref$extraParameters = _ref.extraParameters,
|
|
37
|
+
extraParameters = _ref$extraParameters === void 0 ? {} : _ref$extraParameters;
|
|
38
|
+
|
|
39
|
+
// @ts-expect-error checking for the wrong value
|
|
44
40
|
if (!queryLanguages || queryLanguages.length === 0) {
|
|
45
41
|
throw new Error(withUsage('The `queryLanguages` expects an array of strings.'));
|
|
46
42
|
}
|
|
47
|
-
|
|
48
|
-
var runConcurrentSafePromise = (0, _index.createConcurrentSafePromise)();
|
|
43
|
+
var runConcurrentSafePromise = (0, _utils.createConcurrentSafePromise)();
|
|
49
44
|
var lastHits = [];
|
|
50
45
|
var isLoading = false;
|
|
51
|
-
var debouncedRender = (0,
|
|
46
|
+
var debouncedRender = (0, _utils.debounce)(renderFn, renderDebounceTime);
|
|
52
47
|
|
|
48
|
+
// this does not directly use DebouncedFunction<findAnswers>, since then the generic will disappear
|
|
53
49
|
var debouncedRefine;
|
|
54
50
|
return {
|
|
55
51
|
$$type: 'ais.answers',
|
|
56
52
|
init: function init(initOptions) {
|
|
57
53
|
var state = initOptions.state,
|
|
58
|
-
|
|
54
|
+
instantSearchInstance = initOptions.instantSearchInstance;
|
|
59
55
|
var answersIndex = instantSearchInstance.client.initIndex(state.index);
|
|
60
|
-
|
|
61
56
|
if (!hasFindAnswersMethod(answersIndex)) {
|
|
62
57
|
throw new Error(withUsage('`algoliasearch` >= 4.8.0 required.'));
|
|
63
58
|
}
|
|
64
|
-
|
|
65
|
-
debouncedRefine = (0, _index.debounce)(answersIndex.findAnswers, searchDebounceTime);
|
|
59
|
+
debouncedRefine = (0, _utils.debounce)(answersIndex.findAnswers, searchDebounceTime);
|
|
66
60
|
renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {
|
|
67
61
|
instantSearchInstance: initOptions.instantSearchInstance
|
|
68
62
|
}), true);
|
|
69
63
|
},
|
|
70
64
|
render: function render(renderOptions) {
|
|
71
65
|
var _this = this;
|
|
72
|
-
|
|
73
66
|
var query = renderOptions.state.query;
|
|
74
|
-
|
|
75
67
|
if (!query) {
|
|
76
68
|
// renders nothing with empty query
|
|
77
69
|
lastHits = [];
|
|
@@ -80,15 +72,16 @@ var connectAnswers = function connectAnswers(renderFn) {
|
|
|
80
72
|
instantSearchInstance: renderOptions.instantSearchInstance
|
|
81
73
|
}), false);
|
|
82
74
|
return;
|
|
83
|
-
}
|
|
84
|
-
|
|
75
|
+
}
|
|
85
76
|
|
|
77
|
+
// render the loader
|
|
86
78
|
lastHits = [];
|
|
87
79
|
isLoading = true;
|
|
88
80
|
renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {
|
|
89
81
|
instantSearchInstance: renderOptions.instantSearchInstance
|
|
90
|
-
}), false);
|
|
82
|
+
}), false);
|
|
91
83
|
|
|
84
|
+
// call /answers API
|
|
92
85
|
runConcurrentSafePromise(debouncedRefine(query, queryLanguages, _objectSpread(_objectSpread({}, extraParameters), {}, {
|
|
93
86
|
nbHits: nbHits,
|
|
94
87
|
attributesForPrediction: attributesForPrediction
|
|
@@ -97,13 +90,11 @@ var connectAnswers = function connectAnswers(renderFn) {
|
|
|
97
90
|
// It's undefined when it's debounced.
|
|
98
91
|
return;
|
|
99
92
|
}
|
|
100
|
-
|
|
101
93
|
if (escapeHTML && result.hits.length > 0) {
|
|
102
|
-
result.hits = (0,
|
|
94
|
+
result.hits = (0, _utils.escapeHits)(result.hits);
|
|
103
95
|
}
|
|
104
|
-
|
|
105
|
-
var
|
|
106
|
-
var hitsWithAbsolutePositionAndQueryID = (0, _index.addQueryID)(hitsWithAbsolutePosition, result.queryID);
|
|
96
|
+
var hitsWithAbsolutePosition = (0, _utils.addAbsolutePosition)(result.hits, 0, nbHits);
|
|
97
|
+
var hitsWithAbsolutePositionAndQueryID = (0, _utils.addQueryID)(hitsWithAbsolutePosition, result.queryID);
|
|
107
98
|
lastHits = hitsWithAbsolutePositionAndQueryID;
|
|
108
99
|
isLoading = false;
|
|
109
100
|
debouncedRender(_objectSpread(_objectSpread({}, _this.getWidgetRenderState(renderOptions)), {}, {
|
|
@@ -134,6 +125,5 @@ var connectAnswers = function connectAnswers(renderFn) {
|
|
|
134
125
|
};
|
|
135
126
|
};
|
|
136
127
|
};
|
|
137
|
-
|
|
138
128
|
var _default = connectAnswers;
|
|
139
129
|
exports.default = _default;
|
|
@@ -4,29 +4,25 @@ 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: 'autocomplete',
|
|
18
16
|
connector: true
|
|
19
17
|
});
|
|
20
|
-
|
|
21
18
|
var connectAutocomplete = function connectAutocomplete(renderFn) {
|
|
22
|
-
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] :
|
|
23
|
-
(0,
|
|
19
|
+
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
|
|
20
|
+
(0, _utils.checkRendering)(renderFn, withUsage());
|
|
24
21
|
return function (widgetParams) {
|
|
25
22
|
var _ref = widgetParams || {},
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
process.env.NODE_ENV === 'development' ? (0, _index.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) {
|
|
23
|
+
_ref$escapeHTML = _ref.escapeHTML,
|
|
24
|
+
escapeHTML = _ref$escapeHTML === void 0 ? true : _ref$escapeHTML;
|
|
25
|
+
process.env.NODE_ENV === 'development' ? (0, _utils.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) {
|
|
30
26
|
var value = _ref2.value;
|
|
31
27
|
return "index({ indexName: '".concat(value, "' }),");
|
|
32
28
|
}).join('\n '), "\n autocomplete()\n]);\n") : '', "\n ")) : void 0;
|
|
@@ -44,7 +40,7 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
|
|
|
44
40
|
var renderState = this.getWidgetRenderState(renderOptions);
|
|
45
41
|
renderState.indices.forEach(function (_ref3) {
|
|
46
42
|
var sendEvent = _ref3.sendEvent,
|
|
47
|
-
|
|
43
|
+
hits = _ref3.hits;
|
|
48
44
|
sendEvent('view', hits);
|
|
49
45
|
});
|
|
50
46
|
renderFn(_objectSpread(_objectSpread({}, renderState), {}, {
|
|
@@ -58,23 +54,20 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
|
|
|
58
54
|
},
|
|
59
55
|
getWidgetRenderState: function getWidgetRenderState(_ref4) {
|
|
60
56
|
var _this = this;
|
|
61
|
-
|
|
62
57
|
var helper = _ref4.helper,
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
58
|
+
state = _ref4.state,
|
|
59
|
+
scopedResults = _ref4.scopedResults,
|
|
60
|
+
instantSearchInstance = _ref4.instantSearchInstance;
|
|
67
61
|
if (!connectorState.refine) {
|
|
68
62
|
connectorState.refine = function (query) {
|
|
69
63
|
helper.setQuery(query).search();
|
|
70
64
|
};
|
|
71
65
|
}
|
|
72
|
-
|
|
73
66
|
var indices = scopedResults.map(function (scopedResult) {
|
|
74
67
|
// We need to escape the hits because highlighting
|
|
75
68
|
// exposes HTML tags to the end-user.
|
|
76
|
-
scopedResult.results.hits = escapeHTML ? (0,
|
|
77
|
-
var sendEvent = (0,
|
|
69
|
+
scopedResult.results.hits = escapeHTML ? (0, _utils.escapeHits)(scopedResult.results.hits) : scopedResult.results.hits;
|
|
70
|
+
var sendEvent = (0, _utils.createSendEventForHits)({
|
|
78
71
|
instantSearchInstance: instantSearchInstance,
|
|
79
72
|
index: scopedResult.results.index,
|
|
80
73
|
widgetType: _this.$$type
|
|
@@ -97,11 +90,9 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
|
|
|
97
90
|
getWidgetUiState: function getWidgetUiState(uiState, _ref5) {
|
|
98
91
|
var searchParameters = _ref5.searchParameters;
|
|
99
92
|
var query = searchParameters.query || '';
|
|
100
|
-
|
|
101
93
|
if (query === '' || uiState && uiState.query === query) {
|
|
102
94
|
return uiState;
|
|
103
95
|
}
|
|
104
|
-
|
|
105
96
|
return _objectSpread(_objectSpread({}, uiState), {}, {
|
|
106
97
|
query: query
|
|
107
98
|
});
|
|
@@ -111,29 +102,24 @@ var connectAutocomplete = function connectAutocomplete(renderFn) {
|
|
|
111
102
|
var parameters = {
|
|
112
103
|
query: uiState.query || ''
|
|
113
104
|
};
|
|
114
|
-
|
|
115
105
|
if (!escapeHTML) {
|
|
116
106
|
return searchParameters.setQueryParameters(parameters);
|
|
117
107
|
}
|
|
118
|
-
|
|
119
|
-
return searchParameters.setQueryParameters(_objectSpread(_objectSpread({}, parameters), _index.TAG_PLACEHOLDER));
|
|
108
|
+
return searchParameters.setQueryParameters(_objectSpread(_objectSpread({}, parameters), _utils.TAG_PLACEHOLDER));
|
|
120
109
|
},
|
|
121
110
|
dispose: function dispose(_ref7) {
|
|
122
111
|
var state = _ref7.state;
|
|
123
112
|
unmountFn();
|
|
124
113
|
var stateWithoutQuery = state.setQueryParameter('query', undefined);
|
|
125
|
-
|
|
126
114
|
if (!escapeHTML) {
|
|
127
115
|
return stateWithoutQuery;
|
|
128
116
|
}
|
|
129
|
-
|
|
130
|
-
return stateWithoutQuery.setQueryParameters(Object.keys(_index.TAG_PLACEHOLDER).reduce(function (acc, key) {
|
|
117
|
+
return stateWithoutQuery.setQueryParameters(Object.keys(_utils.TAG_PLACEHOLDER).reduce(function (acc, key) {
|
|
131
118
|
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));
|
|
132
119
|
}, {}));
|
|
133
120
|
}
|
|
134
121
|
};
|
|
135
122
|
};
|
|
136
123
|
};
|
|
137
|
-
|
|
138
124
|
var _default = connectAutocomplete;
|
|
139
125
|
exports.default = _default;
|
|
@@ -1,72 +1,57 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
function
|
|
13
|
-
|
|
14
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
|
-
|
|
8
|
+
var _utils = require("../../lib/utils");
|
|
9
|
+
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
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
17
|
-
|
|
18
15
|
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."); }
|
|
19
|
-
|
|
20
16
|
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); }
|
|
21
|
-
|
|
22
|
-
function
|
|
23
|
-
|
|
24
|
-
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; }
|
|
25
|
-
|
|
17
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
18
|
+
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; } }
|
|
26
19
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
27
|
-
|
|
28
|
-
var withUsage = (0, _index.createDocumentationMessageGenerator)({
|
|
20
|
+
var withUsage = (0, _utils.createDocumentationMessageGenerator)({
|
|
29
21
|
name: 'breadcrumb',
|
|
30
22
|
connector: true
|
|
31
23
|
});
|
|
32
|
-
|
|
33
24
|
var connectBreadcrumb = function connectBreadcrumb(renderFn) {
|
|
34
|
-
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] :
|
|
35
|
-
(0,
|
|
25
|
+
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.noop;
|
|
26
|
+
(0, _utils.checkRendering)(renderFn, withUsage());
|
|
36
27
|
var connectorState = {};
|
|
37
28
|
return function (widgetParams) {
|
|
38
29
|
var _ref = widgetParams || {},
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
30
|
+
attributes = _ref.attributes,
|
|
31
|
+
_ref$separator = _ref.separator,
|
|
32
|
+
separator = _ref$separator === void 0 ? ' > ' : _ref$separator,
|
|
33
|
+
_ref$rootPath = _ref.rootPath,
|
|
34
|
+
rootPath = _ref$rootPath === void 0 ? null : _ref$rootPath,
|
|
35
|
+
_ref$transformItems = _ref.transformItems,
|
|
36
|
+
transformItems = _ref$transformItems === void 0 ? function (items) {
|
|
37
|
+
return items;
|
|
38
|
+
} : _ref$transformItems;
|
|
49
39
|
if (!attributes || !Array.isArray(attributes) || attributes.length === 0) {
|
|
50
40
|
throw new Error(withUsage('The `attributes` option expects an array of strings.'));
|
|
51
41
|
}
|
|
52
|
-
|
|
53
42
|
var _attributes = _slicedToArray(attributes, 1),
|
|
54
|
-
|
|
55
|
-
|
|
43
|
+
hierarchicalFacetName = _attributes[0];
|
|
56
44
|
function getRefinedState(state, facetValue) {
|
|
57
45
|
if (!facetValue) {
|
|
58
46
|
var breadcrumb = state.getHierarchicalFacetBreadcrumb(hierarchicalFacetName);
|
|
59
|
-
|
|
60
47
|
if (breadcrumb.length === 0) {
|
|
61
48
|
return state;
|
|
62
49
|
} else {
|
|
63
50
|
return state.resetPage().toggleFacetRefinement(hierarchicalFacetName, breadcrumb[0]);
|
|
64
51
|
}
|
|
65
52
|
}
|
|
66
|
-
|
|
67
53
|
return state.resetPage().toggleFacetRefinement(hierarchicalFacetName, facetValue);
|
|
68
54
|
}
|
|
69
|
-
|
|
70
55
|
return {
|
|
71
56
|
$$type: 'ais.breadcrumb',
|
|
72
57
|
init: function init(initOptions) {
|
|
@@ -89,10 +74,9 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
|
|
|
89
74
|
},
|
|
90
75
|
getWidgetRenderState: function getWidgetRenderState(_ref2) {
|
|
91
76
|
var helper = _ref2.helper,
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
77
|
+
createURL = _ref2.createURL,
|
|
78
|
+
results = _ref2.results,
|
|
79
|
+
state = _ref2.state;
|
|
96
80
|
function getItems() {
|
|
97
81
|
// The hierarchicalFacets condition is required for flavors
|
|
98
82
|
// that render immediately with empty results, without relying
|
|
@@ -100,10 +84,8 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
|
|
|
100
84
|
if (!results || state.hierarchicalFacets.length === 0) {
|
|
101
85
|
return [];
|
|
102
86
|
}
|
|
103
|
-
|
|
104
87
|
var _state$hierarchicalFa = _slicedToArray(state.hierarchicalFacets, 1),
|
|
105
|
-
|
|
106
|
-
|
|
88
|
+
facetName = _state$hierarchicalFa[0].name;
|
|
107
89
|
var facetValues = results.getFacetValues(facetName, {});
|
|
108
90
|
var data = Array.isArray(facetValues.data) ? facetValues.data : [];
|
|
109
91
|
var items = transformItems(shiftItemsValues(prepareItems(data)), {
|
|
@@ -111,21 +93,17 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
|
|
|
111
93
|
});
|
|
112
94
|
return items;
|
|
113
95
|
}
|
|
114
|
-
|
|
115
96
|
var items = getItems();
|
|
116
|
-
|
|
117
97
|
if (!connectorState.createURL) {
|
|
118
98
|
connectorState.createURL = function (facetValue) {
|
|
119
99
|
return createURL(getRefinedState(helper.state, facetValue));
|
|
120
100
|
};
|
|
121
101
|
}
|
|
122
|
-
|
|
123
102
|
if (!connectorState.refine) {
|
|
124
103
|
connectorState.refine = function (facetValue) {
|
|
125
104
|
helper.setState(getRefinedState(helper.state, facetValue)).search();
|
|
126
105
|
};
|
|
127
106
|
}
|
|
128
|
-
|
|
129
107
|
return {
|
|
130
108
|
canRefine: items.length > 0,
|
|
131
109
|
createURL: connectorState.createURL,
|
|
@@ -137,10 +115,9 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
|
|
|
137
115
|
getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters) {
|
|
138
116
|
if (searchParameters.isHierarchicalFacet(hierarchicalFacetName)) {
|
|
139
117
|
var facet = searchParameters.getHierarchicalFacetByName(hierarchicalFacetName);
|
|
140
|
-
process.env.NODE_ENV === 'development' ? (0,
|
|
118
|
+
process.env.NODE_ENV === 'development' ? (0, _utils.warning)((0, _utils.isEqual)(facet.attributes, attributes) && facet.separator === separator && facet.rootPath === rootPath, 'Using Breadcrumb and HierarchicalMenu on the same facet with different options overrides the configuration of the HierarchicalMenu.') : void 0;
|
|
141
119
|
return searchParameters;
|
|
142
120
|
}
|
|
143
|
-
|
|
144
121
|
return searchParameters.addHierarchicalFacet({
|
|
145
122
|
name: hierarchicalFacetName,
|
|
146
123
|
attributes: attributes,
|
|
@@ -151,7 +128,6 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
|
|
|
151
128
|
};
|
|
152
129
|
};
|
|
153
130
|
};
|
|
154
|
-
|
|
155
131
|
function prepareItems(data) {
|
|
156
132
|
return data.reduce(function (result, currentItem) {
|
|
157
133
|
if (currentItem.isRefined) {
|
|
@@ -159,16 +135,13 @@ function prepareItems(data) {
|
|
|
159
135
|
label: currentItem.name,
|
|
160
136
|
value: currentItem.escapedValue
|
|
161
137
|
});
|
|
162
|
-
|
|
163
138
|
if (Array.isArray(currentItem.data)) {
|
|
164
139
|
result = result.concat(prepareItems(currentItem.data));
|
|
165
140
|
}
|
|
166
141
|
}
|
|
167
|
-
|
|
168
142
|
return result;
|
|
169
143
|
}, []);
|
|
170
144
|
}
|
|
171
|
-
|
|
172
145
|
function shiftItemsValues(array) {
|
|
173
146
|
return array.map(function (x, idx) {
|
|
174
147
|
return {
|
|
@@ -177,6 +150,5 @@ function shiftItemsValues(array) {
|
|
|
177
150
|
};
|
|
178
151
|
});
|
|
179
152
|
}
|
|
180
|
-
|
|
181
153
|
var _default = connectBreadcrumb;
|
|
182
154
|
exports.default = _default;
|