instantsearch.js 4.49.1 → 4.49.2
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 +3 -3
- package/cjs/components/Answers/Answers.js +6 -16
- package/cjs/components/Breadcrumb/Breadcrumb.js +5 -12
- package/cjs/components/ClearRefinements/ClearRefinements.js +4 -11
- package/cjs/components/CurrentRefinements/CurrentRefinements.js +5 -12
- package/cjs/components/GeoSearchControls/GeoSearchButton.js +4 -6
- package/cjs/components/GeoSearchControls/GeoSearchControls.js +11 -20
- package/cjs/components/GeoSearchControls/GeoSearchToggle.js +4 -6
- package/cjs/components/Highlight/Highlight.js +3 -11
- package/cjs/components/Hits/Hits.js +8 -20
- package/cjs/components/InfiniteHits/InfiniteHits.js +13 -25
- package/cjs/components/InternalHighlight/InternalHighlight.js +0 -3
- package/cjs/components/MenuSelect/MenuSelect.js +9 -19
- package/cjs/components/Pagination/Pagination.js +10 -17
- package/cjs/components/Panel/Panel.js +7 -26
- package/cjs/components/PoweredBy/PoweredBy.js +4 -5
- package/cjs/components/QueryRuleCustomData/QueryRuleCustomData.js +2 -6
- package/cjs/components/RangeInput/RangeInput.js +16 -48
- package/cjs/components/RefinementList/RefinementList.js +19 -73
- package/cjs/components/RefinementList/RefinementListItem.js +8 -14
- package/cjs/components/RelevantSort/RelevantSort.js +4 -8
- package/cjs/components/ReverseHighlight/ReverseHighlight.js +3 -11
- package/cjs/components/ReverseSnippet/ReverseSnippet.js +3 -11
- package/cjs/components/SearchBox/SearchBox.js +25 -69
- package/cjs/components/Selector/Selector.js +3 -6
- package/cjs/components/Slider/Pit.js +3 -10
- package/cjs/components/Slider/Rheostat.js +63 -131
- package/cjs/components/Slider/Slider.js +28 -65
- package/cjs/components/Snippet/Snippet.js +3 -11
- package/cjs/components/Stats/Stats.js +7 -20
- package/cjs/components/Template/Template.js +8 -37
- package/cjs/components/ToggleRefinement/ToggleRefinement.js +4 -10
- package/cjs/components/VoiceSearch/VoiceSearch.js +8 -15
- package/cjs/connectors/answers/connectAnswers.js +21 -36
- package/cjs/connectors/autocomplete/connectAutocomplete.js +8 -25
- package/cjs/connectors/breadcrumb/connectBreadcrumb.js +17 -48
- package/cjs/connectors/clear-refinements/connectClearRefinements.js +27 -45
- package/cjs/connectors/configure/connectConfigure.js +6 -20
- package/cjs/connectors/configure-related-items/connectConfigureRelatedItems.js +11 -36
- package/cjs/connectors/current-refinements/connectCurrentRefinements.js +18 -57
- package/cjs/connectors/dynamic-widgets/connectDynamicWidgets.js +17 -37
- package/cjs/connectors/geo-search/connectGeoSearch.js +17 -47
- package/cjs/connectors/hierarchical-menu/connectHierarchicalMenu.js +38 -74
- package/cjs/connectors/hits/connectHits.js +10 -26
- package/cjs/connectors/hits/connectHitsWithInsights.js +0 -4
- package/cjs/connectors/hits-per-page/connectHitsPerPage.js +15 -38
- package/cjs/connectors/index.js +62 -96
- package/cjs/connectors/infinite-hits/connectInfiniteHits.js +26 -62
- package/cjs/connectors/infinite-hits/connectInfiniteHitsWithInsights.js +0 -4
- package/cjs/connectors/menu/connectMenu.js +28 -66
- package/cjs/connectors/numeric-menu/connectNumericMenu.js +24 -78
- package/cjs/connectors/pagination/Paginator.js +3 -20
- package/cjs/connectors/pagination/connectPagination.js +8 -25
- package/cjs/connectors/powered-by/connectPoweredBy.js +4 -13
- package/cjs/connectors/query-rules/connectQueryRules.js +32 -56
- package/cjs/connectors/range/connectRange.js +41 -101
- package/cjs/connectors/rating-menu/connectRatingMenu.js +23 -79
- package/cjs/connectors/refinement-list/connectRefinementList.js +37 -70
- package/cjs/connectors/relevant-sort/connectRelevantSort.js +4 -14
- package/cjs/connectors/search-box/connectSearchBox.js +7 -23
- package/cjs/connectors/sort-by/connectSortBy.js +11 -21
- package/cjs/connectors/stats/connectStats.js +4 -11
- package/cjs/connectors/toggle-refinement/connectToggleRefinement.js +29 -63
- package/cjs/connectors/voice-search/connectVoiceSearch.js +13 -35
- package/cjs/helpers/components/Highlight.js +4 -12
- package/cjs/helpers/components/ReverseHighlight.js +7 -19
- package/cjs/helpers/components/ReverseSnippet.js +7 -19
- package/cjs/helpers/components/Snippet.js +4 -12
- package/cjs/helpers/components/index.js +0 -8
- package/cjs/helpers/get-insights-anonymous-user-token.js +4 -15
- package/cjs/helpers/highlight.js +10 -16
- package/cjs/helpers/index.js +17 -31
- package/cjs/helpers/insights.js +5 -17
- package/cjs/helpers/reverseHighlight.js +10 -16
- package/cjs/helpers/reverseSnippet.js +10 -16
- package/cjs/helpers/snippet.js +10 -16
- package/cjs/index.js +3 -18
- package/cjs/lib/InstantSearch.js +79 -180
- package/cjs/lib/createHelpers.js +4 -11
- package/cjs/lib/formatNumber.js +0 -1
- package/cjs/lib/infiniteHitsCache/index.js +0 -2
- package/cjs/lib/infiniteHitsCache/sessionStorage.js +9 -18
- package/cjs/lib/insights/client.js +8 -34
- package/cjs/lib/insights/index.js +7 -13
- package/cjs/lib/insights/listener.js +4 -20
- package/cjs/lib/routers/history.js +63 -102
- package/cjs/lib/routers/index.js +0 -2
- package/cjs/lib/stateMappings/index.js +0 -3
- package/cjs/lib/stateMappings/simple.js +6 -13
- package/cjs/lib/stateMappings/singleIndex.js +1 -7
- package/cjs/lib/suit.js +2 -5
- package/cjs/lib/templating/index.js +0 -4
- package/cjs/lib/templating/prepareTemplateProps.js +8 -19
- package/cjs/lib/templating/renderTemplate.js +9 -24
- package/cjs/lib/utils/capitalize.js +0 -1
- package/cjs/lib/utils/checkIndexUiState.js +15 -43
- package/cjs/lib/utils/checkRendering.js +0 -2
- package/cjs/lib/utils/clearRefinements.js +2 -9
- package/cjs/lib/utils/concatHighlightedParts.js +1 -3
- package/cjs/lib/utils/createConcurrentSafePromise.js +0 -3
- package/cjs/lib/utils/createSendEventForFacet.js +7 -14
- package/cjs/lib/utils/createSendEventForHits.js +9 -33
- package/cjs/lib/utils/debounce.js +0 -3
- package/cjs/lib/utils/defer.js +0 -11
- package/cjs/lib/utils/detect-insights-client.js +0 -2
- package/cjs/lib/utils/documentation.js +2 -5
- package/cjs/lib/utils/escape-highlight.js +5 -22
- 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 +14 -34
- package/cjs/lib/utils/getAppIdAndApiKey.js +2 -3
- package/cjs/lib/utils/getContainerNode.js +0 -6
- package/cjs/lib/utils/getHighlightFromSiblings.js +0 -6
- package/cjs/lib/utils/getHighlightedParts.js +1 -4
- package/cjs/lib/utils/getObjectType.js +0 -1
- package/cjs/lib/utils/getPropertyByPath.js +0 -1
- package/cjs/lib/utils/getRefinements.js +13 -26
- package/cjs/lib/utils/getWidgetAttribute.js +0 -6
- package/cjs/lib/utils/hits-absolute-position.js +2 -6
- package/cjs/lib/utils/hits-query-id.js +2 -7
- package/cjs/lib/utils/index.js +0 -92
- package/cjs/lib/utils/isDomElement.js +0 -1
- package/cjs/lib/utils/isEqual.js +0 -8
- 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 +3 -13
- package/cjs/lib/utils/mergeSearchParameters.js +16 -40
- package/cjs/lib/utils/noop.js +0 -1
- package/cjs/lib/utils/range.js +8 -14
- package/cjs/lib/utils/render-args.js +0 -2
- package/cjs/lib/utils/resolveSearchParameters.js +0 -3
- package/cjs/lib/utils/reverseHighlightedParts.js +2 -8
- package/cjs/lib/utils/safelyRunOnBrowser.js +7 -9
- package/cjs/lib/utils/serializer.js +1 -3
- package/cjs/lib/utils/setIndexHelperState.js +0 -5
- 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 +8 -36
- package/cjs/middlewares/createInsightsMiddleware.js +15 -44
- package/cjs/middlewares/createMetadataMiddleware.js +4 -12
- package/cjs/middlewares/createRouterMiddleware.js +8 -19
- package/cjs/middlewares/index.js +0 -6
- package/cjs/types/algoliasearch.js +0 -2
- package/cjs/types/index.js +0 -28
- package/cjs/widgets/analytics/analytics.js +12 -47
- package/cjs/widgets/answers/answers.js +19 -39
- package/cjs/widgets/breadcrumb/breadcrumb.js +18 -38
- package/cjs/widgets/clear-refinements/clear-refinements.js +15 -35
- package/cjs/widgets/configure/configure.js +2 -10
- package/cjs/widgets/configure-related-items/configure-related-items.js +2 -10
- package/cjs/widgets/current-refinements/current-refinements.js +12 -30
- package/cjs/widgets/dynamic-widgets/dynamic-widgets.js +6 -25
- package/cjs/widgets/geo-search/GeoSearchRenderer.js +41 -68
- package/cjs/widgets/geo-search/createHTMLMarker.js +30 -60
- package/cjs/widgets/geo-search/defaultTemplates.js +0 -3
- package/cjs/widgets/geo-search/geo-search.js +27 -59
- package/cjs/widgets/hierarchical-menu/defaultTemplates.js +4 -7
- package/cjs/widgets/hierarchical-menu/hierarchical-menu.js +28 -47
- package/cjs/widgets/hits/hits.js +16 -37
- package/cjs/widgets/hits-per-page/hits-per-page.js +13 -31
- package/cjs/widgets/index/index.js +49 -95
- package/cjs/widgets/index.js +12 -50
- package/cjs/widgets/infinite-hits/infinite-hits.js +23 -44
- package/cjs/widgets/menu/defaultTemplates.js +3 -6
- package/cjs/widgets/menu/menu.js +23 -43
- package/cjs/widgets/menu-select/defaultTemplates.js +1 -3
- package/cjs/widgets/menu-select/menu-select.js +18 -38
- package/cjs/widgets/numeric-menu/defaultTemplates.js +3 -4
- package/cjs/widgets/numeric-menu/numeric-menu.js +17 -37
- package/cjs/widgets/pagination/pagination.js +32 -53
- package/cjs/widgets/panel/panel.js +20 -48
- package/cjs/widgets/places/places.js +16 -33
- package/cjs/widgets/powered-by/powered-by.js +10 -27
- package/cjs/widgets/query-rule-context/query-rule-context.js +2 -13
- package/cjs/widgets/query-rule-custom-data/query-rule-custom-data.js +14 -32
- package/cjs/widgets/range-input/range-input.js +23 -50
- package/cjs/widgets/range-slider/range-slider.js +28 -53
- package/cjs/widgets/rating-menu/defaultTemplates.js +8 -14
- package/cjs/widgets/rating-menu/rating-menu.js +17 -38
- package/cjs/widgets/refinement-list/defaultTemplates.js +5 -8
- package/cjs/widgets/refinement-list/refinement-list.js +39 -60
- package/cjs/widgets/relevant-sort/relevant-sort.js +10 -29
- package/cjs/widgets/search-box/defaultTemplates.js +0 -5
- package/cjs/widgets/search-box/search-box.js +31 -49
- package/cjs/widgets/sort-by/sort-by.js +11 -29
- package/cjs/widgets/stats/defaultTemplates.js +0 -1
- package/cjs/widgets/stats/stats.js +27 -57
- package/cjs/widgets/toggle-refinement/toggle-refinement.js +16 -36
- package/cjs/widgets/voice-search/defaultTemplates.js +4 -14
- package/cjs/widgets/voice-search/voice-search.js +17 -36
- package/dist/instantsearch.development.d.ts +8 -6
- package/dist/instantsearch.development.js +1722 -3088
- package/dist/instantsearch.development.js.map +1 -1
- package/dist/instantsearch.production.d.ts +8 -6
- package/dist/instantsearch.production.min.d.ts +8 -6
- package/dist/instantsearch.production.min.js +2 -2
- package/dist/instantsearch.production.min.js.map +1 -1
- package/es/components/Answers/Answers.js +6 -11
- package/es/components/Breadcrumb/Breadcrumb.js +5 -7
- package/es/components/ClearRefinements/ClearRefinements.js +4 -6
- package/es/components/CurrentRefinements/CurrentRefinements.js +7 -10
- package/es/components/GeoSearchControls/GeoSearchButton.js +6 -6
- package/es/components/GeoSearchControls/GeoSearchControls.js +11 -13
- package/es/components/GeoSearchControls/GeoSearchToggle.js +6 -6
- package/es/components/Highlight/Highlight.js +3 -7
- package/es/components/Hits/Hits.js +8 -15
- package/es/components/InfiniteHits/InfiniteHits.js +13 -20
- package/es/components/MenuSelect/MenuSelect.js +9 -13
- package/es/components/Pagination/Pagination.js +12 -15
- package/es/components/Panel/Panel.js +7 -20
- package/es/components/PoweredBy/PoweredBy.js +6 -5
- package/es/components/QueryRuleCustomData/QueryRuleCustomData.js +4 -4
- package/es/components/RangeInput/RangeInput.js +16 -43
- package/es/components/RefinementList/RefinementList.js +19 -64
- package/es/components/RefinementList/RefinementListItem.js +8 -10
- package/es/components/RelevantSort/RelevantSort.js +6 -6
- package/es/components/ReverseHighlight/ReverseHighlight.js +3 -7
- package/es/components/ReverseSnippet/ReverseSnippet.js +3 -7
- package/es/components/SearchBox/SearchBox.js +25 -63
- package/es/components/Selector/Selector.js +5 -5
- package/es/components/Slider/Pit.js +3 -7
- package/es/components/Slider/Rheostat.js +64 -129
- package/es/components/Slider/Slider.js +28 -58
- package/es/components/Snippet/Snippet.js +3 -7
- package/es/components/Stats/Stats.js +7 -15
- package/es/components/Template/Template.js +8 -32
- package/es/components/ToggleRefinement/ToggleRefinement.js +4 -6
- package/es/components/VoiceSearch/VoiceSearch.js +10 -13
- package/es/connectors/answers/connectAnswers.js +21 -35
- package/es/connectors/autocomplete/connectAutocomplete.js +8 -23
- package/es/connectors/breadcrumb/connectBreadcrumb.js +17 -46
- package/es/connectors/clear-refinements/connectClearRefinements.js +27 -43
- package/es/connectors/configure/connectConfigure.js +7 -16
- package/es/connectors/configure-related-items/connectConfigureRelatedItems.js +11 -31
- package/es/connectors/current-refinements/connectCurrentRefinements.js +18 -55
- package/es/connectors/dynamic-widgets/connectDynamicWidgets.js +17 -35
- package/es/connectors/geo-search/connectGeoSearch.js +17 -45
- package/es/connectors/hierarchical-menu/connectHierarchicalMenu.js +38 -72
- package/es/connectors/hits/connectHits.js +10 -24
- package/es/connectors/hits-per-page/connectHitsPerPage.js +15 -36
- package/es/connectors/index.d.ts +2 -1
- package/es/connectors/index.js +6 -3
- package/es/connectors/infinite-hits/connectInfiniteHits.js +26 -60
- package/es/connectors/menu/connectMenu.js +28 -64
- package/es/connectors/numeric-menu/connectNumericMenu.js +24 -76
- package/es/connectors/pagination/Paginator.js +3 -19
- package/es/connectors/pagination/connectPagination.js +8 -21
- package/es/connectors/powered-by/connectPoweredBy.js +4 -11
- package/es/connectors/query-rules/connectQueryRules.js +32 -54
- package/es/connectors/range/connectRange.js +41 -99
- package/es/connectors/rating-menu/connectRatingMenu.js +23 -77
- package/es/connectors/refinement-list/connectRefinementList.js +37 -68
- package/es/connectors/relevant-sort/connectRelevantSort.js +4 -13
- package/es/connectors/search-box/connectSearchBox.js +7 -21
- package/es/connectors/sort-by/connectSortBy.js +11 -19
- package/es/connectors/stats/connectStats.js +4 -9
- package/es/connectors/toggle-refinement/connectToggleRefinement.js +29 -61
- package/es/connectors/voice-search/connectVoiceSearch.js +13 -31
- package/es/helpers/components/Highlight.js +4 -8
- package/es/helpers/components/ReverseHighlight.js +7 -15
- package/es/helpers/components/ReverseSnippet.js +7 -15
- package/es/helpers/components/Snippet.js +4 -8
- package/es/helpers/get-insights-anonymous-user-token.js +2 -10
- package/es/helpers/highlight.js +9 -11
- package/es/helpers/insights.js +3 -10
- package/es/helpers/reverseHighlight.js +9 -11
- package/es/helpers/reverseSnippet.js +9 -11
- package/es/helpers/snippet.js +9 -11
- package/es/index.js +0 -2
- package/es/lib/InstantSearch.js +79 -170
- package/es/lib/createHelpers.js +4 -8
- package/es/lib/infiniteHitsCache/sessionStorage.js +9 -16
- package/es/lib/insights/client.js +8 -32
- package/es/lib/insights/listener.js +6 -18
- package/es/lib/routers/history.js +63 -99
- package/es/lib/stateMappings/simple.js +6 -12
- package/es/lib/stateMappings/singleIndex.js +1 -6
- package/es/lib/suit.js +2 -3
- package/es/lib/templating/prepareTemplateProps.js +8 -18
- package/es/lib/templating/renderTemplate.js +9 -20
- package/es/lib/utils/checkIndexUiState.js +18 -40
- 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 +3 -16
- 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 +14 -32
- 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 +13 -24
- package/es/lib/utils/getWidgetAttribute.js +0 -5
- package/es/lib/utils/hits-absolute-position.js +2 -5
- package/es/lib/utils/hits-query-id.js +2 -6
- package/es/lib/utils/isEqual.js +0 -7
- package/es/lib/utils/isPlainObject.js +3 -10
- package/es/lib/utils/logger.js +2 -12
- package/es/lib/utils/mergeSearchParameters.js +16 -37
- package/es/lib/utils/range.js +8 -13
- package/es/lib/utils/resolveSearchParameters.js +0 -2
- package/es/lib/utils/reverseHighlightedParts.js +2 -6
- 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 +8 -35
- package/es/middlewares/createInsightsMiddleware.js +15 -41
- package/es/middlewares/createMetadataMiddleware.js +3 -9
- package/es/middlewares/createRouterMiddleware.js +8 -13
- package/es/types/index.js +9 -5
- package/es/widgets/analytics/analytics.js +12 -45
- package/es/widgets/answers/answers.js +19 -28
- package/es/widgets/breadcrumb/breadcrumb.js +18 -27
- package/es/widgets/clear-refinements/clear-refinements.js +15 -24
- package/es/widgets/configure/configure.js +3 -6
- package/es/widgets/configure-related-items/configure-related-items.js +2 -7
- package/es/widgets/current-refinements/current-refinements.js +12 -21
- package/es/widgets/dynamic-widgets/dynamic-widgets.js +6 -20
- package/es/widgets/geo-search/GeoSearchRenderer.js +41 -63
- package/es/widgets/geo-search/createHTMLMarker.js +30 -59
- package/es/widgets/geo-search/defaultTemplates.js +2 -2
- package/es/widgets/geo-search/geo-search.js +27 -49
- package/es/widgets/hierarchical-menu/defaultTemplates.js +5 -4
- package/es/widgets/hierarchical-menu/hierarchical-menu.js +28 -36
- package/es/widgets/hits/hits.js +16 -25
- package/es/widgets/hits-per-page/hits-per-page.js +13 -22
- package/es/widgets/index/index.js +49 -91
- package/es/widgets/index.d.ts +2 -1
- package/es/widgets/index.js +4 -3
- package/es/widgets/infinite-hits/infinite-hits.js +23 -32
- package/es/widgets/menu/defaultTemplates.js +4 -3
- package/es/widgets/menu/menu.js +23 -32
- package/es/widgets/menu-select/defaultTemplates.js +1 -1
- package/es/widgets/menu-select/menu-select.js +18 -27
- package/es/widgets/numeric-menu/defaultTemplates.js +4 -3
- package/es/widgets/numeric-menu/numeric-menu.js +17 -26
- package/es/widgets/pagination/pagination.js +32 -44
- package/es/widgets/panel/panel.js +20 -40
- package/es/widgets/places/places.js +16 -32
- package/es/widgets/powered-by/powered-by.js +10 -18
- package/es/widgets/query-rule-context/query-rule-context.js +2 -9
- package/es/widgets/query-rule-custom-data/query-rule-custom-data.js +13 -22
- package/es/widgets/range-input/range-input.js +23 -40
- package/es/widgets/range-slider/range-slider.js +28 -44
- package/es/widgets/rating-menu/defaultTemplates.js +9 -12
- package/es/widgets/rating-menu/rating-menu.js +17 -27
- package/es/widgets/refinement-list/defaultTemplates.js +6 -5
- package/es/widgets/refinement-list/refinement-list.js +39 -48
- package/es/widgets/relevant-sort/relevant-sort.js +10 -19
- package/es/widgets/search-box/defaultTemplates.js +1 -4
- package/es/widgets/search-box/search-box.js +31 -39
- package/es/widgets/sort-by/sort-by.js +11 -20
- package/es/widgets/stats/stats.js +26 -45
- package/es/widgets/toggle-refinement/toggle-refinement.js +16 -25
- package/es/widgets/voice-search/defaultTemplates.js +5 -13
- package/es/widgets/voice-search/voice-search.js +17 -26
- 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/CHANGELOG.md +0 -3693
|
@@ -1,64 +1,48 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
2
|
-
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
|
-
|
|
1
|
+
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; }
|
|
2
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
5
3
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
-
|
|
7
4
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
8
|
-
|
|
9
5
|
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
6
|
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
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; }
|
|
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
|
-
|
|
8
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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; }
|
|
17
9
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
18
|
-
|
|
19
10
|
import { checkRendering, warning, createDocumentationMessageGenerator, isEqual, noop } from "../../lib/utils/index.js";
|
|
20
11
|
var withUsage = createDocumentationMessageGenerator({
|
|
21
12
|
name: 'breadcrumb',
|
|
22
13
|
connector: true
|
|
23
14
|
});
|
|
24
|
-
|
|
25
15
|
var connectBreadcrumb = function connectBreadcrumb(renderFn) {
|
|
26
16
|
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
|
|
27
17
|
checkRendering(renderFn, withUsage());
|
|
28
18
|
var connectorState = {};
|
|
29
19
|
return function (widgetParams) {
|
|
30
20
|
var _ref = widgetParams || {},
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
21
|
+
attributes = _ref.attributes,
|
|
22
|
+
_ref$separator = _ref.separator,
|
|
23
|
+
separator = _ref$separator === void 0 ? ' > ' : _ref$separator,
|
|
24
|
+
_ref$rootPath = _ref.rootPath,
|
|
25
|
+
rootPath = _ref$rootPath === void 0 ? null : _ref$rootPath,
|
|
26
|
+
_ref$transformItems = _ref.transformItems,
|
|
27
|
+
transformItems = _ref$transformItems === void 0 ? function (items) {
|
|
28
|
+
return items;
|
|
29
|
+
} : _ref$transformItems;
|
|
41
30
|
if (!attributes || !Array.isArray(attributes) || attributes.length === 0) {
|
|
42
31
|
throw new Error(withUsage('The `attributes` option expects an array of strings.'));
|
|
43
32
|
}
|
|
44
|
-
|
|
45
33
|
var _attributes = _slicedToArray(attributes, 1),
|
|
46
|
-
|
|
47
|
-
|
|
34
|
+
hierarchicalFacetName = _attributes[0];
|
|
48
35
|
function getRefinedState(state, facetValue) {
|
|
49
36
|
if (!facetValue) {
|
|
50
37
|
var breadcrumb = state.getHierarchicalFacetBreadcrumb(hierarchicalFacetName);
|
|
51
|
-
|
|
52
38
|
if (breadcrumb.length === 0) {
|
|
53
39
|
return state;
|
|
54
40
|
} else {
|
|
55
41
|
return state.resetPage().toggleFacetRefinement(hierarchicalFacetName, breadcrumb[0]);
|
|
56
42
|
}
|
|
57
43
|
}
|
|
58
|
-
|
|
59
44
|
return state.resetPage().toggleFacetRefinement(hierarchicalFacetName, facetValue);
|
|
60
45
|
}
|
|
61
|
-
|
|
62
46
|
return {
|
|
63
47
|
$$type: 'ais.breadcrumb',
|
|
64
48
|
init: function init(initOptions) {
|
|
@@ -81,10 +65,9 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
|
|
|
81
65
|
},
|
|
82
66
|
getWidgetRenderState: function getWidgetRenderState(_ref2) {
|
|
83
67
|
var helper = _ref2.helper,
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
68
|
+
createURL = _ref2.createURL,
|
|
69
|
+
results = _ref2.results,
|
|
70
|
+
state = _ref2.state;
|
|
88
71
|
function getItems() {
|
|
89
72
|
// The hierarchicalFacets condition is required for flavors
|
|
90
73
|
// that render immediately with empty results, without relying
|
|
@@ -92,10 +75,8 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
|
|
|
92
75
|
if (!results || state.hierarchicalFacets.length === 0) {
|
|
93
76
|
return [];
|
|
94
77
|
}
|
|
95
|
-
|
|
96
78
|
var _state$hierarchicalFa = _slicedToArray(state.hierarchicalFacets, 1),
|
|
97
|
-
|
|
98
|
-
|
|
79
|
+
facetName = _state$hierarchicalFa[0].name;
|
|
99
80
|
var facetValues = results.getFacetValues(facetName, {});
|
|
100
81
|
var data = Array.isArray(facetValues.data) ? facetValues.data : [];
|
|
101
82
|
var items = transformItems(shiftItemsValues(prepareItems(data)), {
|
|
@@ -103,21 +84,17 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
|
|
|
103
84
|
});
|
|
104
85
|
return items;
|
|
105
86
|
}
|
|
106
|
-
|
|
107
87
|
var items = getItems();
|
|
108
|
-
|
|
109
88
|
if (!connectorState.createURL) {
|
|
110
89
|
connectorState.createURL = function (facetValue) {
|
|
111
90
|
return createURL(getRefinedState(helper.state, facetValue));
|
|
112
91
|
};
|
|
113
92
|
}
|
|
114
|
-
|
|
115
93
|
if (!connectorState.refine) {
|
|
116
94
|
connectorState.refine = function (facetValue) {
|
|
117
95
|
helper.setState(getRefinedState(helper.state, facetValue)).search();
|
|
118
96
|
};
|
|
119
97
|
}
|
|
120
|
-
|
|
121
98
|
return {
|
|
122
99
|
canRefine: items.length > 0,
|
|
123
100
|
createURL: connectorState.createURL,
|
|
@@ -132,7 +109,6 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
|
|
|
132
109
|
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
110
|
return searchParameters;
|
|
134
111
|
}
|
|
135
|
-
|
|
136
112
|
return searchParameters.addHierarchicalFacet({
|
|
137
113
|
name: hierarchicalFacetName,
|
|
138
114
|
attributes: attributes,
|
|
@@ -143,7 +119,6 @@ var connectBreadcrumb = function connectBreadcrumb(renderFn) {
|
|
|
143
119
|
};
|
|
144
120
|
};
|
|
145
121
|
};
|
|
146
|
-
|
|
147
122
|
function prepareItems(data) {
|
|
148
123
|
return data.reduce(function (result, currentItem) {
|
|
149
124
|
if (currentItem.isRefined) {
|
|
@@ -151,16 +126,13 @@ function prepareItems(data) {
|
|
|
151
126
|
label: currentItem.name,
|
|
152
127
|
value: currentItem.escapedValue
|
|
153
128
|
});
|
|
154
|
-
|
|
155
129
|
if (Array.isArray(currentItem.data)) {
|
|
156
130
|
result = result.concat(prepareItems(currentItem.data));
|
|
157
131
|
}
|
|
158
132
|
}
|
|
159
|
-
|
|
160
133
|
return result;
|
|
161
134
|
}, []);
|
|
162
135
|
}
|
|
163
|
-
|
|
164
136
|
function shiftItemsValues(array) {
|
|
165
137
|
return array.map(function (x, idx) {
|
|
166
138
|
return {
|
|
@@ -169,5 +141,4 @@ function shiftItemsValues(array) {
|
|
|
169
141
|
};
|
|
170
142
|
});
|
|
171
143
|
}
|
|
172
|
-
|
|
173
144
|
export default connectBreadcrumb;
|
|
@@ -1,45 +1,33 @@
|
|
|
1
1
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
2
|
-
|
|
3
2
|
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
3
|
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
|
-
|
|
4
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
9
5
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
10
|
-
|
|
11
6
|
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; }
|
|
12
|
-
|
|
13
|
-
function
|
|
14
|
-
|
|
15
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
16
|
-
|
|
7
|
+
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; }
|
|
8
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
17
9
|
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
|
-
|
|
19
10
|
import { checkRendering, clearRefinements, getRefinements, createDocumentationMessageGenerator, noop, uniq, mergeSearchParameters } from "../../lib/utils/index.js";
|
|
20
11
|
var withUsage = createDocumentationMessageGenerator({
|
|
21
12
|
name: 'clear-refinements',
|
|
22
13
|
connector: true
|
|
23
14
|
});
|
|
24
|
-
|
|
25
15
|
var connectClearRefinements = function connectClearRefinements(renderFn) {
|
|
26
16
|
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
|
|
27
17
|
checkRendering(renderFn, withUsage());
|
|
28
18
|
return function (widgetParams) {
|
|
29
19
|
var _ref = widgetParams || {},
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
20
|
+
_ref$includedAttribut = _ref.includedAttributes,
|
|
21
|
+
includedAttributes = _ref$includedAttribut === void 0 ? [] : _ref$includedAttribut,
|
|
22
|
+
_ref$excludedAttribut = _ref.excludedAttributes,
|
|
23
|
+
excludedAttributes = _ref$excludedAttribut === void 0 ? ['query'] : _ref$excludedAttribut,
|
|
24
|
+
_ref$transformItems = _ref.transformItems,
|
|
25
|
+
transformItems = _ref$transformItems === void 0 ? function (items) {
|
|
26
|
+
return items;
|
|
27
|
+
} : _ref$transformItems;
|
|
39
28
|
if (widgetParams && widgetParams.includedAttributes && widgetParams.excludedAttributes) {
|
|
40
29
|
throw new Error(withUsage('The options `includedAttributes` and `excludedAttributes` cannot be used together.'));
|
|
41
30
|
}
|
|
42
|
-
|
|
43
31
|
var connectorState = {
|
|
44
32
|
refine: noop,
|
|
45
33
|
createURL: function createURL() {
|
|
@@ -47,15 +35,12 @@ var connectClearRefinements = function connectClearRefinements(renderFn) {
|
|
|
47
35
|
},
|
|
48
36
|
attributesToClear: []
|
|
49
37
|
};
|
|
50
|
-
|
|
51
38
|
var cachedRefine = function cachedRefine() {
|
|
52
39
|
return connectorState.refine();
|
|
53
40
|
};
|
|
54
|
-
|
|
55
41
|
var cachedCreateURL = function cachedCreateURL() {
|
|
56
42
|
return connectorState.createURL();
|
|
57
43
|
};
|
|
58
|
-
|
|
59
44
|
return {
|
|
60
45
|
$$type: 'ais.clearRefinements',
|
|
61
46
|
init: function init(initOptions) {
|
|
@@ -80,8 +65,8 @@ var connectClearRefinements = function connectClearRefinements(renderFn) {
|
|
|
80
65
|
},
|
|
81
66
|
getWidgetRenderState: function getWidgetRenderState(_ref2) {
|
|
82
67
|
var createURL = _ref2.createURL,
|
|
83
|
-
|
|
84
|
-
|
|
68
|
+
scopedResults = _ref2.scopedResults,
|
|
69
|
+
results = _ref2.results;
|
|
85
70
|
connectorState.attributesToClear = scopedResults.reduce(function (attributesToClear, scopedResult) {
|
|
86
71
|
return attributesToClear.concat(getAttributesToClear({
|
|
87
72
|
scopedResult: scopedResult,
|
|
@@ -91,29 +76,26 @@ var connectClearRefinements = function connectClearRefinements(renderFn) {
|
|
|
91
76
|
results: results
|
|
92
77
|
}));
|
|
93
78
|
}, []);
|
|
94
|
-
|
|
95
79
|
connectorState.refine = function () {
|
|
96
80
|
connectorState.attributesToClear.forEach(function (_ref3) {
|
|
97
81
|
var indexHelper = _ref3.helper,
|
|
98
|
-
|
|
82
|
+
items = _ref3.items;
|
|
99
83
|
indexHelper.setState(clearRefinements({
|
|
100
84
|
helper: indexHelper,
|
|
101
85
|
attributesToClear: items
|
|
102
86
|
})).search();
|
|
103
87
|
});
|
|
104
88
|
};
|
|
105
|
-
|
|
106
89
|
connectorState.createURL = function () {
|
|
107
90
|
return createURL(mergeSearchParameters.apply(void 0, _toConsumableArray(connectorState.attributesToClear.map(function (_ref4) {
|
|
108
91
|
var indexHelper = _ref4.helper,
|
|
109
|
-
|
|
92
|
+
items = _ref4.items;
|
|
110
93
|
return clearRefinements({
|
|
111
94
|
helper: indexHelper,
|
|
112
95
|
attributesToClear: items
|
|
113
96
|
});
|
|
114
97
|
}))));
|
|
115
98
|
};
|
|
116
|
-
|
|
117
99
|
var canRefine = connectorState.attributesToClear.some(function (attributeToClear) {
|
|
118
100
|
return attributeToClear.items.length > 0;
|
|
119
101
|
});
|
|
@@ -128,26 +110,29 @@ var connectClearRefinements = function connectClearRefinements(renderFn) {
|
|
|
128
110
|
};
|
|
129
111
|
};
|
|
130
112
|
};
|
|
131
|
-
|
|
132
113
|
function getAttributesToClear(_ref5) {
|
|
133
114
|
var scopedResult = _ref5.scopedResult,
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
115
|
+
includedAttributes = _ref5.includedAttributes,
|
|
116
|
+
excludedAttributes = _ref5.excludedAttributes,
|
|
117
|
+
transformItems = _ref5.transformItems,
|
|
118
|
+
results = _ref5.results;
|
|
138
119
|
var includesQuery = includedAttributes.indexOf('query') !== -1 || excludedAttributes.indexOf('query') === -1;
|
|
139
120
|
return {
|
|
140
121
|
helper: scopedResult.helper,
|
|
141
122
|
items: transformItems(uniq(getRefinements(scopedResult.results, scopedResult.helper.state, includesQuery).map(function (refinement) {
|
|
142
123
|
return refinement.attribute;
|
|
143
124
|
}).filter(function (attribute) {
|
|
144
|
-
return (
|
|
145
|
-
|
|
125
|
+
return (
|
|
126
|
+
// If the array is empty (default case), we keep all the attributes
|
|
127
|
+
includedAttributes.length === 0 ||
|
|
128
|
+
// Otherwise, only add the specified attributes
|
|
146
129
|
includedAttributes.indexOf(attribute) !== -1
|
|
147
130
|
);
|
|
148
131
|
}).filter(function (attribute) {
|
|
149
|
-
return (
|
|
150
|
-
|
|
132
|
+
return (
|
|
133
|
+
// If the query is included, we ignore the default `excludedAttributes = ['query']`
|
|
134
|
+
attribute === 'query' && includesQuery ||
|
|
135
|
+
// Otherwise, ignore the excluded attributes
|
|
151
136
|
excludedAttributes.indexOf(attribute) === -1
|
|
152
137
|
);
|
|
153
138
|
})), {
|
|
@@ -155,5 +140,4 @@ function getAttributesToClear(_ref5) {
|
|
|
155
140
|
})
|
|
156
141
|
};
|
|
157
142
|
}
|
|
158
|
-
|
|
159
143
|
export default connectClearRefinements;
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
2
|
-
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
|
-
|
|
1
|
+
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; }
|
|
2
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
5
3
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
-
|
|
7
4
|
import algoliasearchHelper from 'algoliasearch-helper';
|
|
8
5
|
import { createDocumentationMessageGenerator, isPlainObject, mergeSearchParameters, noop } from "../../lib/utils/index.js";
|
|
6
|
+
|
|
9
7
|
/**
|
|
10
8
|
* Refine the given search parameters.
|
|
11
9
|
*/
|
|
@@ -14,7 +12,6 @@ var withUsage = createDocumentationMessageGenerator({
|
|
|
14
12
|
name: 'configure',
|
|
15
13
|
connector: true
|
|
16
14
|
});
|
|
17
|
-
|
|
18
15
|
function getInitialSearchParameters(state, widgetParams) {
|
|
19
16
|
// We leverage the helper internals to remove the `widgetParams` from
|
|
20
17
|
// the state. The function `setQueryParameters` omits the values that
|
|
@@ -23,7 +20,6 @@ function getInitialSearchParameters(state, widgetParams) {
|
|
|
23
20
|
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));
|
|
24
21
|
}, {}));
|
|
25
22
|
}
|
|
26
|
-
|
|
27
23
|
var connectConfigure = function connectConfigure() {
|
|
28
24
|
var renderFn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;
|
|
29
25
|
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
|
|
@@ -31,21 +27,20 @@ var connectConfigure = function connectConfigure() {
|
|
|
31
27
|
if (!widgetParams || !isPlainObject(widgetParams.searchParameters)) {
|
|
32
28
|
throw new Error(withUsage('The `searchParameters` option expects an object.'));
|
|
33
29
|
}
|
|
34
|
-
|
|
35
30
|
var connectorState = {};
|
|
36
|
-
|
|
37
31
|
function refine(helper) {
|
|
38
32
|
return function (searchParameters) {
|
|
39
33
|
// Merge new `searchParameters` with the ones set from other widgets
|
|
40
34
|
var actualState = getInitialSearchParameters(helper.state, widgetParams);
|
|
41
|
-
var nextSearchParameters = mergeSearchParameters(actualState, new algoliasearchHelper.SearchParameters(searchParameters));
|
|
35
|
+
var nextSearchParameters = mergeSearchParameters(actualState, new algoliasearchHelper.SearchParameters(searchParameters));
|
|
42
36
|
|
|
43
|
-
|
|
37
|
+
// Update original `widgetParams.searchParameters` to the new refined one
|
|
38
|
+
widgetParams.searchParameters = searchParameters;
|
|
44
39
|
|
|
40
|
+
// Trigger a search with the resolved search parameters
|
|
45
41
|
helper.setState(nextSearchParameters).search();
|
|
46
42
|
};
|
|
47
43
|
}
|
|
48
|
-
|
|
49
44
|
return {
|
|
50
45
|
$$type: 'ais.configure',
|
|
51
46
|
init: function init(initOptions) {
|
|
@@ -67,7 +62,6 @@ var connectConfigure = function connectConfigure() {
|
|
|
67
62
|
},
|
|
68
63
|
getRenderState: function getRenderState(renderState, renderOptions) {
|
|
69
64
|
var _renderState$configur;
|
|
70
|
-
|
|
71
65
|
var widgetRenderState = this.getWidgetRenderState(renderOptions);
|
|
72
66
|
return _objectSpread(_objectSpread({}, renderState), {}, {
|
|
73
67
|
configure: _objectSpread(_objectSpread({}, widgetRenderState), {}, {
|
|
@@ -79,11 +73,9 @@ var connectConfigure = function connectConfigure() {
|
|
|
79
73
|
},
|
|
80
74
|
getWidgetRenderState: function getWidgetRenderState(_ref2) {
|
|
81
75
|
var helper = _ref2.helper;
|
|
82
|
-
|
|
83
76
|
if (!connectorState.refine) {
|
|
84
77
|
connectorState.refine = refine(helper);
|
|
85
78
|
}
|
|
86
|
-
|
|
87
79
|
return {
|
|
88
80
|
refine: connectorState.refine,
|
|
89
81
|
widgetParams: widgetParams
|
|
@@ -101,5 +93,4 @@ var connectConfigure = function connectConfigure() {
|
|
|
101
93
|
};
|
|
102
94
|
};
|
|
103
95
|
};
|
|
104
|
-
|
|
105
96
|
export default connectConfigure;
|
|
@@ -1,21 +1,12 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
2
|
-
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
|
-
|
|
1
|
+
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; }
|
|
2
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
5
3
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
-
|
|
7
4
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
8
|
-
|
|
9
5
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
10
|
-
|
|
11
6
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
12
|
-
|
|
13
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
|
14
|
-
|
|
7
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
15
8
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
16
|
-
|
|
17
9
|
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
|
-
|
|
19
10
|
import algoliasearchHelper from 'algoliasearch-helper';
|
|
20
11
|
import { createDocumentationMessageGenerator, getObjectType, warning, getPropertyByPath } from "../../lib/utils/index.js";
|
|
21
12
|
import connectConfigure from "../configure/connectConfigure.js";
|
|
@@ -23,37 +14,31 @@ var withUsage = createDocumentationMessageGenerator({
|
|
|
23
14
|
name: 'configure-related-items',
|
|
24
15
|
connector: true
|
|
25
16
|
});
|
|
26
|
-
|
|
27
17
|
function createOptionalFilter(_ref) {
|
|
28
18
|
var attributeName = _ref.attributeName,
|
|
29
|
-
|
|
30
|
-
|
|
19
|
+
attributeValue = _ref.attributeValue,
|
|
20
|
+
attributeScore = _ref.attributeScore;
|
|
31
21
|
return "".concat(attributeName, ":").concat(attributeValue, "<score=").concat(attributeScore || 1, ">");
|
|
32
22
|
}
|
|
33
|
-
|
|
34
23
|
var connectConfigureRelatedItems = function connectConfigureRelatedItems(renderFn, unmountFn) {
|
|
35
24
|
return function (widgetParams) {
|
|
36
25
|
var _ref2 = widgetParams || {},
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
26
|
+
hit = _ref2.hit,
|
|
27
|
+
matchingPatterns = _ref2.matchingPatterns,
|
|
28
|
+
_ref2$transformSearch = _ref2.transformSearchParameters,
|
|
29
|
+
transformSearchParameters = _ref2$transformSearch === void 0 ? function (x) {
|
|
30
|
+
return x;
|
|
31
|
+
} : _ref2$transformSearch;
|
|
44
32
|
if (!hit) {
|
|
45
33
|
throw new Error(withUsage('The `hit` option is required.'));
|
|
46
34
|
}
|
|
47
|
-
|
|
48
35
|
if (!matchingPatterns) {
|
|
49
36
|
throw new Error(withUsage('The `matchingPatterns` option is required.'));
|
|
50
37
|
}
|
|
51
|
-
|
|
52
38
|
var optionalFilters = Object.keys(matchingPatterns).reduce(function (acc, attributeName) {
|
|
53
39
|
var attribute = matchingPatterns[attributeName];
|
|
54
40
|
var attributeValue = getPropertyByPath(hit, attributeName);
|
|
55
41
|
var attributeScore = attribute.score;
|
|
56
|
-
|
|
57
42
|
if (Array.isArray(attributeValue)) {
|
|
58
43
|
return [].concat(_toConsumableArray(acc), [attributeValue.map(function (attributeSubValue) {
|
|
59
44
|
return createOptionalFilter({
|
|
@@ -63,7 +48,6 @@ var connectConfigureRelatedItems = function connectConfigureRelatedItems(renderF
|
|
|
63
48
|
});
|
|
64
49
|
})]);
|
|
65
50
|
}
|
|
66
|
-
|
|
67
51
|
if (typeof attributeValue === 'string') {
|
|
68
52
|
return [].concat(_toConsumableArray(acc), [createOptionalFilter({
|
|
69
53
|
attributeName: attributeName,
|
|
@@ -71,17 +55,14 @@ var connectConfigureRelatedItems = function connectConfigureRelatedItems(renderF
|
|
|
71
55
|
attributeScore: attributeScore
|
|
72
56
|
})]);
|
|
73
57
|
}
|
|
74
|
-
|
|
75
58
|
process.env.NODE_ENV === 'development' ? warning(false, "\nThe `matchingPatterns` option returned a value of type ".concat(getObjectType(attributeValue), " for the \"").concat(attributeName, "\" key. This value was not sent to Algolia because `optionalFilters` only supports strings and array of strings.\n\nYou can remove the \"").concat(attributeName, "\" key from the `matchingPatterns` option.\n\nSee https://www.algolia.com/doc/api-reference/api-parameters/optionalFilters/\n ")) : void 0;
|
|
76
59
|
return acc;
|
|
77
60
|
}, []);
|
|
78
|
-
|
|
79
61
|
var searchParameters = _objectSpread({}, transformSearchParameters(new algoliasearchHelper.SearchParameters({
|
|
80
62
|
sumOrFiltersScores: true,
|
|
81
63
|
facetFilters: ["objectID:-".concat(hit.objectID)],
|
|
82
64
|
optionalFilters: optionalFilters
|
|
83
65
|
})));
|
|
84
|
-
|
|
85
66
|
var makeWidget = connectConfigure(renderFn, unmountFn);
|
|
86
67
|
return _objectSpread(_objectSpread({}, makeWidget({
|
|
87
68
|
searchParameters: searchParameters
|
|
@@ -90,5 +71,4 @@ var connectConfigureRelatedItems = function connectConfigureRelatedItems(renderF
|
|
|
90
71
|
});
|
|
91
72
|
};
|
|
92
73
|
};
|
|
93
|
-
|
|
94
74
|
export default connectConfigureRelatedItems;
|