@algolia/autocomplete-js 1.10.0 → 1.11.1

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.
@@ -101,13 +101,12 @@ export function renderPanel(render, _ref2) {
101
101
  }, propGetters.getListProps(_objectSpread({
102
102
  state: state,
103
103
  props: autocomplete.getListProps({
104
- sourceIndex: sourceIndex
104
+ source: source
105
105
  })
106
106
  }, autocompleteScopeApi))), items.map(function (item) {
107
107
  var itemProps = autocomplete.getItemProps({
108
108
  item: item,
109
- source: source,
110
- sourceIndex: sourceIndex
109
+ source: source
111
110
  });
112
111
  return renderer.createElement("li", _extends({
113
112
  key: itemProps.id,
@@ -1,4 +1,4 @@
1
- /*! @algolia/autocomplete-js 1.10.0 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
1
+ /*! @algolia/autocomplete-js 1.11.1 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
2
2
  (function (global, factory) {
3
3
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
4
4
  typeof define === 'function' && define.amd ? define(['exports'], factory) :
@@ -347,7 +347,7 @@
347
347
  return undefined;
348
348
  }
349
349
 
350
- var version = '1.10.0';
350
+ var version = '1.11.1';
351
351
 
352
352
  var userAgents$1 = [{
353
353
  segment: 'autocomplete-core',
@@ -940,14 +940,23 @@
940
940
  var setContext = _ref4.setContext,
941
941
  onSelect = _ref4.onSelect,
942
942
  onActive = _ref4.onActive;
943
+ function setInsightsContext(userToken) {
944
+ setContext({
945
+ algoliaInsightsPlugin: {
946
+ __algoliaSearchParameters: _objectSpread$f({
947
+ clickAnalytics: true
948
+ }, userToken ? {
949
+ userToken: userToken
950
+ } : {}),
951
+ insights: insights
952
+ }
953
+ });
954
+ }
943
955
  insightsClient('addAlgoliaAgent', 'insights-plugin');
944
- setContext({
945
- algoliaInsightsPlugin: {
946
- __algoliaSearchParameters: {
947
- clickAnalytics: true
948
- },
949
- insights: insights
950
- }
956
+ setInsightsContext();
957
+ insightsClient('onUserTokenChange', setInsightsContext);
958
+ insightsClient('getUserToken', null, function (_error, userToken) {
959
+ setInsightsContext(userToken);
951
960
  });
952
961
  onSelect(function (_ref5) {
953
962
  var item = _ref5.item,
@@ -1361,6 +1370,17 @@
1361
1370
  };
1362
1371
  }
1363
1372
 
1373
+ /**
1374
+ * Returns a full element id for an autocomplete element.
1375
+ *
1376
+ * @param autocompleteInstanceId The id of the autocomplete instance
1377
+ * @param elementId The specific element id
1378
+ * @param source The source of the element, when it needs to be scoped
1379
+ */
1380
+ function getAutocompleteElementId(autocompleteInstanceId, elementId, source) {
1381
+ return [autocompleteInstanceId, source === null || source === void 0 ? void 0 : source.sourceId, elementId].filter(Boolean).join('-').replace(/\s/g, '');
1382
+ }
1383
+
1364
1384
  function isOrContainsNode(parent, child) {
1365
1385
  return parent === child || parent.contains(child);
1366
1386
  }
@@ -2349,7 +2369,8 @@
2349
2369
  if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {
2350
2370
  // eslint-disable-next-line no-inner-declarations
2351
2371
  var triggerScrollIntoView = function triggerScrollIntoView() {
2352
- var nodeItem = props.environment.document.getElementById("".concat(props.id, "-item-").concat(store.getState().activeItemId));
2372
+ var highlightedItem = getActiveItem(store.getState());
2373
+ var nodeItem = props.environment.document.getElementById(getAutocompleteElementId(props.id, "item-".concat(store.getState().activeItemId), highlightedItem === null || highlightedItem === void 0 ? void 0 : highlightedItem.source));
2353
2374
  if (nodeItem) {
2354
2375
  if (nodeItem.scrollIntoViewIfNeeded) {
2355
2376
  nodeItem.scrollIntoViewIfNeeded(false);
@@ -2536,9 +2557,8 @@
2536
2557
  _excluded2 = ["inputElement", "formElement", "panelElement"],
2537
2558
  _excluded3 = ["inputElement"],
2538
2559
  _excluded4 = ["inputElement", "maxLength"],
2539
- _excluded5 = ["sourceIndex"],
2540
- _excluded6 = ["sourceIndex"],
2541
- _excluded7 = ["item", "source", "sourceIndex"];
2560
+ _excluded5 = ["source"],
2561
+ _excluded6 = ["item", "source"];
2542
2562
  function ownKeys$6(object, enumerableOnly) {
2543
2563
  var keys = Object.keys(object);
2544
2564
  if (Object.getOwnPropertySymbols) {
@@ -2683,8 +2703,11 @@
2683
2703
  role: 'combobox',
2684
2704
  'aria-expanded': store.getState().isOpen,
2685
2705
  'aria-haspopup': 'listbox',
2686
- 'aria-owns': store.getState().isOpen ? "".concat(props.id, "-list") : undefined,
2687
- 'aria-labelledby': "".concat(props.id, "-label")
2706
+ 'aria-owns': store.getState().isOpen ? store.getState().collections.map(function (_ref2) {
2707
+ var source = _ref2.source;
2708
+ return getAutocompleteElementId(props.id, 'list', source);
2709
+ }).join(' ') : undefined,
2710
+ 'aria-labelledby': getAutocompleteElementId(props.id, 'label')
2688
2711
  }, rest);
2689
2712
  };
2690
2713
  var getFormProps = function getFormProps(providedProps) {
@@ -2734,22 +2757,25 @@
2734
2757
  }
2735
2758
  store.dispatch('focus', null);
2736
2759
  }
2737
- var _ref2 = providedProps || {};
2738
- _ref2.inputElement;
2739
- var _ref2$maxLength = _ref2.maxLength,
2740
- maxLength = _ref2$maxLength === void 0 ? 512 : _ref2$maxLength,
2741
- rest = _objectWithoutProperties$1(_ref2, _excluded4);
2760
+ var _ref3 = providedProps || {};
2761
+ _ref3.inputElement;
2762
+ var _ref3$maxLength = _ref3.maxLength,
2763
+ maxLength = _ref3$maxLength === void 0 ? 512 : _ref3$maxLength,
2764
+ rest = _objectWithoutProperties$1(_ref3, _excluded4);
2742
2765
  var activeItem = getActiveItem(store.getState());
2743
2766
  var userAgent = ((_props$environment$na = props.environment.navigator) === null || _props$environment$na === void 0 ? void 0 : _props$environment$na.userAgent) || '';
2744
2767
  var shouldFallbackKeyHint = isSamsung(userAgent);
2745
2768
  var enterKeyHint = props.enterKeyHint || (activeItem !== null && activeItem !== void 0 && activeItem.itemUrl && !shouldFallbackKeyHint ? 'go' : 'search');
2746
2769
  return _objectSpread$6({
2747
2770
  'aria-autocomplete': 'both',
2748
- 'aria-activedescendant': store.getState().isOpen && store.getState().activeItemId !== null ? "".concat(props.id, "-item-").concat(store.getState().activeItemId) : undefined,
2749
- 'aria-controls': store.getState().isOpen ? "".concat(props.id, "-list") : undefined,
2750
- 'aria-labelledby': "".concat(props.id, "-label"),
2771
+ 'aria-activedescendant': store.getState().isOpen && store.getState().activeItemId !== null ? getAutocompleteElementId(props.id, "item-".concat(store.getState().activeItemId), activeItem === null || activeItem === void 0 ? void 0 : activeItem.source) : undefined,
2772
+ 'aria-controls': store.getState().isOpen ? store.getState().collections.map(function (_ref4) {
2773
+ var source = _ref4.source;
2774
+ return getAutocompleteElementId(props.id, 'list', source);
2775
+ }).join(' ') : undefined,
2776
+ 'aria-labelledby': getAutocompleteElementId(props.id, 'label'),
2751
2777
  value: store.getState().completion || store.getState().query,
2752
- id: "".concat(props.id, "-input"),
2778
+ id: getAutocompleteElementId(props.id, 'input'),
2753
2779
  autoComplete: 'off',
2754
2780
  autoCorrect: 'off',
2755
2781
  autoCapitalize: 'off',
@@ -2795,26 +2821,20 @@
2795
2821
  }
2796
2822
  }, rest);
2797
2823
  };
2798
- var getAutocompleteId = function getAutocompleteId(instanceId, sourceId) {
2799
- return typeof sourceId !== 'undefined' ? "".concat(instanceId, "-").concat(sourceId) : instanceId;
2800
- };
2801
- var getLabelProps = function getLabelProps(providedProps) {
2802
- var _ref3 = providedProps || {},
2803
- sourceIndex = _ref3.sourceIndex,
2804
- rest = _objectWithoutProperties$1(_ref3, _excluded5);
2824
+ var getLabelProps = function getLabelProps(rest) {
2805
2825
  return _objectSpread$6({
2806
- htmlFor: "".concat(getAutocompleteId(props.id, sourceIndex), "-input"),
2807
- id: "".concat(getAutocompleteId(props.id, sourceIndex), "-label")
2826
+ htmlFor: getAutocompleteElementId(props.id, 'input'),
2827
+ id: getAutocompleteElementId(props.id, 'label')
2808
2828
  }, rest);
2809
2829
  };
2810
2830
  var getListProps = function getListProps(providedProps) {
2811
- var _ref4 = providedProps || {},
2812
- sourceIndex = _ref4.sourceIndex,
2813
- rest = _objectWithoutProperties$1(_ref4, _excluded6);
2831
+ var _ref5 = providedProps || {},
2832
+ source = _ref5.source,
2833
+ rest = _objectWithoutProperties$1(_ref5, _excluded5);
2814
2834
  return _objectSpread$6({
2815
2835
  role: 'listbox',
2816
- 'aria-labelledby': "".concat(getAutocompleteId(props.id, sourceIndex), "-label"),
2817
- id: "".concat(getAutocompleteId(props.id, sourceIndex), "-list")
2836
+ 'aria-labelledby': getAutocompleteElementId(props.id, 'label'),
2837
+ id: getAutocompleteElementId(props.id, 'list', source)
2818
2838
  }, rest);
2819
2839
  };
2820
2840
  var getPanelProps = function getPanelProps(rest) {
@@ -2833,10 +2853,9 @@
2833
2853
  var getItemProps = function getItemProps(providedProps) {
2834
2854
  var item = providedProps.item,
2835
2855
  source = providedProps.source,
2836
- sourceIndex = providedProps.sourceIndex,
2837
- rest = _objectWithoutProperties$1(providedProps, _excluded7);
2856
+ rest = _objectWithoutProperties$1(providedProps, _excluded6);
2838
2857
  return _objectSpread$6({
2839
- id: "".concat(getAutocompleteId(props.id, sourceIndex), "-item-").concat(item.__autocomplete_id),
2858
+ id: getAutocompleteElementId(props.id, "item-".concat(item.__autocomplete_id), source),
2840
2859
  role: 'option',
2841
2860
  'aria-selected': store.getState().activeItemId === item.__autocomplete_id,
2842
2861
  onMouseMove: function onMouseMove(event) {
@@ -4696,13 +4715,12 @@
4696
4715
  }, propGetters.getListProps(_objectSpread2({
4697
4716
  state: state,
4698
4717
  props: autocomplete.getListProps({
4699
- sourceIndex: sourceIndex
4718
+ source: source
4700
4719
  })
4701
4720
  }, autocompleteScopeApi))), items.map(function (item) {
4702
4721
  var itemProps = autocomplete.getItemProps({
4703
4722
  item: item,
4704
- source: source,
4705
- sourceIndex: sourceIndex
4723
+ source: source
4706
4724
  });
4707
4725
  return renderer.createElement("li", _extends({
4708
4726
  key: itemProps.id,