instantsearch.js 4.49.1 → 4.49.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -8
- package/cjs/components/Answers/Answers.js +11 -18
- package/cjs/components/Breadcrumb/Breadcrumb.js +6 -13
- package/cjs/components/ClearRefinements/ClearRefinements.js +5 -12
- package/cjs/components/CurrentRefinements/CurrentRefinements.js +8 -16
- package/cjs/components/GeoSearchControls/GeoSearchButton.js +4 -7
- package/cjs/components/GeoSearchControls/GeoSearchControls.js +14 -23
- package/cjs/components/GeoSearchControls/GeoSearchToggle.js +4 -7
- package/cjs/components/Highlight/Highlight.js +5 -12
- package/cjs/components/Hits/Hits.js +13 -22
- package/cjs/components/InfiniteHits/InfiniteHits.js +18 -27
- package/cjs/components/InternalHighlight/InternalHighlight.js +0 -3
- package/cjs/components/MenuSelect/MenuSelect.js +12 -22
- package/cjs/components/Pagination/Pagination.js +12 -20
- package/cjs/components/Panel/Panel.js +9 -28
- package/cjs/components/PoweredBy/PoweredBy.js +4 -6
- package/cjs/components/QueryRuleCustomData/QueryRuleCustomData.js +3 -8
- package/cjs/components/RangeInput/RangeInput.js +21 -51
- package/cjs/components/RefinementList/RefinementList.js +30 -81
- package/cjs/components/RefinementList/RefinementListItem.js +9 -15
- package/cjs/components/RelevantSort/RelevantSort.js +5 -10
- package/cjs/components/ReverseHighlight/ReverseHighlight.js +5 -12
- package/cjs/components/ReverseSnippet/ReverseSnippet.js +5 -12
- package/cjs/components/SearchBox/SearchBox.js +35 -77
- package/cjs/components/Selector/Selector.js +3 -7
- package/cjs/components/Slider/Pit.js +7 -11
- package/cjs/components/Slider/Rheostat.js +69 -133
- package/cjs/components/Slider/Slider.js +39 -72
- package/cjs/components/Snippet/Snippet.js +5 -12
- package/cjs/components/Stats/Stats.js +13 -22
- package/cjs/components/Template/Template.js +17 -44
- package/cjs/components/ToggleRefinement/ToggleRefinement.js +5 -11
- package/cjs/components/VoiceSearch/VoiceSearch.js +9 -17
- package/cjs/connectors/answers/connectAnswers.js +36 -46
- package/cjs/connectors/autocomplete/connectAutocomplete.js +21 -35
- package/cjs/connectors/breadcrumb/connectBreadcrumb.js +27 -55
- package/cjs/connectors/clear-refinements/connectClearRefinements.js +41 -56
- package/cjs/connectors/configure/connectConfigure.js +17 -28
- package/cjs/connectors/configure-related-items/connectConfigureRelatedItems.js +21 -43
- package/cjs/connectors/current-refinements/connectCurrentRefinements.js +29 -65
- package/cjs/connectors/dynamic-widgets/connectDynamicWidgets.js +27 -45
- package/cjs/connectors/geo-search/connectGeoSearch.js +32 -59
- package/cjs/connectors/hierarchical-menu/connectHierarchicalMenu.js +50 -82
- package/cjs/connectors/hits/connectHits.js +25 -38
- package/cjs/connectors/hits/connectHitsWithInsights.js +3 -7
- package/cjs/connectors/hits-per-page/connectHitsPerPage.js +26 -46
- package/cjs/connectors/index.js +92 -126
- package/cjs/connectors/infinite-hits/connectInfiniteHits.js +43 -75
- package/cjs/connectors/infinite-hits/connectInfiniteHitsWithInsights.js +3 -7
- package/cjs/connectors/menu/connectMenu.js +39 -73
- package/cjs/connectors/numeric-menu/connectNumericMenu.js +37 -86
- package/cjs/connectors/pagination/Paginator.js +11 -25
- package/cjs/connectors/pagination/connectPagination.js +17 -31
- package/cjs/connectors/powered-by/connectPoweredBy.js +13 -19
- package/cjs/connectors/query-rules/connectQueryRules.js +44 -65
- package/cjs/connectors/range/connectRange.js +72 -129
- package/cjs/connectors/rating-menu/connectRatingMenu.js +34 -87
- package/cjs/connectors/refinement-list/connectRefinementList.js +51 -79
- package/cjs/connectors/relevant-sort/connectRelevantSort.js +11 -18
- package/cjs/connectors/search-box/connectSearchBox.js +15 -28
- package/cjs/connectors/sort-by/connectSortBy.js +21 -28
- package/cjs/connectors/stats/connectStats.js +12 -16
- package/cjs/connectors/toggle-refinement/connectToggleRefinement.js +44 -75
- package/cjs/connectors/voice-search/connectVoiceSearch.js +22 -41
- package/cjs/helpers/components/Highlight.js +11 -18
- package/cjs/helpers/components/ReverseHighlight.js +19 -26
- package/cjs/helpers/components/ReverseSnippet.js +19 -26
- package/cjs/helpers/components/Snippet.js +11 -18
- package/cjs/helpers/components/index.js +4 -12
- package/cjs/helpers/get-insights-anonymous-user-token.js +6 -17
- package/cjs/helpers/highlight.js +15 -19
- package/cjs/helpers/index.js +23 -37
- package/cjs/helpers/insights.js +9 -21
- package/cjs/helpers/reverseHighlight.js +16 -20
- package/cjs/helpers/reverseSnippet.js +16 -20
- package/cjs/helpers/snippet.js +15 -19
- package/cjs/index.js +12 -27
- package/cjs/lib/InstantSearch.js +108 -207
- package/cjs/lib/createHelpers.js +15 -19
- package/cjs/lib/formatNumber.js +0 -1
- package/cjs/lib/infiniteHitsCache/index.js +1 -3
- package/cjs/lib/infiniteHitsCache/sessionStorage.js +14 -22
- package/cjs/lib/insights/client.js +17 -40
- package/cjs/lib/insights/index.js +9 -15
- package/cjs/lib/insights/listener.js +7 -24
- package/cjs/lib/routers/history.js +75 -117
- package/cjs/lib/routers/index.js +1 -3
- package/cjs/lib/stateMappings/index.js +2 -5
- package/cjs/lib/stateMappings/simple.js +11 -14
- package/cjs/lib/stateMappings/singleIndex.js +6 -8
- package/cjs/lib/suit.js +2 -5
- package/cjs/lib/templating/index.js +2 -6
- package/cjs/lib/templating/prepareTemplateProps.js +14 -22
- package/cjs/lib/templating/renderTemplate.js +17 -30
- package/cjs/lib/utils/capitalize.js +0 -1
- package/cjs/lib/utils/checkIndexUiState.js +19 -47
- package/cjs/lib/utils/checkRendering.js +1 -3
- package/cjs/lib/utils/clearRefinements.js +2 -9
- package/cjs/lib/utils/concatHighlightedParts.js +2 -4
- package/cjs/lib/utils/createConcurrentSafePromise.js +0 -3
- package/cjs/lib/utils/createSendEventForFacet.js +8 -15
- package/cjs/lib/utils/createSendEventForHits.js +10 -34
- package/cjs/lib/utils/debounce.js +0 -3
- package/cjs/lib/utils/defer.js +0 -11
- package/cjs/lib/utils/detect-insights-client.js +1 -3
- package/cjs/lib/utils/documentation.js +2 -5
- package/cjs/lib/utils/escape-highlight.js +13 -26
- package/cjs/lib/utils/escape-html.js +9 -7
- package/cjs/lib/utils/escapeFacetValue.js +1 -5
- package/cjs/lib/utils/find.js +2 -5
- package/cjs/lib/utils/findIndex.js +0 -3
- package/cjs/lib/utils/geo-search.js +21 -37
- package/cjs/lib/utils/getAppIdAndApiKey.js +2 -3
- package/cjs/lib/utils/getContainerNode.js +1 -7
- package/cjs/lib/utils/getHighlightFromSiblings.js +1 -7
- package/cjs/lib/utils/getHighlightedParts.js +2 -5
- package/cjs/lib/utils/getObjectType.js +0 -1
- package/cjs/lib/utils/getPropertyByPath.js +0 -1
- package/cjs/lib/utils/getRefinements.js +30 -45
- package/cjs/lib/utils/getWidgetAttribute.js +0 -6
- package/cjs/lib/utils/hits-absolute-position.js +6 -7
- package/cjs/lib/utils/hits-query-id.js +6 -8
- package/cjs/lib/utils/index.js +46 -138
- package/cjs/lib/utils/isDomElement.js +0 -1
- package/cjs/lib/utils/isEqual.js +2 -7
- package/cjs/lib/utils/isFacetRefined.js +0 -1
- package/cjs/lib/utils/isFiniteNumber.js +0 -1
- package/cjs/lib/utils/isIndexWidget.js +0 -1
- package/cjs/lib/utils/isPlainObject.js +3 -11
- package/cjs/lib/utils/isSpecialClick.js +0 -1
- package/cjs/lib/utils/logger.js +6 -16
- package/cjs/lib/utils/mergeSearchParameters.js +23 -43
- package/cjs/lib/utils/noop.js +0 -1
- package/cjs/lib/utils/range.js +9 -15
- package/cjs/lib/utils/render-args.js +0 -2
- package/cjs/lib/utils/resolveSearchParameters.js +0 -3
- package/cjs/lib/utils/reverseHighlightedParts.js +7 -10
- package/cjs/lib/utils/safelyRunOnBrowser.js +7 -9
- package/cjs/lib/utils/serializer.js +1 -3
- package/cjs/lib/utils/setIndexHelperState.js +2 -7
- package/cjs/lib/utils/toArray.js +0 -1
- package/cjs/lib/utils/typedObject.js +0 -1
- package/cjs/lib/utils/uniq.js +0 -1
- package/cjs/lib/version.js +1 -1
- package/cjs/lib/voiceSearchHelper/index.js +12 -37
- package/cjs/middlewares/createInsightsMiddleware.js +30 -54
- package/cjs/middlewares/createMetadataMiddleware.js +7 -15
- package/cjs/middlewares/createRouterMiddleware.js +16 -24
- package/cjs/middlewares/index.js +3 -9
- package/cjs/types/algoliasearch.js +0 -2
- package/cjs/types/index.js +14 -42
- package/cjs/widgets/analytics/analytics.js +22 -48
- package/cjs/widgets/answers/answers.js +32 -49
- package/cjs/widgets/breadcrumb/breadcrumb.js +31 -48
- package/cjs/widgets/clear-refinements/clear-refinements.js +28 -45
- package/cjs/widgets/configure/configure.js +9 -14
- package/cjs/widgets/configure-related-items/configure-related-items.js +9 -14
- package/cjs/widgets/current-refinements/current-refinements.js +22 -37
- package/cjs/widgets/dynamic-widgets/dynamic-widgets.js +17 -32
- package/cjs/widgets/geo-search/GeoSearchRenderer.js +50 -72
- package/cjs/widgets/geo-search/createHTMLMarker.js +34 -62
- package/cjs/widgets/geo-search/defaultTemplates.js +0 -3
- package/cjs/widgets/geo-search/geo-search.js +44 -70
- package/cjs/widgets/hierarchical-menu/defaultTemplates.js +5 -9
- package/cjs/widgets/hierarchical-menu/hierarchical-menu.js +41 -57
- package/cjs/widgets/hits/hits.js +32 -50
- package/cjs/widgets/hits-per-page/hits-per-page.js +24 -39
- package/cjs/widgets/index/index.js +71 -113
- package/cjs/widgets/index.js +47 -85
- package/cjs/widgets/infinite-hits/infinite-hits.js +39 -57
- package/cjs/widgets/menu/defaultTemplates.js +4 -8
- package/cjs/widgets/menu/menu.js +36 -53
- package/cjs/widgets/menu-select/defaultTemplates.js +2 -4
- package/cjs/widgets/menu-select/menu-select.js +31 -48
- package/cjs/widgets/numeric-menu/defaultTemplates.js +3 -5
- package/cjs/widgets/numeric-menu/numeric-menu.js +30 -47
- package/cjs/widgets/pagination/pagination.js +43 -61
- package/cjs/widgets/panel/panel.js +31 -56
- package/cjs/widgets/places/places.js +22 -34
- package/cjs/widgets/powered-by/powered-by.js +20 -34
- package/cjs/widgets/query-rule-context/query-rule-context.js +10 -18
- package/cjs/widgets/query-rule-custom-data/query-rule-custom-data.js +24 -39
- package/cjs/widgets/range-input/range-input.js +36 -60
- package/cjs/widgets/range-slider/range-slider.js +39 -61
- package/cjs/widgets/rating-menu/defaultTemplates.js +9 -16
- package/cjs/widgets/rating-menu/rating-menu.js +30 -48
- package/cjs/widgets/refinement-list/defaultTemplates.js +6 -10
- package/cjs/widgets/refinement-list/refinement-list.js +54 -72
- package/cjs/widgets/relevant-sort/relevant-sort.js +21 -37
- package/cjs/widgets/search-box/defaultTemplates.js +0 -5
- package/cjs/widgets/search-box/search-box.js +42 -57
- package/cjs/widgets/sort-by/sort-by.js +21 -36
- package/cjs/widgets/stats/defaultTemplates.js +1 -2
- package/cjs/widgets/stats/stats.js +40 -67
- package/cjs/widgets/toggle-refinement/toggle-refinement.js +29 -46
- package/cjs/widgets/voice-search/defaultTemplates.js +4 -14
- package/cjs/widgets/voice-search/voice-search.js +28 -44
- package/dist/instantsearch.development.d.ts +9 -6
- package/dist/instantsearch.development.js +1840 -3142
- package/dist/instantsearch.development.js.map +1 -1
- package/dist/instantsearch.production.d.ts +9 -6
- package/dist/instantsearch.production.min.d.ts +9 -6
- package/dist/instantsearch.production.min.js +2 -2
- package/dist/instantsearch.production.min.js.map +1 -1
- package/es/components/Answers/Answers.js +10 -13
- package/es/components/Breadcrumb/Breadcrumb.js +5 -8
- package/es/components/ClearRefinements/ClearRefinements.js +4 -7
- package/es/components/CurrentRefinements/CurrentRefinements.js +5 -10
- package/es/components/GeoSearchControls/GeoSearchButton.js +4 -6
- package/es/components/GeoSearchControls/GeoSearchControls.js +11 -14
- package/es/components/GeoSearchControls/GeoSearchToggle.js +4 -6
- package/es/components/Highlight/Highlight.js +4 -7
- package/es/components/Hits/Hits.js +12 -17
- package/es/components/InfiniteHits/InfiniteHits.js +17 -22
- package/es/components/MenuSelect/MenuSelect.js +9 -14
- package/es/components/Pagination/Pagination.js +10 -15
- package/es/components/Panel/Panel.js +8 -22
- package/es/components/PoweredBy/PoweredBy.js +4 -5
- package/es/components/QueryRuleCustomData/QueryRuleCustomData.js +2 -4
- package/es/components/RangeInput/RangeInput.js +20 -46
- package/es/components/RefinementList/RefinementList.js +24 -67
- package/es/components/RefinementList/RefinementListItem.js +8 -11
- package/es/components/RelevantSort/RelevantSort.js +4 -6
- package/es/components/ReverseHighlight/ReverseHighlight.js +4 -7
- package/es/components/ReverseSnippet/ReverseSnippet.js +4 -7
- package/es/components/SearchBox/SearchBox.js +29 -66
- package/es/components/Selector/Selector.js +3 -5
- package/es/components/Slider/Pit.js +7 -9
- package/es/components/Slider/Rheostat.js +70 -133
- package/es/components/Slider/Slider.js +34 -61
- package/es/components/Snippet/Snippet.js +4 -7
- package/es/components/Stats/Stats.js +12 -17
- package/es/components/Template/Template.js +12 -35
- package/es/components/ToggleRefinement/ToggleRefinement.js +4 -7
- package/es/components/VoiceSearch/VoiceSearch.js +8 -13
- package/es/connectors/answers/connectAnswers.js +27 -36
- package/es/connectors/autocomplete/connectAutocomplete.js +12 -24
- package/es/connectors/breadcrumb/connectBreadcrumb.js +22 -48
- package/es/connectors/clear-refinements/connectClearRefinements.js +32 -45
- package/es/connectors/configure/connectConfigure.js +11 -17
- package/es/connectors/configure-related-items/connectConfigureRelatedItems.js +16 -33
- package/es/connectors/current-refinements/connectCurrentRefinements.js +23 -57
- package/es/connectors/dynamic-widgets/connectDynamicWidgets.js +20 -36
- package/es/connectors/geo-search/connectGeoSearch.js +21 -46
- package/es/connectors/hierarchical-menu/connectHierarchicalMenu.js +44 -74
- package/es/connectors/hits/connectHits.js +14 -25
- package/es/connectors/hits-per-page/connectHitsPerPage.js +20 -38
- package/es/connectors/index.d.ts +2 -1
- package/es/connectors/index.js +6 -3
- package/es/connectors/infinite-hits/connectInfiniteHits.js +32 -62
- package/es/connectors/menu/connectMenu.js +34 -66
- package/es/connectors/numeric-menu/connectNumericMenu.js +31 -78
- package/es/connectors/pagination/Paginator.js +8 -21
- package/es/connectors/pagination/connectPagination.js +12 -22
- package/es/connectors/powered-by/connectPoweredBy.js +8 -12
- package/es/connectors/query-rules/connectQueryRules.js +37 -56
- package/es/connectors/range/connectRange.js +46 -101
- package/es/connectors/rating-menu/connectRatingMenu.js +28 -79
- package/es/connectors/refinement-list/connectRefinementList.js +43 -69
- package/es/connectors/relevant-sort/connectRelevantSort.js +8 -14
- package/es/connectors/search-box/connectSearchBox.js +11 -22
- package/es/connectors/sort-by/connectSortBy.js +15 -20
- package/es/connectors/stats/connectStats.js +8 -10
- package/es/connectors/toggle-refinement/connectToggleRefinement.js +33 -62
- package/es/connectors/toggle-refinement/types.js +1 -0
- package/es/connectors/voice-search/connectVoiceSearch.js +17 -32
- package/es/helpers/components/Highlight.js +5 -8
- package/es/helpers/components/ReverseHighlight.js +13 -16
- package/es/helpers/components/ReverseSnippet.js +13 -16
- package/es/helpers/components/Snippet.js +5 -8
- package/es/helpers/get-insights-anonymous-user-token.js +2 -10
- package/es/helpers/highlight.js +10 -10
- package/es/helpers/insights.js +3 -10
- package/es/helpers/reverseHighlight.js +10 -10
- package/es/helpers/reverseSnippet.js +10 -10
- package/es/helpers/snippet.js +10 -10
- package/es/index.js +0 -2
- package/es/lib/InstantSearch.js +83 -172
- package/es/lib/createHelpers.js +8 -9
- package/es/lib/infiniteHitsCache/sessionStorage.js +10 -16
- package/es/lib/insights/client.js +12 -33
- package/es/lib/insights/listener.js +4 -18
- package/es/lib/routers/history.js +69 -108
- package/es/lib/stateMappings/simple.js +11 -13
- package/es/lib/stateMappings/singleIndex.js +6 -7
- package/es/lib/suit.js +2 -3
- package/es/lib/templating/prepareTemplateProps.js +13 -20
- package/es/lib/templating/renderTemplate.js +12 -21
- package/es/lib/utils/checkIndexUiState.js +19 -41
- package/es/lib/utils/clearRefinements.js +2 -8
- package/es/lib/utils/concatHighlightedParts.js +1 -1
- package/es/lib/utils/createConcurrentSafePromise.js +0 -2
- package/es/lib/utils/createSendEventForFacet.js +7 -12
- package/es/lib/utils/createSendEventForHits.js +8 -30
- package/es/lib/utils/debounce.js +0 -2
- package/es/lib/utils/defer.js +0 -10
- package/es/lib/utils/documentation.js +2 -3
- package/es/lib/utils/escape-highlight.js +9 -18
- package/es/lib/utils/escape-html.js +9 -5
- package/es/lib/utils/escapeFacetValue.js +0 -2
- package/es/lib/utils/find.js +2 -4
- package/es/lib/utils/findIndex.js +0 -2
- package/es/lib/utils/geo-search.js +21 -35
- package/es/lib/utils/getAppIdAndApiKey.js +2 -2
- package/es/lib/utils/getContainerNode.js +1 -5
- package/es/lib/utils/getHighlightFromSiblings.js +0 -3
- package/es/lib/utils/getHighlightedParts.js +1 -2
- package/es/lib/utils/getRefinements.js +28 -41
- package/es/lib/utils/getWidgetAttribute.js +0 -5
- package/es/lib/utils/hits-absolute-position.js +6 -6
- package/es/lib/utils/hits-query-id.js +6 -7
- package/es/lib/utils/isEqual.js +2 -6
- package/es/lib/utils/isPlainObject.js +3 -10
- package/es/lib/utils/logger.js +4 -14
- package/es/lib/utils/mergeSearchParameters.js +21 -38
- package/es/lib/utils/range.js +9 -14
- package/es/lib/utils/resolveSearchParameters.js +0 -2
- package/es/lib/utils/reverseHighlightedParts.js +6 -7
- package/es/lib/utils/safelyRunOnBrowser.js +7 -8
- package/es/lib/utils/setIndexHelperState.js +0 -2
- package/es/lib/version.d.ts +1 -1
- package/es/lib/version.js +1 -1
- package/es/lib/voiceSearchHelper/index.js +12 -36
- package/es/lib/voiceSearchHelper/types.js +1 -0
- package/es/middlewares/createInsightsMiddleware.js +21 -42
- package/es/middlewares/createMetadataMiddleware.js +3 -9
- package/es/middlewares/createRouterMiddleware.js +12 -14
- package/es/types/algoliasearch.js +1 -0
- package/es/types/component.js +1 -0
- package/es/types/connector.js +1 -0
- package/es/types/index.js +9 -5
- package/es/types/insights.js +1 -0
- package/es/types/instantsearch.js +1 -0
- package/es/types/middleware.js +1 -0
- package/es/types/render-state.js +1 -0
- package/es/types/results.js +1 -0
- package/es/types/router.js +1 -0
- package/es/types/templates.js +1 -0
- package/es/types/ui-state.js +1 -0
- package/es/types/utils.js +1 -0
- package/es/types/widget-factory.js +1 -0
- package/es/types/widget.js +1 -0
- package/es/widgets/analytics/analytics.js +19 -43
- package/es/widgets/answers/answers.js +23 -30
- package/es/widgets/breadcrumb/breadcrumb.js +22 -29
- package/es/widgets/clear-refinements/clear-refinements.js +19 -26
- package/es/widgets/configure/configure.js +7 -7
- package/es/widgets/configure-related-items/configure-related-items.js +6 -8
- package/es/widgets/current-refinements/current-refinements.js +16 -23
- package/es/widgets/dynamic-widgets/dynamic-widgets.js +11 -21
- package/es/widgets/geo-search/GeoSearchRenderer.d.js +1 -0
- package/es/widgets/geo-search/GeoSearchRenderer.js +47 -65
- package/es/widgets/geo-search/createHTMLMarker.d.ts +1 -0
- package/es/widgets/geo-search/createHTMLMarker.js +34 -61
- package/es/widgets/geo-search/defaultTemplates.js +0 -2
- package/es/widgets/geo-search/geo-search.d.ts +1 -0
- package/es/widgets/geo-search/geo-search.js +34 -50
- package/es/widgets/hierarchical-menu/defaultTemplates.js +4 -4
- package/es/widgets/hierarchical-menu/hierarchical-menu.js +32 -38
- package/es/widgets/hits/hits.js +20 -27
- package/es/widgets/hits-per-page/hits-per-page.js +17 -24
- package/es/widgets/index/index.js +55 -93
- package/es/widgets/index.d.ts +2 -1
- package/es/widgets/index.js +4 -3
- package/es/widgets/infinite-hits/infinite-hits.js +27 -34
- package/es/widgets/menu/defaultTemplates.js +3 -3
- package/es/widgets/menu/menu.js +27 -34
- package/es/widgets/menu-select/defaultTemplates.js +1 -1
- package/es/widgets/menu-select/menu-select.js +22 -29
- package/es/widgets/numeric-menu/defaultTemplates.js +3 -3
- package/es/widgets/numeric-menu/numeric-menu.js +21 -28
- package/es/widgets/pagination/pagination.js +36 -46
- package/es/widgets/panel/panel.js +24 -42
- package/es/widgets/places/places.js +22 -33
- package/es/widgets/powered-by/powered-by.js +14 -20
- package/es/widgets/query-rule-context/query-rule-context.js +6 -10
- package/es/widgets/query-rule-custom-data/query-rule-custom-data.js +17 -24
- package/es/widgets/range-input/range-input.js +28 -43
- package/es/widgets/range-slider/range-slider.js +33 -47
- package/es/widgets/rating-menu/defaultTemplates.js +8 -12
- package/es/widgets/rating-menu/rating-menu.js +21 -29
- package/es/widgets/refinement-list/defaultTemplates.js +5 -5
- package/es/widgets/refinement-list/refinement-list.js +43 -50
- package/es/widgets/relevant-sort/relevant-sort.js +14 -21
- package/es/widgets/search-box/defaultTemplates.js +0 -4
- package/es/widgets/search-box/search-box.js +35 -41
- package/es/widgets/sort-by/sort-by.js +15 -22
- package/es/widgets/stats/stats.js +30 -47
- package/es/widgets/toggle-refinement/toggle-refinement.js +20 -27
- package/es/widgets/voice-search/defaultTemplates.js +4 -13
- package/es/widgets/voice-search/voice-search.js +21 -28
- package/package.json +20 -119
- package/scripts/transforms/__testfixtures__/addWidget-to-addWidgets/imported.input.js +0 -1
- package/scripts/transforms/__testfixtures__/addWidget-to-addWidgets/imported.output.js +0 -1
- package/scripts/transforms/__tests__/addWidget-to-addWidgets.test.js +1 -0
- package/CHANGELOG.md +0 -3693
|
@@ -1,29 +1,22 @@
|
|
|
1
|
-
function
|
|
2
|
-
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
4
|
-
|
|
5
|
-
function
|
|
6
|
-
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
6
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
7
7
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
8
|
-
|
|
9
8
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
10
|
-
|
|
11
9
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
12
|
-
|
|
13
|
-
function
|
|
14
|
-
|
|
15
|
-
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
16
|
-
|
|
10
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
11
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
17
12
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
18
|
-
|
|
19
13
|
import { getInsightsAnonymousUserTokenInternal } from "../helpers/index.js";
|
|
20
14
|
import { warning, noop, getAppIdAndApiKey, find } from "../lib/utils/index.js";
|
|
21
15
|
export function createInsightsMiddleware(props) {
|
|
22
16
|
var _ref = props || {},
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
17
|
+
_insightsClient = _ref.insightsClient,
|
|
18
|
+
insightsInitParams = _ref.insightsInitParams,
|
|
19
|
+
onEvent = _ref.onEvent;
|
|
27
20
|
if (_insightsClient !== null && !_insightsClient) {
|
|
28
21
|
if (process.env.NODE_ENV === 'development') {
|
|
29
22
|
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 +24,21 @@ export function createInsightsMiddleware(props) {
|
|
|
31
24
|
throw new Error('The `insightsClient` option is required. To disable, set it to `null`.');
|
|
32
25
|
}
|
|
33
26
|
}
|
|
34
|
-
|
|
35
27
|
var hasInsightsClient = Boolean(_insightsClient);
|
|
36
28
|
var insightsClient = _insightsClient === null ? noop : _insightsClient;
|
|
37
29
|
return function (_ref2) {
|
|
38
30
|
var instantSearchInstance = _ref2.instantSearchInstance;
|
|
39
|
-
|
|
40
31
|
var _getAppIdAndApiKey = getAppIdAndApiKey(instantSearchInstance.client),
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
32
|
+
_getAppIdAndApiKey2 = _slicedToArray(_getAppIdAndApiKey, 2),
|
|
33
|
+
appId = _getAppIdAndApiKey2[0],
|
|
34
|
+
apiKey = _getAppIdAndApiKey2[1];
|
|
45
35
|
|
|
36
|
+
// search-insights.js also throws an error so dev-only clarification is sufficient
|
|
46
37
|
if (process.env.NODE_ENV === 'development' && !(appId && apiKey)) {
|
|
47
38
|
throw new Error('[insights middleware]: could not extract Algolia credentials from searchClient');
|
|
48
39
|
}
|
|
49
|
-
|
|
50
40
|
var queuedUserToken = undefined;
|
|
51
41
|
var userTokenBeforeInit = undefined;
|
|
52
|
-
|
|
53
42
|
if (Array.isArray(insightsClient.queue)) {
|
|
54
43
|
// Context: The umd build of search-insights is asynchronously loaded by the snippet.
|
|
55
44
|
//
|
|
@@ -63,16 +52,12 @@ export function createInsightsMiddleware(props) {
|
|
|
63
52
|
// Otherwise, the first search call will be fired without the token.
|
|
64
53
|
var _ref3 = find(insightsClient.queue.slice().reverse(), function (_ref5) {
|
|
65
54
|
var _ref6 = _slicedToArray(_ref5, 1),
|
|
66
|
-
|
|
67
|
-
|
|
55
|
+
method = _ref6[0];
|
|
68
56
|
return method === 'setUserToken';
|
|
69
57
|
}) || [];
|
|
70
|
-
|
|
71
58
|
var _ref4 = _slicedToArray(_ref3, 2);
|
|
72
|
-
|
|
73
59
|
queuedUserToken = _ref4[1];
|
|
74
60
|
}
|
|
75
|
-
|
|
76
61
|
insightsClient('getUserToken', null, function (_error, userToken) {
|
|
77
62
|
// If user has called `aa('setUserToken', 'my-user-token')` before creating
|
|
78
63
|
// the `insights` middleware, we store them temporarily and
|
|
@@ -101,41 +86,36 @@ export function createInsightsMiddleware(props) {
|
|
|
101
86
|
clickAnalytics: true
|
|
102
87
|
}));
|
|
103
88
|
instantSearchInstance.scheduleSearch();
|
|
104
|
-
|
|
105
89
|
var setUserTokenToSearch = function setUserTokenToSearch(userToken) {
|
|
106
90
|
helper.overrideStateWithoutTriggeringChangeEvent(_objectSpread(_objectSpread({}, helper.state), {}, {
|
|
107
91
|
userToken: userToken
|
|
108
92
|
}));
|
|
109
93
|
instantSearchInstance.scheduleSearch();
|
|
110
94
|
};
|
|
111
|
-
|
|
112
95
|
var anonymousUserToken = getInsightsAnonymousUserTokenInternal();
|
|
113
|
-
|
|
114
96
|
if (hasInsightsClient && anonymousUserToken) {
|
|
115
97
|
// When `aa('init', { ... })` is called, it creates an anonymous user token in cookie.
|
|
116
98
|
// We can set it as userToken.
|
|
117
99
|
setUserTokenToSearch(anonymousUserToken);
|
|
118
|
-
}
|
|
119
|
-
// importance than the one coming from the queue.
|
|
120
|
-
|
|
100
|
+
}
|
|
121
101
|
|
|
102
|
+
// We consider the `userToken` coming from a `init` call to have a higher
|
|
103
|
+
// importance than the one coming from the queue.
|
|
122
104
|
if (userTokenBeforeInit) {
|
|
123
105
|
insightsClient('setUserToken', userTokenBeforeInit);
|
|
124
106
|
} else if (queuedUserToken) {
|
|
125
107
|
insightsClient('setUserToken', queuedUserToken);
|
|
126
|
-
}
|
|
127
|
-
|
|
108
|
+
}
|
|
128
109
|
|
|
110
|
+
// This updates userToken which is set explicitly by `aa('setUserToken', userToken)`
|
|
129
111
|
insightsClient('onUserTokenChange', setUserTokenToSearch, {
|
|
130
112
|
immediate: true
|
|
131
113
|
});
|
|
132
|
-
|
|
133
114
|
instantSearchInstance.sendEventToInsights = function (event) {
|
|
134
115
|
if (onEvent) {
|
|
135
116
|
onEvent(event, _insightsClient);
|
|
136
117
|
} else if (event.insightsMethod) {
|
|
137
118
|
var hasUserToken = Boolean(helper.state.userToken);
|
|
138
|
-
|
|
139
119
|
if (hasUserToken) {
|
|
140
120
|
insightsClient(event.insightsMethod, event.payload);
|
|
141
121
|
} else {
|
|
@@ -149,7 +129,6 @@ export function createInsightsMiddleware(props) {
|
|
|
149
129
|
unsubscribe: function unsubscribe() {
|
|
150
130
|
insightsClient('onUserTokenChange', undefined);
|
|
151
131
|
instantSearchInstance.sendEventToInsights = noop;
|
|
152
|
-
|
|
153
132
|
if (helper && initialParameters) {
|
|
154
133
|
helper.setState(_objectSpread(_objectSpread({}, helper.state), initialParameters));
|
|
155
134
|
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;
|
|
@@ -1,31 +1,30 @@
|
|
|
1
|
-
function
|
|
2
|
-
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
4
|
-
|
|
5
|
-
function
|
|
6
|
-
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
6
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
7
7
|
import simpleStateMapping from "../lib/stateMappings/simple.js";
|
|
8
8
|
import historyRouter from "../lib/routers/history.js";
|
|
9
9
|
import { isEqual } from "../lib/utils/index.js";
|
|
10
10
|
export var createRouterMiddleware = function createRouterMiddleware() {
|
|
11
11
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
12
12
|
var _props$router = props.router,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
router = _props$router === void 0 ? historyRouter() : _props$router,
|
|
14
|
+
_props$stateMapping = props.stateMapping,
|
|
15
|
+
stateMapping = _props$stateMapping === void 0 ? simpleStateMapping() : _props$stateMapping;
|
|
16
16
|
return function (_ref) {
|
|
17
17
|
var instantSearchInstance = _ref.instantSearchInstance;
|
|
18
|
-
|
|
19
18
|
function topLevelCreateURL(nextState) {
|
|
20
19
|
var uiState = Object.keys(nextState).reduce(function (acc, indexId) {
|
|
21
20
|
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, indexId, nextState[indexId]));
|
|
22
21
|
}, instantSearchInstance.mainIndex.getWidgetUiState({}));
|
|
23
22
|
var route = stateMapping.stateToRoute(uiState);
|
|
24
23
|
return router.createURL(route);
|
|
25
|
-
}
|
|
26
|
-
// (as long as it's an object, it's ok)
|
|
27
|
-
|
|
24
|
+
}
|
|
28
25
|
|
|
26
|
+
// casting to UiState here to keep createURL unaware of custom UiState
|
|
27
|
+
// (as long as it's an object, it's ok)
|
|
29
28
|
instantSearchInstance._createURL = topLevelCreateURL;
|
|
30
29
|
var lastRouteState = undefined;
|
|
31
30
|
var initialUiState = instantSearchInstance._initialUiState;
|
|
@@ -33,7 +32,6 @@ export var createRouterMiddleware = function createRouterMiddleware() {
|
|
|
33
32
|
onStateChange: function onStateChange(_ref2) {
|
|
34
33
|
var uiState = _ref2.uiState;
|
|
35
34
|
var routeState = stateMapping.stateToRoute(uiState);
|
|
36
|
-
|
|
37
35
|
if (lastRouteState === undefined || !isEqual(lastRouteState, routeState)) {
|
|
38
36
|
router.write(routeState);
|
|
39
37
|
lastRouteState = routeState;
|
package/es/types/component.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/es/types/connector.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/es/types/index.js
CHANGED
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
// internal
|
|
2
|
-
export * from "./utils.js";
|
|
3
|
-
// eslint-disable-next-line import/export
|
|
2
|
+
export * from "./utils.js";
|
|
4
3
|
|
|
4
|
+
// Algolia-related
|
|
5
|
+
// eslint-disable-next-line import/export
|
|
5
6
|
export * from "./algoliasearch.js";
|
|
6
|
-
export * from "./results.js";
|
|
7
|
+
export * from "./results.js";
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
// component-related
|
|
10
|
+
export * from "./component.js";
|
|
9
11
|
|
|
12
|
+
// instantsearch-related
|
|
10
13
|
export * from "./instantsearch.js";
|
|
11
14
|
export * from "./middleware.js";
|
|
12
15
|
export * from "./router.js";
|
|
13
|
-
export * from "./insights.js";
|
|
16
|
+
export * from "./insights.js";
|
|
14
17
|
|
|
18
|
+
// widget-related
|
|
15
19
|
export * from "./connector.js";
|
|
16
20
|
export * from "./widget-factory.js";
|
|
17
21
|
export * from "./widget.js";
|
package/es/types/insights.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/es/types/middleware.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/es/types/render-state.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/es/types/results.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/es/types/router.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/es/types/templates.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/es/types/ui-state.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/es/types/utils.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/es/types/widget.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,54 +1,49 @@
|
|
|
1
|
-
function
|
|
2
|
-
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
4
|
-
|
|
5
|
-
function
|
|
6
|
-
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
6
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
7
7
|
import { createDocumentationMessageGenerator, warning } from "../../lib/utils/index.js";
|
|
8
8
|
var withUsage = createDocumentationMessageGenerator({
|
|
9
9
|
name: 'analytics'
|
|
10
10
|
});
|
|
11
|
-
|
|
12
11
|
// @major this widget will be removed from the next major version.
|
|
13
12
|
var analytics = function analytics(widgetParams) {
|
|
14
13
|
var _ref = widgetParams || {},
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
14
|
+
pushFunction = _ref.pushFunction,
|
|
15
|
+
_ref$delay = _ref.delay,
|
|
16
|
+
delay = _ref$delay === void 0 ? 3000 : _ref$delay,
|
|
17
|
+
_ref$triggerOnUIInter = _ref.triggerOnUIInteraction,
|
|
18
|
+
triggerOnUIInteraction = _ref$triggerOnUIInter === void 0 ? false : _ref$triggerOnUIInter,
|
|
19
|
+
_ref$pushInitialSearc = _ref.pushInitialSearch,
|
|
20
|
+
pushInitialSearch = _ref$pushInitialSearc === void 0 ? true : _ref$pushInitialSearc,
|
|
21
|
+
_ref$pushPagination = _ref.pushPagination,
|
|
22
|
+
pushPagination = _ref$pushPagination === void 0 ? false : _ref$pushPagination;
|
|
25
23
|
if (!pushFunction) {
|
|
26
24
|
throw new Error(withUsage('The `pushFunction` option is required.'));
|
|
27
25
|
}
|
|
28
|
-
|
|
29
26
|
process.env.NODE_ENV === 'development' ? warning(false, "`analytics` widget has been deprecated. It is still supported in 4.x releases, but not further. It is replaced by the `insights` middleware.\n\nFor the migration, visit https://www.algolia.com/doc/guides/building-search-ui/upgrade-guides/js/#analytics-widget") : void 0;
|
|
30
27
|
var cachedState = null;
|
|
31
|
-
|
|
32
28
|
var serializeRefinements = function serializeRefinements(parameters) {
|
|
33
29
|
var refinements = [];
|
|
34
30
|
|
|
31
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
35
32
|
for (var parameter in parameters) {
|
|
36
33
|
if (parameters.hasOwnProperty(parameter)) {
|
|
37
34
|
var values = parameters[parameter].join('+');
|
|
38
35
|
refinements.push("".concat(encodeURIComponent(parameter), "=").concat(encodeURIComponent(parameter), "_").concat(encodeURIComponent(values)));
|
|
39
36
|
}
|
|
40
37
|
}
|
|
41
|
-
|
|
42
38
|
return refinements.join('&');
|
|
43
39
|
};
|
|
44
|
-
|
|
45
40
|
var serializeNumericRefinements = function serializeNumericRefinements(numericRefinements) {
|
|
46
41
|
var refinements = [];
|
|
47
42
|
|
|
43
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
48
44
|
for (var attribute in numericRefinements) {
|
|
49
45
|
if (numericRefinements.hasOwnProperty(attribute)) {
|
|
50
46
|
var filter = numericRefinements[attribute];
|
|
51
|
-
|
|
52
47
|
if (filter.hasOwnProperty('>=') && filter.hasOwnProperty('<=')) {
|
|
53
48
|
if (filter['>='] && filter['>='][0] === filter['<='] && filter['<='][0]) {
|
|
54
49
|
refinements.push("".concat(attribute, "=").concat(attribute, "_").concat(filter['>=']));
|
|
@@ -62,6 +57,7 @@ var analytics = function analytics(widgetParams) {
|
|
|
62
57
|
} else if (filter.hasOwnProperty('=')) {
|
|
63
58
|
var equals = [];
|
|
64
59
|
|
|
60
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
65
61
|
for (var equal in filter['=']) {
|
|
66
62
|
// eslint-disable-next-line max-depth
|
|
67
63
|
if (filter['='].hasOwnProperty(equal)) {
|
|
@@ -69,62 +65,47 @@ var analytics = function analytics(widgetParams) {
|
|
|
69
65
|
equals.push(filter['='][equal]);
|
|
70
66
|
}
|
|
71
67
|
}
|
|
72
|
-
|
|
73
68
|
refinements.push("".concat(attribute, "=").concat(attribute, "_").concat(equals.join('-')));
|
|
74
69
|
}
|
|
75
70
|
}
|
|
76
71
|
}
|
|
77
|
-
|
|
78
72
|
return refinements.join('&');
|
|
79
73
|
};
|
|
80
|
-
|
|
81
74
|
var lastSentData = '';
|
|
82
|
-
|
|
83
75
|
var sendAnalytics = function sendAnalytics(analyticsState) {
|
|
84
76
|
if (analyticsState === null) {
|
|
85
77
|
return;
|
|
86
78
|
}
|
|
87
|
-
|
|
88
79
|
var serializedParams = [];
|
|
89
80
|
var serializedRefinements = serializeRefinements(_objectSpread(_objectSpread(_objectSpread({}, analyticsState.state.disjunctiveFacetsRefinements), analyticsState.state.facetsRefinements), analyticsState.state.hierarchicalFacetsRefinements));
|
|
90
81
|
var serializedNumericRefinements = serializeNumericRefinements(analyticsState.state.numericRefinements);
|
|
91
|
-
|
|
92
82
|
if (serializedRefinements !== '') {
|
|
93
83
|
serializedParams.push(serializedRefinements);
|
|
94
84
|
}
|
|
95
|
-
|
|
96
85
|
if (serializedNumericRefinements !== '') {
|
|
97
86
|
serializedParams.push(serializedNumericRefinements);
|
|
98
87
|
}
|
|
99
|
-
|
|
100
88
|
var stringifiedParams = serializedParams.join('&');
|
|
101
89
|
var dataToSend = "Query: ".concat(analyticsState.state.query || '', ", ").concat(stringifiedParams);
|
|
102
|
-
|
|
103
90
|
if (pushPagination === true) {
|
|
104
91
|
dataToSend += ", Page: ".concat(analyticsState.state.page || 0);
|
|
105
92
|
}
|
|
106
|
-
|
|
107
93
|
if (lastSentData !== dataToSend) {
|
|
108
94
|
pushFunction(stringifiedParams, analyticsState.state, analyticsState.results);
|
|
109
95
|
lastSentData = dataToSend;
|
|
110
96
|
}
|
|
111
97
|
};
|
|
112
|
-
|
|
113
98
|
var pushTimeout;
|
|
114
99
|
var isInitialSearch = true;
|
|
115
|
-
|
|
116
100
|
if (pushInitialSearch === true) {
|
|
117
101
|
isInitialSearch = false;
|
|
118
102
|
}
|
|
119
|
-
|
|
120
103
|
var onClick = function onClick() {
|
|
121
104
|
sendAnalytics(cachedState);
|
|
122
105
|
};
|
|
123
|
-
|
|
124
106
|
var onUnload = function onUnload() {
|
|
125
107
|
sendAnalytics(cachedState);
|
|
126
108
|
};
|
|
127
|
-
|
|
128
109
|
return {
|
|
129
110
|
$$type: 'ais.analytics',
|
|
130
111
|
$$widgetType: 'ais.analytics',
|
|
@@ -136,22 +117,18 @@ var analytics = function analytics(widgetParams) {
|
|
|
136
117
|
},
|
|
137
118
|
render: function render(_ref2) {
|
|
138
119
|
var results = _ref2.results,
|
|
139
|
-
|
|
140
|
-
|
|
120
|
+
state = _ref2.state;
|
|
141
121
|
if (isInitialSearch === true) {
|
|
142
122
|
isInitialSearch = false;
|
|
143
123
|
return;
|
|
144
124
|
}
|
|
145
|
-
|
|
146
125
|
cachedState = {
|
|
147
126
|
results: results,
|
|
148
127
|
state: state
|
|
149
128
|
};
|
|
150
|
-
|
|
151
129
|
if (pushTimeout) {
|
|
152
130
|
clearTimeout(pushTimeout);
|
|
153
131
|
}
|
|
154
|
-
|
|
155
132
|
pushTimeout = window.setTimeout(function () {
|
|
156
133
|
return sendAnalytics(cachedState);
|
|
157
134
|
}, delay);
|
|
@@ -174,5 +151,4 @@ var analytics = function analytics(widgetParams) {
|
|
|
174
151
|
}
|
|
175
152
|
};
|
|
176
153
|
};
|
|
177
|
-
|
|
178
154
|
export default analytics;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
function
|
|
2
|
-
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
4
|
-
|
|
5
|
-
function
|
|
6
|
-
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
6
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
7
7
|
import { h, render } from 'preact';
|
|
8
8
|
import { cx } from '@algolia/ui-components-shared';
|
|
9
9
|
import defaultTemplates from "./defaultTemplates.js";
|
|
@@ -16,17 +16,15 @@ var withUsage = createDocumentationMessageGenerator({
|
|
|
16
16
|
name: 'answers'
|
|
17
17
|
});
|
|
18
18
|
var suit = component('Answers');
|
|
19
|
-
|
|
20
19
|
var renderer = function renderer(_ref) {
|
|
21
20
|
var containerNode = _ref.containerNode,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
cssClasses = _ref.cssClasses,
|
|
22
|
+
renderState = _ref.renderState,
|
|
23
|
+
templates = _ref.templates;
|
|
25
24
|
return function (_ref2, isFirstRendering) {
|
|
26
25
|
var hits = _ref2.hits,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
isLoading = _ref2.isLoading,
|
|
27
|
+
instantSearchInstance = _ref2.instantSearchInstance;
|
|
30
28
|
if (isFirstRendering) {
|
|
31
29
|
renderState.templateProps = prepareTemplateProps({
|
|
32
30
|
defaultTemplates: defaultTemplates,
|
|
@@ -35,7 +33,6 @@ var renderer = function renderer(_ref) {
|
|
|
35
33
|
});
|
|
36
34
|
return;
|
|
37
35
|
}
|
|
38
|
-
|
|
39
36
|
render(h(Answers, {
|
|
40
37
|
cssClasses: cssClasses,
|
|
41
38
|
hits: hits,
|
|
@@ -44,26 +41,23 @@ var renderer = function renderer(_ref) {
|
|
|
44
41
|
}), containerNode);
|
|
45
42
|
};
|
|
46
43
|
};
|
|
47
|
-
|
|
48
44
|
var answersWidget = function answersWidget(widgetParams) {
|
|
49
45
|
var _ref3 = widgetParams || {},
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
46
|
+
container = _ref3.container,
|
|
47
|
+
attributesForPrediction = _ref3.attributesForPrediction,
|
|
48
|
+
queryLanguages = _ref3.queryLanguages,
|
|
49
|
+
nbHits = _ref3.nbHits,
|
|
50
|
+
searchDebounceTime = _ref3.searchDebounceTime,
|
|
51
|
+
renderDebounceTime = _ref3.renderDebounceTime,
|
|
52
|
+
escapeHTML = _ref3.escapeHTML,
|
|
53
|
+
extraParameters = _ref3.extraParameters,
|
|
54
|
+
_ref3$templates = _ref3.templates,
|
|
55
|
+
templates = _ref3$templates === void 0 ? {} : _ref3$templates,
|
|
56
|
+
_ref3$cssClasses = _ref3.cssClasses,
|
|
57
|
+
userCssClasses = _ref3$cssClasses === void 0 ? {} : _ref3$cssClasses;
|
|
63
58
|
if (!container) {
|
|
64
59
|
throw new Error(withUsage('The `container` option is required.'));
|
|
65
60
|
}
|
|
66
|
-
|
|
67
61
|
var containerNode = getContainerNode(container);
|
|
68
62
|
var cssClasses = {
|
|
69
63
|
root: cx(suit(), userCssClasses.root),
|
|
@@ -104,5 +98,4 @@ var answersWidget = function answersWidget(widgetParams) {
|
|
|
104
98
|
$$widgetType: 'ais.answers'
|
|
105
99
|
});
|
|
106
100
|
};
|
|
107
|
-
|
|
108
101
|
export default answersWidget;
|