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,13 +1,8 @@
|
|
|
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 connectDynamicWidgets from "../../connectors/dynamic-widgets/connectDynamicWidgets.js";
|
|
12
7
|
import { component } from "../../lib/suit.js";
|
|
13
8
|
import { createDocumentationMessageGenerator, getContainerNode, getWidgetAttribute } from "../../lib/utils/index.js";
|
|
@@ -15,7 +10,6 @@ var withUsage = createDocumentationMessageGenerator({
|
|
|
15
10
|
name: 'dynamic-widgets'
|
|
16
11
|
});
|
|
17
12
|
var suit = component('DynamicWidgets');
|
|
18
|
-
|
|
19
13
|
function createContainer(rootContainer) {
|
|
20
14
|
var container = document.createElement('div');
|
|
21
15
|
container.className = suit({
|
|
@@ -24,24 +18,20 @@ function createContainer(rootContainer) {
|
|
|
24
18
|
rootContainer.appendChild(container);
|
|
25
19
|
return container;
|
|
26
20
|
}
|
|
27
|
-
|
|
28
21
|
var dynamicWidgets = function dynamicWidgets(widgetParams) {
|
|
29
22
|
var _ref = widgetParams || {},
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
23
|
+
containerSelector = _ref.container,
|
|
24
|
+
widgets = _ref.widgets,
|
|
25
|
+
fallbackWidget = _ref.fallbackWidget,
|
|
26
|
+
otherWidgetParams = _objectWithoutProperties(_ref, ["container", "widgets", "fallbackWidget"]);
|
|
35
27
|
if (!containerSelector) {
|
|
36
28
|
throw new Error(withUsage('The `container` option is required.'));
|
|
37
29
|
}
|
|
38
|
-
|
|
39
30
|
if (!(widgets && Array.isArray(widgets) && widgets.every(function (widget) {
|
|
40
31
|
return typeof widget === 'function';
|
|
41
32
|
}))) {
|
|
42
33
|
throw new Error(withUsage('The `widgets` option expects an array of callbacks.'));
|
|
43
34
|
}
|
|
44
|
-
|
|
45
35
|
var userContainer = getContainerNode(containerSelector);
|
|
46
36
|
var rootContainer = document.createElement('div');
|
|
47
37
|
rootContainer.className = suit();
|
|
@@ -49,16 +39,13 @@ var dynamicWidgets = function dynamicWidgets(widgetParams) {
|
|
|
49
39
|
var connectorWidgets = [];
|
|
50
40
|
var makeWidget = connectDynamicWidgets(function (_ref2, isFirstRender) {
|
|
51
41
|
var attributesToRender = _ref2.attributesToRender;
|
|
52
|
-
|
|
53
42
|
if (isFirstRender) {
|
|
54
43
|
userContainer.appendChild(rootContainer);
|
|
55
44
|
}
|
|
56
|
-
|
|
57
45
|
attributesToRender.forEach(function (attribute) {
|
|
58
46
|
if (!containers.has(attribute)) {
|
|
59
47
|
return;
|
|
60
48
|
}
|
|
61
|
-
|
|
62
49
|
var container = containers.get(attribute);
|
|
63
50
|
rootContainer.appendChild(container);
|
|
64
51
|
});
|
|
@@ -91,5 +78,4 @@ var dynamicWidgets = function dynamicWidgets(widgetParams) {
|
|
|
91
78
|
$$widgetType: 'ais.dynamicWidgets'
|
|
92
79
|
});
|
|
93
80
|
};
|
|
94
|
-
|
|
95
81
|
export default dynamicWidgets;
|
|
@@ -1,45 +1,33 @@
|
|
|
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
10
|
|
|
19
11
|
import { h, render } from 'preact';
|
|
20
12
|
import { prepareTemplateProps } from "../../lib/templating/index.js";
|
|
21
13
|
import GeoSearchControls from "../../components/GeoSearchControls/GeoSearchControls.js";
|
|
22
|
-
|
|
23
14
|
var refineWithMap = function refineWithMap(_ref) {
|
|
24
15
|
var refine = _ref.refine,
|
|
25
|
-
|
|
16
|
+
mapInstance = _ref.mapInstance;
|
|
26
17
|
return refine({
|
|
27
18
|
northEast: mapInstance.getBounds().getNorthEast().toJSON(),
|
|
28
19
|
southWest: mapInstance.getBounds().getSouthWest().toJSON()
|
|
29
20
|
});
|
|
30
21
|
};
|
|
31
|
-
|
|
32
22
|
var collectMarkersForNextRender = function collectMarkersForNextRender(markers, nextIds) {
|
|
33
23
|
return markers.reduce(function (_ref2, marker) {
|
|
34
24
|
var _ref3 = _slicedToArray(_ref2, 2),
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
25
|
+
update = _ref3[0],
|
|
26
|
+
exit = _ref3[1];
|
|
38
27
|
var persist = nextIds.includes(marker.__id);
|
|
39
28
|
return persist ? [update.concat(marker), exit] : [update, exit.concat(marker)];
|
|
40
29
|
}, [[], []]);
|
|
41
30
|
};
|
|
42
|
-
|
|
43
31
|
var createBoundingBoxFromMarkers = function createBoundingBoxFromMarkers(google, markers) {
|
|
44
32
|
var latLngBounds = markers.reduce(function (acc, marker) {
|
|
45
33
|
return acc.extend(marker.getPosition());
|
|
@@ -49,40 +37,37 @@ var createBoundingBoxFromMarkers = function createBoundingBoxFromMarkers(google,
|
|
|
49
37
|
southWest: latLngBounds.getSouthWest().toJSON()
|
|
50
38
|
};
|
|
51
39
|
};
|
|
52
|
-
|
|
53
40
|
var lockUserInteraction = function lockUserInteraction(renderState, functionThatAltersTheMapPosition) {
|
|
54
41
|
renderState.isUserInteraction = false;
|
|
55
42
|
functionThatAltersTheMapPosition();
|
|
56
43
|
renderState.isUserInteraction = true;
|
|
57
44
|
};
|
|
58
|
-
|
|
59
45
|
var renderer = function renderer(_ref4, isFirstRendering) {
|
|
60
46
|
var items = _ref4.items,
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
47
|
+
position = _ref4.position,
|
|
48
|
+
currentRefinement = _ref4.currentRefinement,
|
|
49
|
+
refine = _ref4.refine,
|
|
50
|
+
clearMapRefinement = _ref4.clearMapRefinement,
|
|
51
|
+
toggleRefineOnMapMove = _ref4.toggleRefineOnMapMove,
|
|
52
|
+
isRefineOnMapMove = _ref4.isRefineOnMapMove,
|
|
53
|
+
setMapMoveSinceLastRefine = _ref4.setMapMoveSinceLastRefine,
|
|
54
|
+
hasMapMoveSinceLastRefine = _ref4.hasMapMoveSinceLastRefine,
|
|
55
|
+
isRefinedWithMap = _ref4.isRefinedWithMap,
|
|
56
|
+
widgetParams = _ref4.widgetParams,
|
|
57
|
+
instantSearchInstance = _ref4.instantSearchInstance;
|
|
72
58
|
var container = widgetParams.container,
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
59
|
+
googleReference = widgetParams.googleReference,
|
|
60
|
+
cssClasses = widgetParams.cssClasses,
|
|
61
|
+
templates = widgetParams.templates,
|
|
62
|
+
initialZoom = widgetParams.initialZoom,
|
|
63
|
+
initialPosition = widgetParams.initialPosition,
|
|
64
|
+
enableRefine = widgetParams.enableRefine,
|
|
65
|
+
enableClearMapRefinement = widgetParams.enableClearMapRefinement,
|
|
66
|
+
enableRefineControl = widgetParams.enableRefineControl,
|
|
67
|
+
mapOptions = widgetParams.mapOptions,
|
|
68
|
+
createMarker = widgetParams.createMarker,
|
|
69
|
+
markerOptions = widgetParams.markerOptions,
|
|
70
|
+
renderState = widgetParams.renderState;
|
|
86
71
|
if (isFirstRendering) {
|
|
87
72
|
renderState.isUserInteraction = true;
|
|
88
73
|
renderState.isPendingRefine = false;
|
|
@@ -105,18 +90,15 @@ var renderer = function renderer(_ref4, isFirstRendering) {
|
|
|
105
90
|
position: googleReference.maps.ControlPosition.LEFT_TOP
|
|
106
91
|
}
|
|
107
92
|
}, mapOptions));
|
|
108
|
-
|
|
109
93
|
var setupListenersWhenMapIsReady = function setupListenersWhenMapIsReady() {
|
|
110
94
|
var onChange = function onChange() {
|
|
111
95
|
if (renderState.isUserInteraction && enableRefine) {
|
|
112
96
|
setMapMoveSinceLastRefine();
|
|
113
|
-
|
|
114
97
|
if (isRefineOnMapMove()) {
|
|
115
98
|
renderState.isPendingRefine = true;
|
|
116
99
|
}
|
|
117
100
|
}
|
|
118
101
|
};
|
|
119
|
-
|
|
120
102
|
renderState.mapInstance.addListener('center_changed', onChange);
|
|
121
103
|
renderState.mapInstance.addListener('zoom_changed', onChange);
|
|
122
104
|
renderState.mapInstance.addListener('dragstart', onChange);
|
|
@@ -130,37 +112,35 @@ var renderer = function renderer(_ref4, isFirstRendering) {
|
|
|
130
112
|
}
|
|
131
113
|
});
|
|
132
114
|
};
|
|
133
|
-
|
|
134
115
|
googleReference.maps.event.addListenerOnce(renderState.mapInstance, 'idle', setupListenersWhenMapIsReady);
|
|
135
116
|
renderState.templateProps = prepareTemplateProps({
|
|
136
117
|
templatesConfig: instantSearchInstance.templatesConfig,
|
|
137
118
|
templates: templates
|
|
138
119
|
});
|
|
139
120
|
return;
|
|
140
|
-
}
|
|
141
|
-
|
|
121
|
+
}
|
|
142
122
|
|
|
123
|
+
// Collect markers that need to be updated or removed
|
|
143
124
|
var nextItemsIds = items.map(function (_) {
|
|
144
125
|
return _.objectID;
|
|
145
126
|
});
|
|
146
|
-
|
|
147
127
|
var _collectMarkersForNex = collectMarkersForNextRender(renderState.markers, nextItemsIds),
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
128
|
+
_collectMarkersForNex2 = _slicedToArray(_collectMarkersForNex, 2),
|
|
129
|
+
updateMarkers = _collectMarkersForNex2[0],
|
|
130
|
+
exitMarkers = _collectMarkersForNex2[1]; // Collect items that will be added
|
|
153
131
|
var updateMarkerIds = updateMarkers.map(function (_) {
|
|
154
132
|
return _.__id;
|
|
155
133
|
});
|
|
156
134
|
var nextPendingItems = items.filter(function (item) {
|
|
157
135
|
return !updateMarkerIds.includes(item.objectID);
|
|
158
|
-
});
|
|
136
|
+
});
|
|
159
137
|
|
|
138
|
+
// Remove all markers that need to be removed
|
|
160
139
|
exitMarkers.forEach(function (marker) {
|
|
161
140
|
return marker.setMap(null);
|
|
162
|
-
});
|
|
141
|
+
});
|
|
163
142
|
|
|
143
|
+
// Create the markers from the items
|
|
164
144
|
renderState.markers = updateMarkers.concat(nextPendingItems.map(function (item) {
|
|
165
145
|
var marker = createMarker({
|
|
166
146
|
map: renderState.mapInstance,
|
|
@@ -178,15 +158,15 @@ var renderer = function renderer(_ref4, isFirstRendering) {
|
|
|
178
158
|
});
|
|
179
159
|
return marker;
|
|
180
160
|
}));
|
|
181
|
-
var shouldUpdate = !hasMapMoveSinceLastRefine();
|
|
161
|
+
var shouldUpdate = !hasMapMoveSinceLastRefine();
|
|
162
|
+
|
|
163
|
+
// We use this value for differentiate the padding to apply during
|
|
182
164
|
// fitBounds. When we don't have a currenRefinement (boundingBox)
|
|
183
165
|
// we let Google Maps compute the automatic padding. But when we
|
|
184
166
|
// provide the currentRefinement we explicitly set the padding
|
|
185
167
|
// to `0` otherwise the map will decrease the zoom on each refine.
|
|
186
|
-
|
|
187
168
|
var boundingBoxPadding = currentRefinement ? 0 : null;
|
|
188
169
|
var boundingBox = !currentRefinement && Boolean(renderState.markers.length) ? createBoundingBoxFromMarkers(googleReference, renderState.markers) : currentRefinement;
|
|
189
|
-
|
|
190
170
|
if (boundingBox && shouldUpdate) {
|
|
191
171
|
lockUserInteraction(renderState, function () {
|
|
192
172
|
renderState.mapInstance.fitBounds(new googleReference.maps.LatLngBounds(boundingBox.southWest, boundingBox.northEast), boundingBoxPadding);
|
|
@@ -197,7 +177,6 @@ var renderer = function renderer(_ref4, isFirstRendering) {
|
|
|
197
177
|
renderState.mapInstance.setZoom(initialZoom);
|
|
198
178
|
});
|
|
199
179
|
}
|
|
200
|
-
|
|
201
180
|
render(h(GeoSearchControls, {
|
|
202
181
|
cssClasses: cssClasses,
|
|
203
182
|
enableRefine: enableRefine,
|
|
@@ -217,5 +196,4 @@ var renderer = function renderer(_ref4, isFirstRendering) {
|
|
|
217
196
|
templateProps: renderState.templateProps
|
|
218
197
|
}), container.querySelector(".".concat(cssClasses.tree)));
|
|
219
198
|
};
|
|
220
|
-
|
|
221
199
|
export default renderer;
|
|
@@ -1,66 +1,41 @@
|
|
|
1
|
-
function _typeof(obj) { "@babel/helpers - typeof";
|
|
2
|
-
|
|
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); }
|
|
3
2
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
4
|
-
|
|
5
3
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
6
|
-
|
|
7
|
-
function
|
|
8
|
-
|
|
9
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
10
|
-
|
|
11
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
12
|
-
|
|
4
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
5
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
6
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
13
7
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
14
|
-
|
|
15
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
16
|
-
|
|
8
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
17
9
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
18
|
-
|
|
19
|
-
function
|
|
20
|
-
|
|
21
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
22
|
-
|
|
10
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
11
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
23
12
|
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; }
|
|
24
|
-
|
|
25
13
|
/* global google EventListener */
|
|
26
14
|
import { render } from 'preact';
|
|
27
|
-
|
|
28
15
|
var createHTMLMarker = function createHTMLMarker(googleReference) {
|
|
29
16
|
var HTMLMarker = /*#__PURE__*/function (_googleReference$maps) {
|
|
30
17
|
_inherits(HTMLMarker, _googleReference$maps);
|
|
31
|
-
|
|
32
18
|
var _super = _createSuper(HTMLMarker);
|
|
33
|
-
|
|
34
19
|
function HTMLMarker(_ref) {
|
|
35
20
|
var _this;
|
|
36
|
-
|
|
37
21
|
var __id = _ref.__id,
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
22
|
+
position = _ref.position,
|
|
23
|
+
map = _ref.map,
|
|
24
|
+
template = _ref.template,
|
|
25
|
+
className = _ref.className,
|
|
26
|
+
_ref$anchor = _ref.anchor,
|
|
27
|
+
anchor = _ref$anchor === void 0 ? {
|
|
28
|
+
x: 0,
|
|
29
|
+
y: 0
|
|
30
|
+
} : _ref$anchor;
|
|
48
31
|
_classCallCheck(this, HTMLMarker);
|
|
49
|
-
|
|
50
32
|
_this = _super.call(this);
|
|
51
|
-
|
|
52
33
|
_defineProperty(_assertThisInitialized(_this), "__id", void 0);
|
|
53
|
-
|
|
54
34
|
_defineProperty(_assertThisInitialized(_this), "anchor", void 0);
|
|
55
|
-
|
|
56
35
|
_defineProperty(_assertThisInitialized(_this), "offset", void 0);
|
|
57
|
-
|
|
58
36
|
_defineProperty(_assertThisInitialized(_this), "listeners", void 0);
|
|
59
|
-
|
|
60
37
|
_defineProperty(_assertThisInitialized(_this), "latLng", void 0);
|
|
61
|
-
|
|
62
38
|
_defineProperty(_assertThisInitialized(_this), "element", void 0);
|
|
63
|
-
|
|
64
39
|
_this.__id = __id;
|
|
65
40
|
_this.anchor = anchor;
|
|
66
41
|
_this.listeners = {};
|
|
@@ -68,33 +43,31 @@ var createHTMLMarker = function createHTMLMarker(googleReference) {
|
|
|
68
43
|
_this.element = document.createElement('div');
|
|
69
44
|
_this.element.className = className;
|
|
70
45
|
_this.element.style.position = 'absolute';
|
|
71
|
-
|
|
72
46
|
if (_typeof(template) === 'object') {
|
|
73
47
|
render(template, _this.element);
|
|
74
48
|
} else {
|
|
75
49
|
_this.element.innerHTML = template;
|
|
76
50
|
}
|
|
77
|
-
|
|
78
51
|
_this.setMap(map);
|
|
79
|
-
|
|
80
52
|
return _this;
|
|
81
53
|
}
|
|
82
|
-
|
|
83
54
|
_createClass(HTMLMarker, [{
|
|
84
55
|
key: "onAdd",
|
|
85
56
|
value: function onAdd() {
|
|
86
57
|
// Append the element to the map
|
|
87
|
-
this.getPanes().overlayMouseTarget.appendChild(this.element);
|
|
58
|
+
this.getPanes().overlayMouseTarget.appendChild(this.element);
|
|
59
|
+
|
|
60
|
+
// Compute the offset onAdd & cache it because afterwards
|
|
88
61
|
// it won't retrieve the correct values, we also avoid
|
|
89
62
|
// to read the values on every draw
|
|
90
|
-
|
|
91
63
|
var bbBox = this.element.getBoundingClientRect();
|
|
92
64
|
this.offset = {
|
|
93
65
|
x: this.anchor.x + bbBox.width / 2,
|
|
94
66
|
y: this.anchor.y + bbBox.height
|
|
95
|
-
};
|
|
96
|
-
// content to collapse when we move the map
|
|
67
|
+
};
|
|
97
68
|
|
|
69
|
+
// Force the width of the element will avoid the
|
|
70
|
+
// content to collapse when we move the map
|
|
98
71
|
this.element.style.width = "".concat(bbBox.width, "px");
|
|
99
72
|
}
|
|
100
73
|
}, {
|
|
@@ -102,25 +75,26 @@ var createHTMLMarker = function createHTMLMarker(googleReference) {
|
|
|
102
75
|
value: function draw() {
|
|
103
76
|
var position = this.getProjection().fromLatLngToDivPixel(this.latLng);
|
|
104
77
|
this.element.style.left = "".concat(Math.round(position.x - this.offset.x), "px");
|
|
105
|
-
this.element.style.top = "".concat(Math.round(position.y - this.offset.y), "px");
|
|
106
|
-
// This is the default behaviour of Google Maps
|
|
78
|
+
this.element.style.top = "".concat(Math.round(position.y - this.offset.y), "px");
|
|
107
79
|
|
|
80
|
+
// Markers to the south are in front of markers to the north
|
|
81
|
+
// This is the default behaviour of Google Maps
|
|
108
82
|
this.element.style.zIndex = String(parseInt(this.element.style.top, 10));
|
|
109
83
|
}
|
|
110
84
|
}, {
|
|
111
85
|
key: "onRemove",
|
|
112
86
|
value: function onRemove() {
|
|
113
87
|
var _this2 = this;
|
|
114
|
-
|
|
115
88
|
if (this.element) {
|
|
116
89
|
this.element.parentNode.removeChild(this.element);
|
|
117
90
|
Object.keys(this.listeners).forEach(function (eventName) {
|
|
118
91
|
_this2.element.removeEventListener(eventName, _this2.listeners[eventName]);
|
|
119
|
-
});
|
|
120
|
-
// @ts-expect-error
|
|
121
|
-
|
|
122
|
-
delete this.element; // @ts-expect-error
|
|
92
|
+
});
|
|
123
93
|
|
|
94
|
+
// after onRemove the class is no longer used, thus it can be deleted
|
|
95
|
+
// @ts-expect-error
|
|
96
|
+
delete this.element;
|
|
97
|
+
// @ts-expect-error
|
|
124
98
|
delete this.listeners;
|
|
125
99
|
}
|
|
126
100
|
}
|
|
@@ -142,11 +116,8 @@ var createHTMLMarker = function createHTMLMarker(googleReference) {
|
|
|
142
116
|
return this.latLng;
|
|
143
117
|
}
|
|
144
118
|
}]);
|
|
145
|
-
|
|
146
119
|
return HTMLMarker;
|
|
147
120
|
}(googleReference.maps.OverlayView);
|
|
148
|
-
|
|
149
121
|
return HTMLMarker;
|
|
150
122
|
};
|
|
151
|
-
|
|
152
123
|
export default createHTMLMarker;
|
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
2
|
-
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
|
-
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
5
3
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
-
|
|
7
4
|
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
|
// global for TypeScript alone
|
|
12
|
-
|
|
13
7
|
/* global google */
|
|
14
8
|
import { cx } from '@algolia/ui-components-shared';
|
|
15
9
|
import { render } from 'preact';
|
|
@@ -24,7 +18,6 @@ var withUsage = createDocumentationMessageGenerator({
|
|
|
24
18
|
name: 'geo-search'
|
|
25
19
|
});
|
|
26
20
|
var suit = component('GeoSearch');
|
|
27
|
-
|
|
28
21
|
/**
|
|
29
22
|
* The **GeoSearch** widget displays the list of results from the search on a Google Maps. It also provides a way to search for results based on their position. The widget also provide some of the common GeoSearch patterns like search on map interaction.
|
|
30
23
|
*
|
|
@@ -40,30 +33,29 @@ var suit = component('GeoSearch');
|
|
|
40
33
|
*/
|
|
41
34
|
var geoSearch = function geoSearch(widgetParams) {
|
|
42
35
|
var _ref = widgetParams || {},
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
36
|
+
_ref$initialZoom = _ref.initialZoom,
|
|
37
|
+
initialZoom = _ref$initialZoom === void 0 ? 1 : _ref$initialZoom,
|
|
38
|
+
_ref$initialPosition = _ref.initialPosition,
|
|
39
|
+
initialPosition = _ref$initialPosition === void 0 ? {
|
|
40
|
+
lat: 0,
|
|
41
|
+
lng: 0
|
|
42
|
+
} : _ref$initialPosition,
|
|
43
|
+
_ref$templates = _ref.templates,
|
|
44
|
+
userTemplates = _ref$templates === void 0 ? {} : _ref$templates,
|
|
45
|
+
_ref$cssClasses = _ref.cssClasses,
|
|
46
|
+
userCssClasses = _ref$cssClasses === void 0 ? {} : _ref$cssClasses,
|
|
47
|
+
_ref$builtInMarker = _ref.builtInMarker,
|
|
48
|
+
userBuiltInMarker = _ref$builtInMarker === void 0 ? {} : _ref$builtInMarker,
|
|
49
|
+
userCustomHTMLMarker = _ref.customHTMLMarker,
|
|
50
|
+
_ref$enableRefine = _ref.enableRefine,
|
|
51
|
+
enableRefine = _ref$enableRefine === void 0 ? true : _ref$enableRefine,
|
|
52
|
+
_ref$enableClearMapRe = _ref.enableClearMapRefinement,
|
|
53
|
+
enableClearMapRefinement = _ref$enableClearMapRe === void 0 ? true : _ref$enableClearMapRe,
|
|
54
|
+
_ref$enableRefineCont = _ref.enableRefineControl,
|
|
55
|
+
enableRefineControl = _ref$enableRefineCont === void 0 ? true : _ref$enableRefineCont,
|
|
56
|
+
container = _ref.container,
|
|
57
|
+
googleReference = _ref.googleReference,
|
|
58
|
+
otherWidgetParams = _objectWithoutProperties(_ref, ["initialZoom", "initialPosition", "templates", "cssClasses", "builtInMarker", "customHTMLMarker", "enableRefine", "enableClearMapRefinement", "enableRefineControl", "container", "googleReference"]);
|
|
67
59
|
var defaultBuiltInMarker = {
|
|
68
60
|
createOptions: function createOptions() {
|
|
69
61
|
return {};
|
|
@@ -76,15 +68,12 @@ var geoSearch = function geoSearch(widgetParams) {
|
|
|
76
68
|
},
|
|
77
69
|
events: {}
|
|
78
70
|
};
|
|
79
|
-
|
|
80
71
|
if (!container) {
|
|
81
72
|
throw new Error(withUsage('The `container` option is required.'));
|
|
82
73
|
}
|
|
83
|
-
|
|
84
74
|
if (!googleReference) {
|
|
85
75
|
throw new Error(withUsage('The `googleReference` option is required.'));
|
|
86
76
|
}
|
|
87
|
-
|
|
88
77
|
var containerNode = getContainerNode(container);
|
|
89
78
|
var cssClasses = {
|
|
90
79
|
root: cx(suit(), userCssClasses.root),
|
|
@@ -119,32 +108,23 @@ var geoSearch = function geoSearch(widgetParams) {
|
|
|
119
108
|
descendantName: 'reset'
|
|
120
109
|
}), userCssClasses.reset)
|
|
121
110
|
};
|
|
122
|
-
|
|
123
111
|
var templates = _objectSpread(_objectSpread({}, defaultTemplates), userTemplates);
|
|
124
|
-
|
|
125
112
|
var builtInMarker = _objectSpread(_objectSpread({}, defaultBuiltInMarker), userBuiltInMarker);
|
|
126
|
-
|
|
127
113
|
var isCustomHTMLMarker = Boolean(userCustomHTMLMarker) || Boolean(userTemplates.HTMLMarker);
|
|
128
|
-
|
|
129
114
|
var customHTMLMarker = isCustomHTMLMarker && _objectSpread(_objectSpread({}, defaultCustomHTMLMarker), userCustomHTMLMarker);
|
|
130
|
-
|
|
131
115
|
var createBuiltInMarker = function createBuiltInMarker(_ref2) {
|
|
132
116
|
var item = _ref2.item,
|
|
133
|
-
|
|
134
|
-
|
|
117
|
+
rest = _objectWithoutProperties(_ref2, ["item"]);
|
|
135
118
|
return new googleReference.maps.Marker(_objectSpread(_objectSpread(_objectSpread({}, builtInMarker.createOptions(item)), rest), {}, {
|
|
136
119
|
// @ts-expect-error @types/googlemaps doesn't document this
|
|
137
120
|
__id: item.objectID,
|
|
138
121
|
position: item._geoloc
|
|
139
122
|
}));
|
|
140
123
|
};
|
|
141
|
-
|
|
142
124
|
var HTMLMarker = createHTMLMarker(googleReference);
|
|
143
|
-
|
|
144
125
|
var createCustomHTMLMarker = function createCustomHTMLMarker(_ref3) {
|
|
145
126
|
var item = _ref3.item,
|
|
146
|
-
|
|
147
|
-
|
|
127
|
+
rest = _objectWithoutProperties(_ref3, ["item"]);
|
|
148
128
|
return new HTMLMarker(_objectSpread(_objectSpread(_objectSpread({}, customHTMLMarker.createOptions(item)), rest), {}, {
|
|
149
129
|
__id: item.objectID,
|
|
150
130
|
position: item._geoloc,
|
|
@@ -158,7 +138,6 @@ var geoSearch = function geoSearch(widgetParams) {
|
|
|
158
138
|
})
|
|
159
139
|
}));
|
|
160
140
|
};
|
|
161
|
-
|
|
162
141
|
var createMarker = !customHTMLMarker ? createBuiltInMarker : createCustomHTMLMarker;
|
|
163
142
|
var markerOptions = !customHTMLMarker ? builtInMarker : customHTMLMarker;
|
|
164
143
|
var makeWidget = connectGeoSearch(renderer, function () {
|
|
@@ -181,5 +160,4 @@ var geoSearch = function geoSearch(widgetParams) {
|
|
|
181
160
|
$$widgetType: 'ais.geoSearch'
|
|
182
161
|
});
|
|
183
162
|
};
|
|
184
|
-
|
|
185
163
|
export default geoSearch;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
+
|
|
1
2
|
import { h } from 'preact';
|
|
2
3
|
import { formatNumber } from "../../lib/formatNumber.js";
|
|
3
4
|
import { cx } from '@algolia/ui-components-shared';
|
|
4
5
|
var defaultTemplates = {
|
|
5
6
|
item: function item(_ref) {
|
|
6
7
|
var url = _ref.url,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
label = _ref.label,
|
|
9
|
+
count = _ref.count,
|
|
10
|
+
cssClasses = _ref.cssClasses,
|
|
11
|
+
isRefined = _ref.isRefined;
|
|
11
12
|
return h("a", {
|
|
12
13
|
className: cx(cx(cssClasses.link), cx(isRefined ? cssClasses.selectedItemLink : undefined)),
|
|
13
14
|
href: url
|