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,117 +1,96 @@
|
|
|
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 _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
8
|
-
|
|
9
5
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
10
|
-
|
|
11
6
|
import { findIndex } from "./findIndex.js";
|
|
12
7
|
import { uniq } from "./uniq.js";
|
|
13
|
-
|
|
14
8
|
var mergeWithRest = function mergeWithRest(left, right) {
|
|
15
9
|
var facets = right.facets,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
10
|
+
disjunctiveFacets = right.disjunctiveFacets,
|
|
11
|
+
facetsRefinements = right.facetsRefinements,
|
|
12
|
+
facetsExcludes = right.facetsExcludes,
|
|
13
|
+
disjunctiveFacetsRefinements = right.disjunctiveFacetsRefinements,
|
|
14
|
+
numericRefinements = right.numericRefinements,
|
|
15
|
+
tagRefinements = right.tagRefinements,
|
|
16
|
+
hierarchicalFacets = right.hierarchicalFacets,
|
|
17
|
+
hierarchicalFacetsRefinements = right.hierarchicalFacetsRefinements,
|
|
18
|
+
ruleContexts = right.ruleContexts,
|
|
19
|
+
rest = _objectWithoutProperties(right, ["facets", "disjunctiveFacets", "facetsRefinements", "facetsExcludes", "disjunctiveFacetsRefinements", "numericRefinements", "tagRefinements", "hierarchicalFacets", "hierarchicalFacetsRefinements", "ruleContexts"]);
|
|
27
20
|
return left.setQueryParameters(rest);
|
|
28
|
-
};
|
|
29
|
-
|
|
21
|
+
};
|
|
30
22
|
|
|
23
|
+
// Merge facets
|
|
31
24
|
var mergeFacets = function mergeFacets(left, right) {
|
|
32
25
|
return right.facets.reduce(function (_, name) {
|
|
33
26
|
return _.addFacet(name);
|
|
34
27
|
}, left);
|
|
35
28
|
};
|
|
36
|
-
|
|
37
29
|
var mergeDisjunctiveFacets = function mergeDisjunctiveFacets(left, right) {
|
|
38
30
|
return right.disjunctiveFacets.reduce(function (_, name) {
|
|
39
31
|
return _.addDisjunctiveFacet(name);
|
|
40
32
|
}, left);
|
|
41
33
|
};
|
|
42
|
-
|
|
43
34
|
var mergeHierarchicalFacets = function mergeHierarchicalFacets(left, right) {
|
|
44
35
|
return left.setQueryParameters({
|
|
45
36
|
hierarchicalFacets: right.hierarchicalFacets.reduce(function (facets, facet) {
|
|
46
37
|
var index = findIndex(facets, function (_) {
|
|
47
38
|
return _.name === facet.name;
|
|
48
39
|
});
|
|
49
|
-
|
|
50
40
|
if (index === -1) {
|
|
51
41
|
return facets.concat(facet);
|
|
52
42
|
}
|
|
53
|
-
|
|
54
43
|
var nextFacets = facets.slice();
|
|
55
44
|
nextFacets.splice(index, 1, facet);
|
|
56
45
|
return nextFacets;
|
|
57
46
|
}, left.hierarchicalFacets)
|
|
58
47
|
});
|
|
59
|
-
};
|
|
60
|
-
|
|
48
|
+
};
|
|
61
49
|
|
|
50
|
+
// Merge facet refinements
|
|
62
51
|
var mergeTagRefinements = function mergeTagRefinements(left, right) {
|
|
63
52
|
return right.tagRefinements.reduce(function (_, value) {
|
|
64
53
|
return _.addTagRefinement(value);
|
|
65
54
|
}, left);
|
|
66
55
|
};
|
|
67
|
-
|
|
68
56
|
var mergeFacetRefinements = function mergeFacetRefinements(left, right) {
|
|
69
57
|
return left.setQueryParameters({
|
|
70
58
|
facetsRefinements: _objectSpread(_objectSpread({}, left.facetsRefinements), right.facetsRefinements)
|
|
71
59
|
});
|
|
72
60
|
};
|
|
73
|
-
|
|
74
61
|
var mergeFacetsExcludes = function mergeFacetsExcludes(left, right) {
|
|
75
62
|
return left.setQueryParameters({
|
|
76
63
|
facetsExcludes: _objectSpread(_objectSpread({}, left.facetsExcludes), right.facetsExcludes)
|
|
77
64
|
});
|
|
78
65
|
};
|
|
79
|
-
|
|
80
66
|
var mergeDisjunctiveFacetsRefinements = function mergeDisjunctiveFacetsRefinements(left, right) {
|
|
81
67
|
return left.setQueryParameters({
|
|
82
68
|
disjunctiveFacetsRefinements: _objectSpread(_objectSpread({}, left.disjunctiveFacetsRefinements), right.disjunctiveFacetsRefinements)
|
|
83
69
|
});
|
|
84
70
|
};
|
|
85
|
-
|
|
86
71
|
var mergeNumericRefinements = function mergeNumericRefinements(left, right) {
|
|
87
72
|
return left.setQueryParameters({
|
|
88
73
|
numericRefinements: _objectSpread(_objectSpread({}, left.numericRefinements), right.numericRefinements)
|
|
89
74
|
});
|
|
90
75
|
};
|
|
91
|
-
|
|
92
76
|
var mergeHierarchicalFacetsRefinements = function mergeHierarchicalFacetsRefinements(left, right) {
|
|
93
77
|
return left.setQueryParameters({
|
|
94
78
|
hierarchicalFacetsRefinements: _objectSpread(_objectSpread({}, left.hierarchicalFacetsRefinements), right.hierarchicalFacetsRefinements)
|
|
95
79
|
});
|
|
96
80
|
};
|
|
97
|
-
|
|
98
81
|
var mergeRuleContexts = function mergeRuleContexts(left, right) {
|
|
99
82
|
var ruleContexts = uniq([].concat(left.ruleContexts).concat(right.ruleContexts).filter(Boolean));
|
|
100
|
-
|
|
101
83
|
if (ruleContexts.length > 0) {
|
|
102
84
|
return left.setQueryParameters({
|
|
103
85
|
ruleContexts: ruleContexts
|
|
104
86
|
});
|
|
105
87
|
}
|
|
106
|
-
|
|
107
88
|
return left;
|
|
108
89
|
};
|
|
109
|
-
|
|
110
90
|
export var mergeSearchParameters = function mergeSearchParameters() {
|
|
111
91
|
for (var _len = arguments.length, parameters = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
112
92
|
parameters[_key] = arguments[_key];
|
|
113
93
|
}
|
|
114
|
-
|
|
115
94
|
return parameters.reduce(function (left, right) {
|
|
116
95
|
var hierarchicalFacetsRefinementsMerged = mergeHierarchicalFacetsRefinements(left, right);
|
|
117
96
|
var hierarchicalFacetsMerged = mergeHierarchicalFacets(hierarchicalFacetsRefinementsMerged, right);
|
package/es/lib/utils/range.js
CHANGED
|
@@ -1,28 +1,23 @@
|
|
|
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
7
|
export function range(_ref) {
|
|
14
8
|
var _ref$start = _ref.start,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
9
|
+
start = _ref$start === void 0 ? 0 : _ref$start,
|
|
10
|
+
end = _ref.end,
|
|
11
|
+
_ref$step = _ref.step,
|
|
12
|
+
step = _ref$step === void 0 ? 1 : _ref$step;
|
|
19
13
|
// We can't divide by 0 so we re-assign the step to 1 if it happens.
|
|
20
|
-
var limitStep = step === 0 ? 1 : step;
|
|
14
|
+
var limitStep = step === 0 ? 1 : step;
|
|
15
|
+
|
|
16
|
+
// In some cases the array to create has a decimal length.
|
|
21
17
|
// We therefore need to round the value.
|
|
22
18
|
// Example:
|
|
23
19
|
// { start: 1, end: 5000, step: 500 }
|
|
24
20
|
// => Array length = (5000 - 1) / 500 = 9.998
|
|
25
|
-
|
|
26
21
|
var arrayLength = Math.round((end - start) / limitStep);
|
|
27
22
|
return _toConsumableArray(Array(arrayLength)).map(function (_, current) {
|
|
28
23
|
return start + current * limitStep;
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
export function resolveSearchParameters(current) {
|
|
2
2
|
var parent = current.getParent();
|
|
3
3
|
var states = [current.getHelper().state];
|
|
4
|
-
|
|
5
4
|
while (parent !== null) {
|
|
6
5
|
states = [parent.getHelper().state].concat(states);
|
|
7
6
|
parent = parent.getParent();
|
|
8
7
|
}
|
|
9
|
-
|
|
10
8
|
return states;
|
|
11
9
|
}
|
|
@@ -1,9 +1,6 @@
|
|
|
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 { getHighlightFromSiblings } from "./getHighlightFromSiblings.js";
|
|
8
5
|
export function reverseHighlightedParts(parts) {
|
|
9
6
|
if (!parts.some(function (part) {
|
|
@@ -15,7 +12,6 @@ export function reverseHighlightedParts(parts) {
|
|
|
15
12
|
});
|
|
16
13
|
});
|
|
17
14
|
}
|
|
18
|
-
|
|
19
15
|
return parts.map(function (part, i) {
|
|
20
16
|
return _objectSpread(_objectSpread({}, part), {}, {
|
|
21
17
|
isHighlighted: !getHighlightFromSiblings(parts, i)
|
|
@@ -5,18 +5,17 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export function safelyRunOnBrowser(callback) {
|
|
7
7
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
fallback: function fallback() {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
fallback = _ref.fallback;
|
|
14
13
|
// eslint-disable-next-line no-restricted-globals
|
|
15
14
|
if (typeof window === 'undefined') {
|
|
16
15
|
return fallback();
|
|
17
|
-
}
|
|
18
|
-
|
|
16
|
+
}
|
|
19
17
|
|
|
18
|
+
// eslint-disable-next-line no-restricted-globals
|
|
20
19
|
return callback({
|
|
21
20
|
window: window
|
|
22
21
|
});
|
|
@@ -2,14 +2,12 @@ import { isIndexWidget } from "./isIndexWidget.js";
|
|
|
2
2
|
import { checkIndexUiState } from "./checkIndexUiState.js";
|
|
3
3
|
export function setIndexHelperState(finalUiState, indexWidget) {
|
|
4
4
|
var nextIndexUiState = finalUiState[indexWidget.getIndexId()] || {};
|
|
5
|
-
|
|
6
5
|
if (process.env.NODE_ENV === 'development') {
|
|
7
6
|
checkIndexUiState({
|
|
8
7
|
index: indexWidget,
|
|
9
8
|
indexUiState: nextIndexUiState
|
|
10
9
|
});
|
|
11
10
|
}
|
|
12
|
-
|
|
13
11
|
indexWidget.getHelper().setState(indexWidget.getWidgetSearchParameters(indexWidget.getHelper().state, {
|
|
14
12
|
uiState: nextIndexUiState
|
|
15
13
|
}));
|
package/es/lib/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: "4.49.
|
|
1
|
+
declare const _default: "4.49.2";
|
|
2
2
|
export default _default;
|
package/es/lib/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export default '4.49.
|
|
1
|
+
export default '4.49.2';
|
|
@@ -1,22 +1,17 @@
|
|
|
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
|
// `SpeechRecognition` is an API used on the browser so we can safely disable
|
|
8
5
|
// the `window` check.
|
|
9
|
-
|
|
10
6
|
/* eslint-disable no-restricted-globals */
|
|
11
|
-
|
|
12
7
|
/* global SpeechRecognition SpeechRecognitionEvent */
|
|
8
|
+
|
|
13
9
|
var createVoiceSearchHelper = function createVoiceSearchHelper(_ref) {
|
|
14
10
|
var searchAsYouSpeak = _ref.searchAsYouSpeak,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
language = _ref.language,
|
|
12
|
+
onQueryChange = _ref.onQueryChange,
|
|
13
|
+
onStateChange = _ref.onStateChange;
|
|
18
14
|
var SpeechRecognitionAPI = window.webkitSpeechRecognition || window.SpeechRecognition;
|
|
19
|
-
|
|
20
15
|
var getDefaultState = function getDefaultState(status) {
|
|
21
16
|
return {
|
|
22
17
|
status: status,
|
|
@@ -25,96 +20,77 @@ var createVoiceSearchHelper = function createVoiceSearchHelper(_ref) {
|
|
|
25
20
|
errorCode: undefined
|
|
26
21
|
};
|
|
27
22
|
};
|
|
28
|
-
|
|
29
23
|
var state = getDefaultState('initial');
|
|
30
24
|
var recognition;
|
|
31
|
-
|
|
32
25
|
var isBrowserSupported = function isBrowserSupported() {
|
|
33
26
|
return Boolean(SpeechRecognitionAPI);
|
|
34
27
|
};
|
|
35
|
-
|
|
36
28
|
var isListening = function isListening() {
|
|
37
29
|
return state.status === 'askingPermission' || state.status === 'waiting' || state.status === 'recognizing';
|
|
38
30
|
};
|
|
39
|
-
|
|
40
31
|
var setState = function setState() {
|
|
41
32
|
var newState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
42
33
|
state = _objectSpread(_objectSpread({}, state), newState);
|
|
43
34
|
onStateChange();
|
|
44
35
|
};
|
|
45
|
-
|
|
46
36
|
var getState = function getState() {
|
|
47
37
|
return state;
|
|
48
38
|
};
|
|
49
|
-
|
|
50
39
|
var resetState = function resetState() {
|
|
51
40
|
var status = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'initial';
|
|
52
41
|
setState(getDefaultState(status));
|
|
53
42
|
};
|
|
54
|
-
|
|
55
43
|
var onStart = function onStart() {
|
|
56
44
|
setState({
|
|
57
45
|
status: 'waiting'
|
|
58
46
|
});
|
|
59
47
|
};
|
|
60
|
-
|
|
61
48
|
var onError = function onError(event) {
|
|
62
49
|
setState({
|
|
63
50
|
status: 'error',
|
|
64
51
|
errorCode: event.error
|
|
65
52
|
});
|
|
66
53
|
};
|
|
67
|
-
|
|
68
54
|
var onResult = function onResult(event) {
|
|
69
55
|
setState({
|
|
70
56
|
status: 'recognizing',
|
|
71
57
|
transcript: event.results[0] && event.results[0][0] && event.results[0][0].transcript || '',
|
|
72
58
|
isSpeechFinal: event.results[0] && event.results[0].isFinal
|
|
73
59
|
});
|
|
74
|
-
|
|
75
60
|
if (searchAsYouSpeak && state.transcript) {
|
|
76
61
|
onQueryChange(state.transcript);
|
|
77
62
|
}
|
|
78
63
|
};
|
|
79
|
-
|
|
80
64
|
var onEnd = function onEnd() {
|
|
81
65
|
if (!state.errorCode && state.transcript && !searchAsYouSpeak) {
|
|
82
66
|
onQueryChange(state.transcript);
|
|
83
67
|
}
|
|
84
|
-
|
|
85
68
|
if (state.status !== 'error') {
|
|
86
69
|
setState({
|
|
87
70
|
status: 'finished'
|
|
88
71
|
});
|
|
89
72
|
}
|
|
90
73
|
};
|
|
91
|
-
|
|
92
74
|
var startListening = function startListening() {
|
|
93
75
|
recognition = new SpeechRecognitionAPI();
|
|
94
|
-
|
|
95
76
|
if (!recognition) {
|
|
96
77
|
return;
|
|
97
78
|
}
|
|
98
|
-
|
|
99
79
|
resetState('askingPermission');
|
|
100
80
|
recognition.interimResults = true;
|
|
101
|
-
|
|
102
81
|
if (language) {
|
|
103
82
|
recognition.lang = language;
|
|
104
83
|
}
|
|
105
|
-
|
|
106
84
|
recognition.addEventListener('start', onStart);
|
|
107
85
|
recognition.addEventListener('error', onError);
|
|
108
86
|
recognition.addEventListener('result', onResult);
|
|
109
87
|
recognition.addEventListener('end', onEnd);
|
|
110
88
|
recognition.start();
|
|
111
89
|
};
|
|
112
|
-
|
|
113
90
|
var dispose = function dispose() {
|
|
114
91
|
if (!recognition) {
|
|
115
92
|
return;
|
|
116
93
|
}
|
|
117
|
-
|
|
118
94
|
recognition.stop();
|
|
119
95
|
recognition.removeEventListener('start', onStart);
|
|
120
96
|
recognition.removeEventListener('error', onError);
|
|
@@ -122,15 +98,13 @@ var createVoiceSearchHelper = function createVoiceSearchHelper(_ref) {
|
|
|
122
98
|
recognition.removeEventListener('end', onEnd);
|
|
123
99
|
recognition = undefined;
|
|
124
100
|
};
|
|
125
|
-
|
|
126
101
|
var stopListening = function stopListening() {
|
|
127
|
-
dispose();
|
|
102
|
+
dispose();
|
|
103
|
+
// Because `dispose` removes event listeners, `end` listener is not called.
|
|
128
104
|
// So we're setting the `status` as `finished` here.
|
|
129
105
|
// If we don't do it, it will be still `waiting` or `recognizing`.
|
|
130
|
-
|
|
131
106
|
resetState('finished');
|
|
132
107
|
};
|
|
133
|
-
|
|
134
108
|
return {
|
|
135
109
|
getState: getState,
|
|
136
110
|
isBrowserSupported: isBrowserSupported,
|
|
@@ -140,5 +114,4 @@ var createVoiceSearchHelper = function createVoiceSearchHelper(_ref) {
|
|
|
140
114
|
dispose: dispose
|
|
141
115
|
};
|
|
142
116
|
};
|
|
143
|
-
|
|
144
117
|
export default createVoiceSearchHelper;
|
|
@@ -1,29 +1,19 @@
|
|
|
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 { getInsightsAnonymousUserTokenInternal } from "../helpers/index.js";
|
|
20
11
|
import { warning, noop, getAppIdAndApiKey, find } from "../lib/utils/index.js";
|
|
21
12
|
export function createInsightsMiddleware(props) {
|
|
22
13
|
var _ref = props || {},
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
14
|
+
_insightsClient = _ref.insightsClient,
|
|
15
|
+
insightsInitParams = _ref.insightsInitParams,
|
|
16
|
+
onEvent = _ref.onEvent;
|
|
27
17
|
if (_insightsClient !== null && !_insightsClient) {
|
|
28
18
|
if (process.env.NODE_ENV === 'development') {
|
|
29
19
|
throw new Error("The `insightsClient` option is required if you want userToken to be automatically set in search calls. If you don't want this behaviour, set it to `null`.");
|
|
@@ -31,25 +21,19 @@ export function createInsightsMiddleware(props) {
|
|
|
31
21
|
throw new Error('The `insightsClient` option is required. To disable, set it to `null`.');
|
|
32
22
|
}
|
|
33
23
|
}
|
|
34
|
-
|
|
35
24
|
var hasInsightsClient = Boolean(_insightsClient);
|
|
36
25
|
var insightsClient = _insightsClient === null ? noop : _insightsClient;
|
|
37
26
|
return function (_ref2) {
|
|
38
27
|
var instantSearchInstance = _ref2.instantSearchInstance;
|
|
39
|
-
|
|
40
28
|
var _getAppIdAndApiKey = getAppIdAndApiKey(instantSearchInstance.client),
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
29
|
+
_getAppIdAndApiKey2 = _slicedToArray(_getAppIdAndApiKey, 2),
|
|
30
|
+
appId = _getAppIdAndApiKey2[0],
|
|
31
|
+
apiKey = _getAppIdAndApiKey2[1]; // search-insights.js also throws an error so dev-only clarification is sufficient
|
|
46
32
|
if (process.env.NODE_ENV === 'development' && !(appId && apiKey)) {
|
|
47
33
|
throw new Error('[insights middleware]: could not extract Algolia credentials from searchClient');
|
|
48
34
|
}
|
|
49
|
-
|
|
50
35
|
var queuedUserToken = undefined;
|
|
51
36
|
var userTokenBeforeInit = undefined;
|
|
52
|
-
|
|
53
37
|
if (Array.isArray(insightsClient.queue)) {
|
|
54
38
|
// Context: The umd build of search-insights is asynchronously loaded by the snippet.
|
|
55
39
|
//
|
|
@@ -63,16 +47,12 @@ export function createInsightsMiddleware(props) {
|
|
|
63
47
|
// Otherwise, the first search call will be fired without the token.
|
|
64
48
|
var _ref3 = find(insightsClient.queue.slice().reverse(), function (_ref5) {
|
|
65
49
|
var _ref6 = _slicedToArray(_ref5, 1),
|
|
66
|
-
|
|
67
|
-
|
|
50
|
+
method = _ref6[0];
|
|
68
51
|
return method === 'setUserToken';
|
|
69
52
|
}) || [];
|
|
70
|
-
|
|
71
53
|
var _ref4 = _slicedToArray(_ref3, 2);
|
|
72
|
-
|
|
73
54
|
queuedUserToken = _ref4[1];
|
|
74
55
|
}
|
|
75
|
-
|
|
76
56
|
insightsClient('getUserToken', null, function (_error, userToken) {
|
|
77
57
|
// If user has called `aa('setUserToken', 'my-user-token')` before creating
|
|
78
58
|
// the `insights` middleware, we store them temporarily and
|
|
@@ -101,41 +81,36 @@ export function createInsightsMiddleware(props) {
|
|
|
101
81
|
clickAnalytics: true
|
|
102
82
|
}));
|
|
103
83
|
instantSearchInstance.scheduleSearch();
|
|
104
|
-
|
|
105
84
|
var setUserTokenToSearch = function setUserTokenToSearch(userToken) {
|
|
106
85
|
helper.overrideStateWithoutTriggeringChangeEvent(_objectSpread(_objectSpread({}, helper.state), {}, {
|
|
107
86
|
userToken: userToken
|
|
108
87
|
}));
|
|
109
88
|
instantSearchInstance.scheduleSearch();
|
|
110
89
|
};
|
|
111
|
-
|
|
112
90
|
var anonymousUserToken = getInsightsAnonymousUserTokenInternal();
|
|
113
|
-
|
|
114
91
|
if (hasInsightsClient && anonymousUserToken) {
|
|
115
92
|
// When `aa('init', { ... })` is called, it creates an anonymous user token in cookie.
|
|
116
93
|
// We can set it as userToken.
|
|
117
94
|
setUserTokenToSearch(anonymousUserToken);
|
|
118
|
-
}
|
|
119
|
-
// importance than the one coming from the queue.
|
|
120
|
-
|
|
95
|
+
}
|
|
121
96
|
|
|
97
|
+
// We consider the `userToken` coming from a `init` call to have a higher
|
|
98
|
+
// importance than the one coming from the queue.
|
|
122
99
|
if (userTokenBeforeInit) {
|
|
123
100
|
insightsClient('setUserToken', userTokenBeforeInit);
|
|
124
101
|
} else if (queuedUserToken) {
|
|
125
102
|
insightsClient('setUserToken', queuedUserToken);
|
|
126
|
-
}
|
|
127
|
-
|
|
103
|
+
}
|
|
128
104
|
|
|
105
|
+
// This updates userToken which is set explicitly by `aa('setUserToken', userToken)`
|
|
129
106
|
insightsClient('onUserTokenChange', setUserTokenToSearch, {
|
|
130
107
|
immediate: true
|
|
131
108
|
});
|
|
132
|
-
|
|
133
109
|
instantSearchInstance.sendEventToInsights = function (event) {
|
|
134
110
|
if (onEvent) {
|
|
135
111
|
onEvent(event, _insightsClient);
|
|
136
112
|
} else if (event.insightsMethod) {
|
|
137
113
|
var hasUserToken = Boolean(helper.state.userToken);
|
|
138
|
-
|
|
139
114
|
if (hasUserToken) {
|
|
140
115
|
insightsClient(event.insightsMethod, event.payload);
|
|
141
116
|
} else {
|
|
@@ -149,7 +124,6 @@ export function createInsightsMiddleware(props) {
|
|
|
149
124
|
unsubscribe: function unsubscribe() {
|
|
150
125
|
insightsClient('onUserTokenChange', undefined);
|
|
151
126
|
instantSearchInstance.sendEventToInsights = noop;
|
|
152
|
-
|
|
153
127
|
if (helper && initialParameters) {
|
|
154
128
|
helper.setState(_objectSpread(_objectSpread({}, helper.state), initialParameters));
|
|
155
129
|
instantSearchInstance.scheduleSearch();
|
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
import { createInitArgs, safelyRunOnBrowser } from "../lib/utils/index.js";
|
|
2
|
-
|
|
3
2
|
function extractPayload(widgets, instantSearchInstance, payload) {
|
|
4
3
|
var initOptions = createInitArgs(instantSearchInstance, instantSearchInstance.mainIndex, instantSearchInstance._initialUiState);
|
|
5
4
|
widgets.forEach(function (widget) {
|
|
6
5
|
var widgetParams = {};
|
|
7
|
-
|
|
8
6
|
if (widget.getWidgetRenderState) {
|
|
9
7
|
var renderState = widget.getWidgetRenderState(initOptions);
|
|
10
|
-
|
|
11
8
|
if (renderState && renderState.widgetParams) {
|
|
12
9
|
// casting, as we just earlier checked widgetParams exists, and thus an object
|
|
13
10
|
widgetParams = renderState.widgetParams;
|
|
14
11
|
}
|
|
15
|
-
}
|
|
16
|
-
|
|
12
|
+
}
|
|
17
13
|
|
|
14
|
+
// since we destructure in all widgets, the parameters with defaults are set to "undefined"
|
|
18
15
|
var params = Object.keys(widgetParams).filter(function (key) {
|
|
19
16
|
return widgetParams[key] !== undefined;
|
|
20
17
|
});
|
|
@@ -23,17 +20,14 @@ function extractPayload(widgets, instantSearchInstance, payload) {
|
|
|
23
20
|
widgetType: widget.$$widgetType,
|
|
24
21
|
params: params
|
|
25
22
|
});
|
|
26
|
-
|
|
27
23
|
if (widget.$$type === 'ais.index') {
|
|
28
24
|
extractPayload(widget.getWidgets(), instantSearchInstance, payload);
|
|
29
25
|
}
|
|
30
26
|
});
|
|
31
27
|
}
|
|
32
|
-
|
|
33
28
|
export function isMetadataEnabled() {
|
|
34
29
|
return safelyRunOnBrowser(function (_ref) {
|
|
35
30
|
var _window$navigator, _window$navigator$use;
|
|
36
|
-
|
|
37
31
|
var window = _ref.window;
|
|
38
32
|
return ((_window$navigator = window.navigator) === null || _window$navigator === void 0 ? void 0 : (_window$navigator$use = _window$navigator.userAgent) === null || _window$navigator$use === void 0 ? void 0 : _window$navigator$use.indexOf('Algolia Crawler')) > -1;
|
|
39
33
|
}, {
|
|
@@ -42,6 +36,7 @@ export function isMetadataEnabled() {
|
|
|
42
36
|
}
|
|
43
37
|
});
|
|
44
38
|
}
|
|
39
|
+
|
|
45
40
|
/**
|
|
46
41
|
* Exposes the metadata of mounted widgets in a custom
|
|
47
42
|
* `<meta name="instantsearch:widgets" />` tag. The metadata per widget is:
|
|
@@ -49,7 +44,6 @@ export function isMetadataEnabled() {
|
|
|
49
44
|
* - widget name
|
|
50
45
|
* - connector name
|
|
51
46
|
*/
|
|
52
|
-
|
|
53
47
|
export function createMetadataMiddleware() {
|
|
54
48
|
return function (_ref2) {
|
|
55
49
|
var instantSearchInstance = _ref2.instantSearchInstance;
|