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