@algolia/autocomplete-core 1.8.3 → 1.9.0

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.
Files changed (55) hide show
  1. package/dist/esm/createAutocomplete.js +12 -9
  2. package/dist/esm/createStore.js +4 -5
  3. package/dist/esm/getAutocompleteSetters.d.ts +6 -6
  4. package/dist/esm/getAutocompleteSetters.js +4 -11
  5. package/dist/esm/getCompletion.js +0 -3
  6. package/dist/esm/getDefaultProps.js +6 -22
  7. package/dist/esm/getPropGetters.js +40 -69
  8. package/dist/esm/metadata.js +6 -9
  9. package/dist/esm/onInput.js +25 -34
  10. package/dist/esm/onKeyDown.js +30 -40
  11. package/dist/esm/reshape.d.ts +1 -1
  12. package/dist/esm/reshape.js +17 -19
  13. package/dist/esm/resolve.js +10 -28
  14. package/dist/esm/stateReducer.js +7 -24
  15. package/dist/esm/types/AutocompleteStore.d.ts +1 -3
  16. package/dist/esm/types/AutocompleteSubscribers.d.ts +1 -2
  17. package/dist/esm/types/index.d.ts +16 -11
  18. package/dist/esm/types/index.js +3 -12
  19. package/dist/esm/utils/createCancelablePromise.js +0 -8
  20. package/dist/esm/utils/createConcurrentSafePromise.js +0 -1
  21. package/dist/esm/utils/getActiveItem.d.ts +1 -1
  22. package/dist/esm/utils/getActiveItem.js +4 -12
  23. package/dist/esm/utils/getNextActiveItemId.js +0 -4
  24. package/dist/esm/utils/getNormalizedSources.js +5 -10
  25. package/dist/esm/utils/mapToAlgoliaResponse.d.ts +1 -1
  26. package/dist/esm/utils/mapToAlgoliaResponse.js +4 -6
  27. package/dist/umd/index.development.js +961 -387
  28. package/dist/umd/index.development.js.map +1 -1
  29. package/dist/umd/index.production.js +2 -2
  30. package/dist/umd/index.production.js.map +1 -1
  31. package/package.json +6 -5
  32. package/dist/esm/types/AutocompleteApi.d.ts +0 -15
  33. package/dist/esm/types/AutocompleteApi.js +0 -1
  34. package/dist/esm/types/AutocompleteCollection.d.ts +0 -10
  35. package/dist/esm/types/AutocompleteCollection.js +0 -1
  36. package/dist/esm/types/AutocompleteContext.d.ts +0 -3
  37. package/dist/esm/types/AutocompleteContext.js +0 -1
  38. package/dist/esm/types/AutocompleteEnvironment.d.ts +0 -13
  39. package/dist/esm/types/AutocompleteEnvironment.js +0 -1
  40. package/dist/esm/types/AutocompleteNavigator.d.ts +0 -28
  41. package/dist/esm/types/AutocompleteNavigator.js +0 -1
  42. package/dist/esm/types/AutocompleteOptions.d.ts +0 -185
  43. package/dist/esm/types/AutocompleteOptions.js +0 -1
  44. package/dist/esm/types/AutocompletePlugin.d.ts +0 -43
  45. package/dist/esm/types/AutocompletePlugin.js +0 -1
  46. package/dist/esm/types/AutocompletePropGetters.d.ts +0 -100
  47. package/dist/esm/types/AutocompletePropGetters.js +0 -1
  48. package/dist/esm/types/AutocompleteReshape.d.ts +0 -25
  49. package/dist/esm/types/AutocompleteReshape.js +0 -1
  50. package/dist/esm/types/AutocompleteSetters.d.ts +0 -46
  51. package/dist/esm/types/AutocompleteSetters.js +0 -1
  52. package/dist/esm/types/AutocompleteSource.d.ts +0 -75
  53. package/dist/esm/types/AutocompleteSource.js +0 -1
  54. package/dist/esm/types/AutocompleteState.d.ts +0 -12
  55. package/dist/esm/types/AutocompleteState.js +0 -1
@@ -1,9 +1,10 @@
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); }
1
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; }
2
-
3
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
-
5
- 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
-
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
+ import { createAlgoliaInsightsPlugin } from '@algolia/autocomplete-plugin-algolia-insights';
7
8
  import { checkOptions } from './checkOptions';
8
9
  import { createStore } from './createStore';
9
10
  import { getAutocompleteSetters } from './getAutocompleteSetters';
@@ -26,10 +27,9 @@ export function createAutocomplete(options) {
26
27
  store: store,
27
28
  navigator: props.navigator
28
29
  }, setters));
29
-
30
30
  function onStoreStateChange(_ref) {
31
31
  var prevState = _ref.prevState,
32
- state = _ref.state;
32
+ state = _ref.state;
33
33
  props.onStateChange(_objectSpread({
34
34
  prevState: prevState,
35
35
  state: state,
@@ -37,7 +37,6 @@ export function createAutocomplete(options) {
37
37
  navigator: props.navigator
38
38
  }, setters));
39
39
  }
40
-
41
40
  function refresh() {
42
41
  return onInput(_objectSpread({
43
42
  event: new Event('input'),
@@ -51,10 +50,14 @@ export function createAutocomplete(options) {
51
50
  store: store
52
51
  }, setters));
53
52
  }
54
-
53
+ if (options.insights && !props.plugins.some(function (plugin) {
54
+ return plugin.name === 'aa.algoliaInsightsPlugin';
55
+ })) {
56
+ var insightsParams = typeof options.insights === 'boolean' ? {} : options.insights;
57
+ props.plugins.push(createAlgoliaInsightsPlugin(insightsParams));
58
+ }
55
59
  props.plugins.forEach(function (plugin) {
56
60
  var _plugin$subscribe;
57
-
58
61
  return (_plugin$subscribe = plugin.subscribe) === null || _plugin$subscribe === void 0 ? void 0 : _plugin$subscribe.call(plugin, _objectSpread(_objectSpread({}, setters), {}, {
59
62
  navigator: props.navigator,
60
63
  refresh: refresh,
@@ -1,9 +1,9 @@
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); }
1
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; }
2
-
3
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
-
5
- 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
-
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
7
7
  import { createCancelablePromiseList } from './utils';
8
8
  export function createStore(reducer, props, onStoreStateChange) {
9
9
  var state = props.initialState;
@@ -13,7 +13,6 @@ export function createStore(reducer, props, onStoreStateChange) {
13
13
  },
14
14
  dispatch: function dispatch(action, payload) {
15
15
  var prevState = _objectSpread({}, state);
16
-
17
16
  state = reducer(state, {
18
17
  type: action,
19
18
  props: props,
@@ -3,11 +3,11 @@ interface GetAutocompleteSettersOptions<TItem extends BaseItem> {
3
3
  store: AutocompleteStore<TItem>;
4
4
  }
5
5
  export declare function getAutocompleteSetters<TItem extends BaseItem>({ store, }: GetAutocompleteSettersOptions<TItem>): {
6
- setActiveItemId: import("./types").StateUpdater<number | null>;
7
- setQuery: import("./types").StateUpdater<string>;
8
- setCollections: import("./types").StateUpdater<(AutocompleteCollection<TItem> | import("./types").AutocompleteCollectionItemsArray<TItem>)[]>;
9
- setIsOpen: import("./types").StateUpdater<boolean>;
10
- setStatus: import("./types").StateUpdater<"idle" | "loading" | "stalled" | "error">;
11
- setContext: import("./types").StateUpdater<import("./types").AutocompleteContext>;
6
+ setActiveItemId: import("@algolia/autocomplete-shared/dist/esm/core/AutocompleteSetters").StateUpdater<number | null>;
7
+ setQuery: import("@algolia/autocomplete-shared/dist/esm/core/AutocompleteSetters").StateUpdater<string>;
8
+ setCollections: import("@algolia/autocomplete-shared/dist/esm/core/AutocompleteSetters").StateUpdater<(AutocompleteCollection<TItem> | import("@algolia/autocomplete-shared/dist/esm/core/AutocompleteCollection").AutocompleteCollectionItemsArray<TItem>)[]>;
9
+ setIsOpen: import("@algolia/autocomplete-shared/dist/esm/core/AutocompleteSetters").StateUpdater<boolean>;
10
+ setStatus: import("@algolia/autocomplete-shared/dist/esm/core/AutocompleteSetters").StateUpdater<"idle" | "loading" | "stalled" | "error">;
11
+ setContext: import("@algolia/autocomplete-shared/dist/esm/core/AutocompleteSetters").StateUpdater<import("@algolia/autocomplete-shared/dist/esm/core/AutocompleteContext").AutocompleteContext>;
12
12
  };
13
13
  export {};
@@ -1,21 +1,18 @@
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); }
1
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; }
2
-
3
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
-
5
- 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
-
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
7
7
  import { flatten } from '@algolia/autocomplete-shared';
8
8
  export function getAutocompleteSetters(_ref) {
9
9
  var store = _ref.store;
10
-
11
10
  var setActiveItemId = function setActiveItemId(value) {
12
11
  store.dispatch('setActiveItemId', value);
13
12
  };
14
-
15
13
  var setQuery = function setQuery(value) {
16
14
  store.dispatch('setQuery', value);
17
15
  };
18
-
19
16
  var setCollections = function setCollections(rawValue) {
20
17
  var baseItemId = 0;
21
18
  var value = rawValue.map(function (collection) {
@@ -31,19 +28,15 @@ export function getAutocompleteSetters(_ref) {
31
28
  });
32
29
  store.dispatch('setCollections', value);
33
30
  };
34
-
35
31
  var setIsOpen = function setIsOpen(value) {
36
32
  store.dispatch('setIsOpen', value);
37
33
  };
38
-
39
34
  var setStatus = function setStatus(value) {
40
35
  store.dispatch('setStatus', value);
41
36
  };
42
-
43
37
  var setContext = function setContext(value) {
44
38
  store.dispatch('setContext', value);
45
39
  };
46
-
47
40
  return {
48
41
  setActiveItemId: setActiveItemId,
49
42
  setQuery: setQuery,
@@ -1,12 +1,9 @@
1
1
  import { getActiveItem } from './utils';
2
2
  export function getCompletion(_ref) {
3
3
  var _getActiveItem;
4
-
5
4
  var state = _ref.state;
6
-
7
5
  if (state.isOpen === false || state.activeItemId === null) {
8
6
  return null;
9
7
  }
10
-
11
8
  return ((_getActiveItem = getActiveItem(state)) === null || _getActiveItem === void 0 ? void 0 : _getActiveItem.itemInputValue) || null;
12
9
  }
@@ -1,30 +1,22 @@
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); }
1
2
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
-
3
3
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
-
5
4
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
-
7
5
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
8
-
9
6
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
10
-
11
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
12
-
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; }
13
8
  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; }
14
-
15
9
  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; }
16
-
17
- 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; }
18
-
10
+ 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; }
11
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
12
+ 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); }
19
13
  import { getItemsCount, generateAutocompleteId, flatten } from '@algolia/autocomplete-shared';
20
14
  import { getNormalizedSources } from './utils';
21
15
  export function getDefaultProps(props, pluginSubscribers) {
22
16
  var _props$id;
23
-
24
17
  /* eslint-disable no-restricted-globals */
25
18
  var environment = typeof window !== 'undefined' ? window : {};
26
19
  /* eslint-enable no-restricted-globals */
27
-
28
20
  var plugins = props.plugins || [];
29
21
  return _objectSpread(_objectSpread({
30
22
  debug: false,
@@ -33,6 +25,7 @@ export function getDefaultProps(props, pluginSubscribers) {
33
25
  autoFocus: false,
34
26
  defaultActiveItemId: null,
35
27
  stallThreshold: 300,
28
+ insights: false,
36
29
  environment: environment,
37
30
  shouldPanelOpen: function shouldPanelOpen(_ref) {
38
31
  var state = _ref.state;
@@ -59,31 +52,25 @@ export function getDefaultProps(props, pluginSubscribers) {
59
52
  }, props.initialState),
60
53
  onStateChange: function onStateChange(params) {
61
54
  var _props$onStateChange;
62
-
63
55
  (_props$onStateChange = props.onStateChange) === null || _props$onStateChange === void 0 ? void 0 : _props$onStateChange.call(props, params);
64
56
  plugins.forEach(function (x) {
65
57
  var _x$onStateChange;
66
-
67
58
  return (_x$onStateChange = x.onStateChange) === null || _x$onStateChange === void 0 ? void 0 : _x$onStateChange.call(x, params);
68
59
  });
69
60
  },
70
61
  onSubmit: function onSubmit(params) {
71
62
  var _props$onSubmit;
72
-
73
63
  (_props$onSubmit = props.onSubmit) === null || _props$onSubmit === void 0 ? void 0 : _props$onSubmit.call(props, params);
74
64
  plugins.forEach(function (x) {
75
65
  var _x$onSubmit;
76
-
77
66
  return (_x$onSubmit = x.onSubmit) === null || _x$onSubmit === void 0 ? void 0 : _x$onSubmit.call(x, params);
78
67
  });
79
68
  },
80
69
  onReset: function onReset(params) {
81
70
  var _props$onReset;
82
-
83
71
  (_props$onReset = props.onReset) === null || _props$onReset === void 0 ? void 0 : _props$onReset.call(props, params);
84
72
  plugins.forEach(function (x) {
85
73
  var _x$onReset;
86
-
87
74
  return (_x$onReset = x.onReset) === null || _x$onReset === void 0 ? void 0 : _x$onReset.call(x, params);
88
75
  });
89
76
  },
@@ -101,7 +88,6 @@ export function getDefaultProps(props, pluginSubscribers) {
101
88
  source.onSelect(params);
102
89
  pluginSubscribers.forEach(function (x) {
103
90
  var _x$onSelect;
104
-
105
91
  return (_x$onSelect = x.onSelect) === null || _x$onSelect === void 0 ? void 0 : _x$onSelect.call(x, params);
106
92
  });
107
93
  },
@@ -109,7 +95,6 @@ export function getDefaultProps(props, pluginSubscribers) {
109
95
  source.onActive(params);
110
96
  pluginSubscribers.forEach(function (x) {
111
97
  var _x$onActive;
112
-
113
98
  return (_x$onActive = x.onActive) === null || _x$onActive === void 0 ? void 0 : _x$onActive.call(x, params);
114
99
  });
115
100
  },
@@ -117,7 +102,6 @@ export function getDefaultProps(props, pluginSubscribers) {
117
102
  source.onResolve(params);
118
103
  pluginSubscribers.forEach(function (x) {
119
104
  var _x$onResolve;
120
-
121
105
  return (_x$onResolve = x.onResolve) === null || _x$onResolve === void 0 ? void 0 : _x$onResolve.call(x, params);
122
106
  });
123
107
  }
@@ -1,37 +1,32 @@
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); }
1
2
  var _excluded = ["props", "refresh", "store"],
2
- _excluded2 = ["inputElement", "formElement", "panelElement"],
3
- _excluded3 = ["inputElement"],
4
- _excluded4 = ["inputElement", "maxLength"],
5
- _excluded5 = ["sourceIndex"],
6
- _excluded6 = ["sourceIndex"],
7
- _excluded7 = ["item", "source", "sourceIndex"];
8
-
3
+ _excluded2 = ["inputElement", "formElement", "panelElement"],
4
+ _excluded3 = ["inputElement"],
5
+ _excluded4 = ["inputElement", "maxLength"],
6
+ _excluded5 = ["sourceIndex"],
7
+ _excluded6 = ["sourceIndex"],
8
+ _excluded7 = ["item", "source", "sourceIndex"];
9
9
  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; }
10
-
11
10
  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; }
12
-
13
- 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; }
14
-
11
+ 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; }
12
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
13
+ 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); }
15
14
  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; }
16
-
17
15
  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; }
18
-
19
16
  import { noop } from '@algolia/autocomplete-shared';
20
17
  import { onInput } from './onInput';
21
18
  import { onKeyDown as _onKeyDown } from './onKeyDown';
22
19
  import { getActiveItem, isOrContainsNode, isSamsung } from './utils';
23
20
  export function getPropGetters(_ref) {
24
21
  var props = _ref.props,
25
- refresh = _ref.refresh,
26
- store = _ref.store,
27
- setters = _objectWithoutProperties(_ref, _excluded);
28
-
22
+ refresh = _ref.refresh,
23
+ store = _ref.store,
24
+ setters = _objectWithoutProperties(_ref, _excluded);
29
25
  var getEnvironmentProps = function getEnvironmentProps(providedProps) {
30
26
  var inputElement = providedProps.inputElement,
31
- formElement = providedProps.formElement,
32
- panelElement = providedProps.panelElement,
33
- rest = _objectWithoutProperties(providedProps, _excluded2);
34
-
27
+ formElement = providedProps.formElement,
28
+ panelElement = providedProps.panelElement,
29
+ rest = _objectWithoutProperties(providedProps, _excluded2);
35
30
  function onMouseDownOrTouchStart(event) {
36
31
  // The `onTouchStart`/`onMouseDown` events shouldn't trigger the `blur`
37
32
  // handler when it's not an interaction with Autocomplete.
@@ -40,29 +35,27 @@ export function getPropGetters(_ref) {
40
35
  // (no interaction with the autocomplete, no future state updates)
41
36
  // - OR the touched target is the input element (should open the panel)
42
37
  var isAutocompleteInteraction = store.getState().isOpen || !store.pendingRequests.isEmpty();
43
-
44
38
  if (!isAutocompleteInteraction || event.target === inputElement) {
45
39
  return;
46
- } // @TODO: support cases where there are multiple Autocomplete instances.
47
- // Right now, a second instance makes this computation return false.
48
-
40
+ }
49
41
 
42
+ // @TODO: support cases where there are multiple Autocomplete instances.
43
+ // Right now, a second instance makes this computation return false.
50
44
  var isTargetWithinAutocomplete = [formElement, panelElement].some(function (contextNode) {
51
45
  return isOrContainsNode(contextNode, event.target);
52
46
  });
53
-
54
47
  if (isTargetWithinAutocomplete === false) {
55
- store.dispatch('blur', null); // If requests are still pending when the user closes the panel, they
48
+ store.dispatch('blur', null);
49
+
50
+ // If requests are still pending when the user closes the panel, they
56
51
  // could reopen the panel once they resolve.
57
52
  // We want to prevent any subsequent query from reopening the panel
58
53
  // because it would result in an unsolicited UI behavior.
59
-
60
54
  if (!props.debug) {
61
55
  store.pendingRequests.cancelAll();
62
56
  }
63
57
  }
64
58
  }
65
-
66
59
  return _objectSpread({
67
60
  // We do not rely on the native `blur` event of the input to close the
68
61
  // panel, but rather on a custom `touchstart`/`mousedown` event outside
@@ -83,12 +76,10 @@ export function getPropGetters(_ref) {
83
76
  if (store.getState().isOpen === false || inputElement !== props.environment.document.activeElement || event.target === inputElement) {
84
77
  return;
85
78
  }
86
-
87
79
  inputElement.blur();
88
80
  }
89
81
  }, rest);
90
82
  };
91
-
92
83
  var getRootProps = function getRootProps(rest) {
93
84
  return _objectSpread({
94
85
  role: 'combobox',
@@ -98,18 +89,15 @@ export function getPropGetters(_ref) {
98
89
  'aria-labelledby': "".concat(props.id, "-label")
99
90
  }, rest);
100
91
  };
101
-
102
92
  var getFormProps = function getFormProps(providedProps) {
103
93
  var inputElement = providedProps.inputElement,
104
- rest = _objectWithoutProperties(providedProps, _excluded3);
105
-
94
+ rest = _objectWithoutProperties(providedProps, _excluded3);
106
95
  return _objectSpread({
107
96
  action: '',
108
97
  noValidate: true,
109
98
  role: 'search',
110
99
  onSubmit: function onSubmit(event) {
111
100
  var _providedProps$inputE;
112
-
113
101
  event.preventDefault();
114
102
  props.onSubmit(_objectSpread({
115
103
  event: event,
@@ -121,7 +109,6 @@ export function getPropGetters(_ref) {
121
109
  },
122
110
  onReset: function onReset(event) {
123
111
  var _providedProps$inputE2;
124
-
125
112
  event.preventDefault();
126
113
  props.onReset(_objectSpread({
127
114
  event: event,
@@ -133,10 +120,8 @@ export function getPropGetters(_ref) {
133
120
  }
134
121
  }, rest);
135
122
  };
136
-
137
123
  var getInputProps = function getInputProps(providedProps) {
138
124
  var _props$environment$na;
139
-
140
125
  function onFocus(event) {
141
126
  // We want to trigger a query when `openOnFocus` is true
142
127
  // because the panel should open with the current query.
@@ -149,16 +134,13 @@ export function getPropGetters(_ref) {
149
134
  store: store
150
135
  }, setters));
151
136
  }
152
-
153
137
  store.dispatch('focus', null);
154
138
  }
155
-
156
139
  var _ref2 = providedProps || {},
157
- inputElement = _ref2.inputElement,
158
- _ref2$maxLength = _ref2.maxLength,
159
- maxLength = _ref2$maxLength === void 0 ? 512 : _ref2$maxLength,
160
- rest = _objectWithoutProperties(_ref2, _excluded4);
161
-
140
+ inputElement = _ref2.inputElement,
141
+ _ref2$maxLength = _ref2.maxLength,
142
+ maxLength = _ref2$maxLength === void 0 ? 512 : _ref2$maxLength,
143
+ rest = _objectWithoutProperties(_ref2, _excluded4);
162
144
  var activeItem = getActiveItem(store.getState());
163
145
  var userAgent = ((_props$environment$na = props.environment.navigator) === null || _props$environment$na === void 0 ? void 0 : _props$environment$na.userAgent) || '';
164
146
  var shouldFallbackKeyHint = isSamsung(userAgent);
@@ -215,34 +197,28 @@ export function getPropGetters(_ref) {
215
197
  }
216
198
  }, rest);
217
199
  };
218
-
219
200
  var getAutocompleteId = function getAutocompleteId(instanceId, sourceId) {
220
201
  return typeof sourceId !== 'undefined' ? "".concat(instanceId, "-").concat(sourceId) : instanceId;
221
202
  };
222
-
223
203
  var getLabelProps = function getLabelProps(providedProps) {
224
204
  var _ref3 = providedProps || {},
225
- sourceIndex = _ref3.sourceIndex,
226
- rest = _objectWithoutProperties(_ref3, _excluded5);
227
-
205
+ sourceIndex = _ref3.sourceIndex,
206
+ rest = _objectWithoutProperties(_ref3, _excluded5);
228
207
  return _objectSpread({
229
208
  htmlFor: "".concat(getAutocompleteId(props.id, sourceIndex), "-input"),
230
209
  id: "".concat(getAutocompleteId(props.id, sourceIndex), "-label")
231
210
  }, rest);
232
211
  };
233
-
234
212
  var getListProps = function getListProps(providedProps) {
235
213
  var _ref4 = providedProps || {},
236
- sourceIndex = _ref4.sourceIndex,
237
- rest = _objectWithoutProperties(_ref4, _excluded6);
238
-
214
+ sourceIndex = _ref4.sourceIndex,
215
+ rest = _objectWithoutProperties(_ref4, _excluded6);
239
216
  return _objectSpread({
240
217
  role: 'listbox',
241
218
  'aria-labelledby': "".concat(getAutocompleteId(props.id, sourceIndex), "-label"),
242
219
  id: "".concat(getAutocompleteId(props.id, sourceIndex), "-list")
243
220
  }, rest);
244
221
  };
245
-
246
222
  var getPanelProps = function getPanelProps(rest) {
247
223
  return _objectSpread({
248
224
  onMouseDown: function onMouseDown(event) {
@@ -256,13 +232,11 @@ export function getPropGetters(_ref) {
256
232
  }
257
233
  }, rest);
258
234
  };
259
-
260
235
  var getItemProps = function getItemProps(providedProps) {
261
236
  var item = providedProps.item,
262
- source = providedProps.source,
263
- sourceIndex = providedProps.sourceIndex,
264
- rest = _objectWithoutProperties(providedProps, _excluded7);
265
-
237
+ source = providedProps.source,
238
+ sourceIndex = providedProps.sourceIndex,
239
+ rest = _objectWithoutProperties(providedProps, _excluded7);
266
240
  return _objectSpread({
267
241
  id: "".concat(getAutocompleteId(props.id, sourceIndex), "-item-").concat(item.__autocomplete_id),
268
242
  role: 'option',
@@ -271,16 +245,13 @@ export function getPropGetters(_ref) {
271
245
  if (item.__autocomplete_id === store.getState().activeItemId) {
272
246
  return;
273
247
  }
274
-
275
248
  store.dispatch('mousemove', item.__autocomplete_id);
276
249
  var activeItem = getActiveItem(store.getState());
277
-
278
250
  if (store.getState().activeItemId !== null && activeItem) {
279
251
  var _item = activeItem.item,
280
- itemInputValue = activeItem.itemInputValue,
281
- itemUrl = activeItem.itemUrl,
282
- _source = activeItem.source;
283
-
252
+ itemInputValue = activeItem.itemInputValue,
253
+ itemUrl = activeItem.itemUrl,
254
+ _source = activeItem.source;
284
255
  _source.onActive(_objectSpread({
285
256
  event: event,
286
257
  item: _item,
@@ -305,12 +276,13 @@ export function getPropGetters(_ref) {
305
276
  var itemUrl = source.getItemUrl({
306
277
  item: item,
307
278
  state: store.getState()
308
- }); // If `getItemUrl` is provided, it means that the suggestion
279
+ });
280
+
281
+ // If `getItemUrl` is provided, it means that the suggestion
309
282
  // is a link, not plain text that aims at updating the query.
310
283
  // We can therefore skip the state change because it will update
311
284
  // the `activeItemId`, resulting in a UI flash, especially
312
285
  // noticeable on mobile.
313
-
314
286
  var runPreCommand = itemUrl ? Promise.resolve() : onInput(_objectSpread({
315
287
  event: event,
316
288
  nextState: {
@@ -335,7 +307,6 @@ export function getPropGetters(_ref) {
335
307
  }
336
308
  }, rest);
337
309
  };
338
-
339
310
  return {
340
311
  getEnvironmentProps: getEnvironmentProps,
341
312
  getRootProps: getRootProps,
@@ -1,15 +1,14 @@
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); }
1
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; }
2
-
3
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
-
5
- 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
-
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
7
7
  import { userAgents } from '@algolia/autocomplete-shared';
8
8
  export function getMetadata(_ref) {
9
9
  var _, _options$__autocomple, _options$__autocomple2, _options$__autocomple3;
10
-
11
10
  var plugins = _ref.plugins,
12
- options = _ref.options;
11
+ options = _ref.options;
13
12
  var optionsKey = (_ = (((_options$__autocomple = options.__autocomplete_metadata) === null || _options$__autocomple === void 0 ? void 0 : _options$__autocomple.userAgents) || [])[0]) === null || _ === void 0 ? void 0 : _.segment;
14
13
  var extraOptions = optionsKey ? _defineProperty({}, optionsKey, Object.keys(((_options$__autocomple2 = options.__autocomplete_metadata) === null || _options$__autocomple2 === void 0 ? void 0 : _options$__autocomple2.options) || {})) : {};
15
14
  return {
@@ -27,11 +26,9 @@ export function getMetadata(_ref) {
27
26
  }
28
27
  export function injectMetadata(_ref3) {
29
28
  var _environment$navigato, _environment$navigato2;
30
-
31
29
  var metadata = _ref3.metadata,
32
- environment = _ref3.environment;
30
+ environment = _ref3.environment;
33
31
  var isMetadataEnabled = (_environment$navigato = environment.navigator) === null || _environment$navigato === void 0 ? void 0 : (_environment$navigato2 = _environment$navigato.userAgent) === null || _environment$navigato2 === void 0 ? void 0 : _environment$navigato2.includes('Algolia Crawler');
34
-
35
32
  if (isMetadataEnabled) {
36
33
  var metadataContainer = environment.document.createElement('meta');
37
34
  var headRef = environment.document.querySelector('head');