@algolia/autocomplete-js 1.2.2 → 1.5.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 (35) hide show
  1. package/dist/esm/autocomplete.js +6 -1
  2. package/dist/esm/createAutocompleteDom.js +1 -1
  3. package/dist/esm/elements/Input.js +4 -2
  4. package/dist/esm/getCreateDomElement.js +4 -2
  5. package/dist/esm/getDefaultOptions.d.ts +1 -0
  6. package/dist/esm/getDefaultOptions.js +4 -2
  7. package/dist/esm/render.js +1 -1
  8. package/dist/esm/requesters/createAlgoliaRequester.js +3 -6
  9. package/dist/esm/requesters/getAlgoliaFacets.js +1 -1
  10. package/dist/esm/types/AutocompleteApi.js +1 -0
  11. package/dist/esm/types/AutocompleteClassNames.js +1 -0
  12. package/dist/esm/types/AutocompleteCollection.js +1 -0
  13. package/dist/esm/types/AutocompleteComponents.js +1 -0
  14. package/dist/esm/types/AutocompleteDom.js +1 -0
  15. package/dist/esm/types/AutocompleteElement.js +1 -0
  16. package/dist/esm/types/AutocompleteOptions.js +1 -0
  17. package/dist/esm/types/AutocompletePlugin.js +1 -0
  18. package/dist/esm/types/AutocompletePropGetters.js +1 -0
  19. package/dist/esm/types/AutocompleteRender.js +1 -0
  20. package/dist/esm/types/AutocompleteRenderer.js +1 -0
  21. package/dist/esm/types/AutocompleteSource.js +1 -0
  22. package/dist/esm/types/AutocompleteState.js +1 -0
  23. package/dist/esm/types/AutocompleteTranslations.js +1 -0
  24. package/dist/esm/types/HighlightHitParams.js +1 -0
  25. package/dist/esm/userAgents.d.ts +4 -0
  26. package/dist/esm/userAgents.js +5 -0
  27. package/dist/esm/utils/mergeDeep.js +4 -4
  28. package/dist/esm/utils/setProperties.js +27 -27
  29. package/dist/umd/index.development.js +883 -450
  30. package/dist/umd/index.development.js.map +1 -1
  31. package/dist/umd/index.production.js +2 -2
  32. package/dist/umd/index.production.js.map +1 -1
  33. package/package.json +4 -4
  34. package/dist/esm/version.d.ts +0 -1
  35. package/dist/esm/version.js +0 -1
@@ -1,10 +1,48 @@
1
- /*! @algolia/autocomplete-js 1.2.2 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
1
+ /*! @algolia/autocomplete-js 1.5.0 | 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) :
5
5
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global['@algolia/autocomplete-js'] = {}));
6
6
  }(this, (function (exports) { 'use strict';
7
7
 
8
+ function ownKeys(object, enumerableOnly) {
9
+ var keys = Object.keys(object);
10
+
11
+ if (Object.getOwnPropertySymbols) {
12
+ var symbols = Object.getOwnPropertySymbols(object);
13
+
14
+ if (enumerableOnly) {
15
+ symbols = symbols.filter(function (sym) {
16
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
17
+ });
18
+ }
19
+
20
+ keys.push.apply(keys, symbols);
21
+ }
22
+
23
+ return keys;
24
+ }
25
+
26
+ function _objectSpread2(target) {
27
+ for (var i = 1; i < arguments.length; i++) {
28
+ var source = arguments[i] != null ? arguments[i] : {};
29
+
30
+ if (i % 2) {
31
+ ownKeys(Object(source), true).forEach(function (key) {
32
+ _defineProperty(target, key, source[key]);
33
+ });
34
+ } else if (Object.getOwnPropertyDescriptors) {
35
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
36
+ } else {
37
+ ownKeys(Object(source)).forEach(function (key) {
38
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
39
+ });
40
+ }
41
+ }
42
+
43
+ return target;
44
+ }
45
+
8
46
  function _typeof(obj) {
9
47
  "@babel/helpers - typeof";
10
48
 
@@ -54,40 +92,6 @@
54
92
  return _extends.apply(this, arguments);
55
93
  }
56
94
 
57
- function ownKeys(object, enumerableOnly) {
58
- var keys = Object.keys(object);
59
-
60
- if (Object.getOwnPropertySymbols) {
61
- var symbols = Object.getOwnPropertySymbols(object);
62
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
63
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
64
- });
65
- keys.push.apply(keys, symbols);
66
- }
67
-
68
- return keys;
69
- }
70
-
71
- function _objectSpread2(target) {
72
- for (var i = 1; i < arguments.length; i++) {
73
- var source = arguments[i] != null ? arguments[i] : {};
74
-
75
- if (i % 2) {
76
- ownKeys(Object(source), true).forEach(function (key) {
77
- _defineProperty(target, key, source[key]);
78
- });
79
- } else if (Object.getOwnPropertyDescriptors) {
80
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
81
- } else {
82
- ownKeys(Object(source)).forEach(function (key) {
83
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
84
- });
85
- }
86
- }
87
-
88
- return target;
89
- }
90
-
91
95
  function _objectWithoutPropertiesLoose(source, excluded) {
92
96
  if (source == null) return {};
93
97
  var target = {};
@@ -133,7 +137,7 @@
133
137
  }
134
138
 
135
139
  function _iterableToArray(iter) {
136
- if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
140
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
137
141
  }
138
142
 
139
143
  function _unsupportedIterableToArray(o, minLen) {
@@ -180,6 +184,122 @@
180
184
  };
181
185
  }
182
186
 
187
+ function _slicedToArray(arr, i) {
188
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest();
189
+ }
190
+
191
+ function _nonIterableRest() {
192
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
193
+ }
194
+
195
+ function _unsupportedIterableToArray$1(o, minLen) {
196
+ if (!o) return;
197
+ if (typeof o === "string") return _arrayLikeToArray$1(o, minLen);
198
+ var n = Object.prototype.toString.call(o).slice(8, -1);
199
+ if (n === "Object" && o.constructor) n = o.constructor.name;
200
+ if (n === "Map" || n === "Set") return Array.from(o);
201
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen);
202
+ }
203
+
204
+ function _arrayLikeToArray$1(arr, len) {
205
+ if (len == null || len > arr.length) len = arr.length;
206
+
207
+ for (var i = 0, arr2 = new Array(len); i < len; i++) {
208
+ arr2[i] = arr[i];
209
+ }
210
+
211
+ return arr2;
212
+ }
213
+
214
+ function _iterableToArrayLimit(arr, i) {
215
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
216
+
217
+ if (_i == null) return;
218
+ var _arr = [];
219
+ var _n = true;
220
+ var _d = false;
221
+
222
+ var _s, _e;
223
+
224
+ try {
225
+ for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
226
+ _arr.push(_s.value);
227
+
228
+ if (i && _arr.length === i) break;
229
+ }
230
+ } catch (err) {
231
+ _d = true;
232
+ _e = err;
233
+ } finally {
234
+ try {
235
+ if (!_n && _i["return"] != null) _i["return"]();
236
+ } finally {
237
+ if (_d) throw _e;
238
+ }
239
+ }
240
+
241
+ return _arr;
242
+ }
243
+
244
+ function _arrayWithHoles(arr) {
245
+ if (Array.isArray(arr)) return arr;
246
+ }
247
+
248
+ function _typeof$1(obj) {
249
+ "@babel/helpers - typeof";
250
+
251
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
252
+ _typeof$1 = function _typeof(obj) {
253
+ return typeof obj;
254
+ };
255
+ } else {
256
+ _typeof$1 = function _typeof(obj) {
257
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
258
+ };
259
+ }
260
+
261
+ return _typeof$1(obj);
262
+ }
263
+ /**
264
+ * Decycles objects with circular references.
265
+ * This is used to print cyclic structures in development environment only.
266
+ */
267
+
268
+
269
+ function decycle(obj) {
270
+ var seen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();
271
+
272
+ if ( !obj || _typeof$1(obj) !== 'object') {
273
+ return obj;
274
+ }
275
+
276
+ if (seen.has(obj)) {
277
+ return '[Circular]';
278
+ }
279
+
280
+ var newSeen = seen.add(obj);
281
+
282
+ if (Array.isArray(obj)) {
283
+ return obj.map(function (x) {
284
+ return decycle(x, newSeen);
285
+ });
286
+ }
287
+
288
+ return Object.fromEntries(Object.entries(obj).map(function (_ref) {
289
+ var _ref2 = _slicedToArray(_ref, 2),
290
+ key = _ref2[0],
291
+ value = _ref2[1];
292
+
293
+ return [key, decycle(value, newSeen)];
294
+ }));
295
+ }
296
+
297
+ function flatten(values) {
298
+ return values.reduce(function (a, b) {
299
+ return a.concat(b);
300
+ }, []);
301
+ }
302
+
183
303
  var autocompleteId = 0;
184
304
  function generateAutocompleteId() {
185
305
  return "autocomplete-".concat(autocompleteId++);
@@ -209,10 +329,19 @@
209
329
  function invariant(condition, message) {
210
330
 
211
331
  if (!condition) {
212
- throw new Error("[Autocomplete] ".concat(message));
332
+ throw new Error("[Autocomplete] ".concat(typeof message === 'function' ? message() : message));
213
333
  }
214
334
  }
215
335
 
336
+ var noop = function noop() {};
337
+
338
+ var version = '1.5.0';
339
+
340
+ var userAgents = [{
341
+ segment: 'autocomplete-core',
342
+ version: version
343
+ }];
344
+
216
345
  var warnCache = {
217
346
  current: {}
218
347
  };
@@ -246,9 +375,13 @@
246
375
 
247
376
  if (Object.getOwnPropertySymbols) {
248
377
  var symbols = Object.getOwnPropertySymbols(object);
249
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
250
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
251
- });
378
+
379
+ if (enumerableOnly) {
380
+ symbols = symbols.filter(function (sym) {
381
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
382
+ });
383
+ }
384
+
252
385
  keys.push.apply(keys, symbols);
253
386
  }
254
387
 
@@ -312,10 +445,143 @@
312
445
  };
313
446
  }
314
447
 
315
- function flatten(values) {
316
- return values.reduce(function (a, b) {
317
- return a.concat(b);
318
- }, []);
448
+ function ownKeys$2(object, enumerableOnly) {
449
+ var keys = Object.keys(object);
450
+
451
+ if (Object.getOwnPropertySymbols) {
452
+ var symbols = Object.getOwnPropertySymbols(object);
453
+
454
+ if (enumerableOnly) {
455
+ symbols = symbols.filter(function (sym) {
456
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
457
+ });
458
+ }
459
+
460
+ keys.push.apply(keys, symbols);
461
+ }
462
+
463
+ return keys;
464
+ }
465
+
466
+ function _objectSpread$1(target) {
467
+ for (var i = 1; i < arguments.length; i++) {
468
+ var source = arguments[i] != null ? arguments[i] : {};
469
+
470
+ if (i % 2) {
471
+ ownKeys$2(Object(source), true).forEach(function (key) {
472
+ _defineProperty$2(target, key, source[key]);
473
+ });
474
+ } else if (Object.getOwnPropertyDescriptors) {
475
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
476
+ } else {
477
+ ownKeys$2(Object(source)).forEach(function (key) {
478
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
479
+ });
480
+ }
481
+ }
482
+
483
+ return target;
484
+ }
485
+
486
+ function _defineProperty$2(obj, key, value) {
487
+ if (key in obj) {
488
+ Object.defineProperty(obj, key, {
489
+ value: value,
490
+ enumerable: true,
491
+ configurable: true,
492
+ writable: true
493
+ });
494
+ } else {
495
+ obj[key] = value;
496
+ }
497
+
498
+ return obj;
499
+ }
500
+ function getAutocompleteSetters(_ref) {
501
+ var store = _ref.store;
502
+
503
+ var setActiveItemId = function setActiveItemId(value) {
504
+ store.dispatch('setActiveItemId', value);
505
+ };
506
+
507
+ var setQuery = function setQuery(value) {
508
+ store.dispatch('setQuery', value);
509
+ };
510
+
511
+ var setCollections = function setCollections(rawValue) {
512
+ var baseItemId = 0;
513
+ var value = rawValue.map(function (collection) {
514
+ return _objectSpread$1(_objectSpread$1({}, collection), {}, {
515
+ // We flatten the stored items to support calling `getAlgoliaResults`
516
+ // from the source itself.
517
+ items: flatten(collection.items).map(function (item) {
518
+ return _objectSpread$1(_objectSpread$1({}, item), {}, {
519
+ __autocomplete_id: baseItemId++
520
+ });
521
+ })
522
+ });
523
+ });
524
+ store.dispatch('setCollections', value);
525
+ };
526
+
527
+ var setIsOpen = function setIsOpen(value) {
528
+ store.dispatch('setIsOpen', value);
529
+ };
530
+
531
+ var setStatus = function setStatus(value) {
532
+ store.dispatch('setStatus', value);
533
+ };
534
+
535
+ var setContext = function setContext(value) {
536
+ store.dispatch('setContext', value);
537
+ };
538
+
539
+ return {
540
+ setActiveItemId: setActiveItemId,
541
+ setQuery: setQuery,
542
+ setCollections: setCollections,
543
+ setIsOpen: setIsOpen,
544
+ setStatus: setStatus,
545
+ setContext: setContext
546
+ };
547
+ }
548
+
549
+ /**
550
+ * Creates a runner that executes promises in a concurrent-safe way.
551
+ *
552
+ * This is useful to prevent older promises to resolve after a newer promise,
553
+ * otherwise resulting in stale resolved values.
554
+ */
555
+ function createConcurrentSafePromise() {
556
+ var basePromiseId = -1;
557
+ var latestResolvedId = -1;
558
+ var latestResolvedValue = undefined;
559
+ return function runConcurrentSafePromise(promise) {
560
+ basePromiseId++;
561
+ var currentPromiseId = basePromiseId;
562
+ return Promise.resolve(promise).then(function (x) {
563
+ // The promise might take too long to resolve and get outdated. This would
564
+ // result in resolving stale values.
565
+ // When this happens, we ignore the promise value and return the one
566
+ // coming from the latest resolved value.
567
+ //
568
+ // +----------------------------------+
569
+ // | 100ms |
570
+ // | run(1) +---> R1 |
571
+ // | 300ms |
572
+ // | run(2) +-------------> R2 (SKIP) |
573
+ // | 200ms |
574
+ // | run(3) +--------> R3 |
575
+ // +----------------------------------+
576
+ if (latestResolvedValue && currentPromiseId < latestResolvedId) {
577
+ return latestResolvedValue;
578
+ }
579
+
580
+ latestResolvedId = currentPromiseId;
581
+ latestResolvedValue = x;
582
+ return x;
583
+ });
584
+ };
319
585
  }
320
586
 
321
587
  /**
@@ -352,34 +618,36 @@
352
618
  return numericIndex;
353
619
  }
354
620
 
355
- var noop = function noop() {};
356
-
357
- function ownKeys$2(object, enumerableOnly) {
621
+ function ownKeys$3(object, enumerableOnly) {
358
622
  var keys = Object.keys(object);
359
623
 
360
624
  if (Object.getOwnPropertySymbols) {
361
625
  var symbols = Object.getOwnPropertySymbols(object);
362
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
363
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
364
- });
626
+
627
+ if (enumerableOnly) {
628
+ symbols = symbols.filter(function (sym) {
629
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
630
+ });
631
+ }
632
+
365
633
  keys.push.apply(keys, symbols);
366
634
  }
367
635
 
368
636
  return keys;
369
637
  }
370
638
 
371
- function _objectSpread$1(target) {
639
+ function _objectSpread$2(target) {
372
640
  for (var i = 1; i < arguments.length; i++) {
373
641
  var source = arguments[i] != null ? arguments[i] : {};
374
642
 
375
643
  if (i % 2) {
376
- ownKeys$2(Object(source), true).forEach(function (key) {
377
- _defineProperty$2(target, key, source[key]);
644
+ ownKeys$3(Object(source), true).forEach(function (key) {
645
+ _defineProperty$3(target, key, source[key]);
378
646
  });
379
647
  } else if (Object.getOwnPropertyDescriptors) {
380
648
  Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
381
649
  } else {
382
- ownKeys$2(Object(source)).forEach(function (key) {
650
+ ownKeys$3(Object(source)).forEach(function (key) {
383
651
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
384
652
  });
385
653
  }
@@ -388,7 +656,7 @@
388
656
  return target;
389
657
  }
390
658
 
391
- function _defineProperty$2(obj, key, value) {
659
+ function _defineProperty$3(obj, key, value) {
392
660
  if (key in obj) {
393
661
  Object.defineProperty(obj, key, {
394
662
  value: value,
@@ -403,25 +671,27 @@
403
671
  return obj;
404
672
  }
405
673
 
406
- function _typeof$1(obj) {
674
+ function _typeof$2(obj) {
407
675
  "@babel/helpers - typeof";
408
676
 
409
677
  if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
410
- _typeof$1 = function _typeof(obj) {
678
+ _typeof$2 = function _typeof(obj) {
411
679
  return typeof obj;
412
680
  };
413
681
  } else {
414
- _typeof$1 = function _typeof(obj) {
682
+ _typeof$2 = function _typeof(obj) {
415
683
  return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
416
684
  };
417
685
  }
418
686
 
419
- return _typeof$1(obj);
687
+ return _typeof$2(obj);
420
688
  }
421
689
  function getNormalizedSources(getSources, params) {
422
690
  var seenSourceIds = [];
423
691
  return Promise.resolve(getSources(params)).then(function (sources) {
424
- invariant(Array.isArray(sources), "The `getSources` function must return an array of sources but returned type ".concat(JSON.stringify(_typeof$1(sources)), ":\n\n").concat(JSON.stringify(sources, null, 2)));
692
+ invariant(Array.isArray(sources), function () {
693
+ return "The `getSources` function must return an array of sources but returned type ".concat(JSON.stringify(_typeof$2(sources)), ":\n\n").concat(JSON.stringify(decycle(sources), null, 2));
694
+ });
425
695
  return Promise.all(sources // We allow `undefined` and `false` sources to allow users to use
426
696
  // `Boolean(query) && source` (=> `false`).
427
697
  // We need to remove these values at this point.
@@ -436,7 +706,7 @@
436
706
 
437
707
  seenSourceIds.push(source.sourceId);
438
708
 
439
- var normalizedSource = _objectSpread$1({
709
+ var normalizedSource = _objectSpread$2({
440
710
  getItemInputValue: function getItemInputValue(_ref) {
441
711
  var state = _ref.state;
442
712
  return state.query;
@@ -546,32 +816,36 @@
546
816
  return parent === child || parent.contains(child);
547
817
  }
548
818
 
549
- function ownKeys$3(object, enumerableOnly) {
819
+ function ownKeys$4(object, enumerableOnly) {
550
820
  var keys = Object.keys(object);
551
821
 
552
822
  if (Object.getOwnPropertySymbols) {
553
823
  var symbols = Object.getOwnPropertySymbols(object);
554
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
555
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
556
- });
824
+
825
+ if (enumerableOnly) {
826
+ symbols = symbols.filter(function (sym) {
827
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
828
+ });
829
+ }
830
+
557
831
  keys.push.apply(keys, symbols);
558
832
  }
559
833
 
560
834
  return keys;
561
835
  }
562
836
 
563
- function _objectSpread$2(target) {
837
+ function _objectSpread$3(target) {
564
838
  for (var i = 1; i < arguments.length; i++) {
565
839
  var source = arguments[i] != null ? arguments[i] : {};
566
840
 
567
841
  if (i % 2) {
568
- ownKeys$3(Object(source), true).forEach(function (key) {
569
- _defineProperty$3(target, key, source[key]);
842
+ ownKeys$4(Object(source), true).forEach(function (key) {
843
+ _defineProperty$4(target, key, source[key]);
570
844
  });
571
845
  } else if (Object.getOwnPropertyDescriptors) {
572
846
  Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
573
847
  } else {
574
- ownKeys$3(Object(source)).forEach(function (key) {
848
+ ownKeys$4(Object(source)).forEach(function (key) {
575
849
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
576
850
  });
577
851
  }
@@ -580,7 +854,7 @@
580
854
  return target;
581
855
  }
582
856
 
583
- function _defineProperty$3(obj, key, value) {
857
+ function _defineProperty$4(obj, key, value) {
584
858
  if (key in obj) {
585
859
  Object.defineProperty(obj, key, {
586
860
  value: value,
@@ -599,10 +873,10 @@
599
873
  var results = rawResults.map(function (result) {
600
874
  var _hits;
601
875
 
602
- return _objectSpread$2(_objectSpread$2({}, result), {}, {
876
+ return _objectSpread$3(_objectSpread$3({}, result), {}, {
603
877
  hits: (_hits = result.hits) === null || _hits === void 0 ? void 0 : _hits.map(function (hit) {
604
878
  // Bring support for the Insights plugin.
605
- return _objectSpread$2(_objectSpread$2({}, hit), {}, {
879
+ return _objectSpread$3(_objectSpread$3({}, hit), {}, {
606
880
  __autocomplete_indexName: result.index,
607
881
  __autocomplete_queryID: result.queryID
608
882
  });
@@ -633,129 +907,32 @@
633
907
  };
634
908
  }
635
909
 
636
- function ownKeys$4(object, enumerableOnly) {
637
- var keys = Object.keys(object);
638
-
639
- if (Object.getOwnPropertySymbols) {
640
- var symbols = Object.getOwnPropertySymbols(object);
641
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
642
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
643
- });
644
- keys.push.apply(keys, symbols);
645
- }
646
-
647
- return keys;
648
- }
649
-
650
- function _objectSpread$3(target) {
651
- for (var i = 1; i < arguments.length; i++) {
652
- var source = arguments[i] != null ? arguments[i] : {};
653
-
654
- if (i % 2) {
655
- ownKeys$4(Object(source), true).forEach(function (key) {
656
- _defineProperty$4(target, key, source[key]);
657
- });
658
- } else if (Object.getOwnPropertyDescriptors) {
659
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
660
- } else {
661
- ownKeys$4(Object(source)).forEach(function (key) {
662
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
663
- });
664
- }
665
- }
666
-
667
- return target;
668
- }
669
-
670
- function _defineProperty$4(obj, key, value) {
671
- if (key in obj) {
672
- Object.defineProperty(obj, key, {
673
- value: value,
674
- enumerable: true,
675
- configurable: true,
676
- writable: true
677
- });
678
- } else {
679
- obj[key] = value;
680
- }
681
-
682
- return obj;
683
- }
684
- function getAutocompleteSetters(_ref) {
685
- var store = _ref.store;
686
-
687
- var setActiveItemId = function setActiveItemId(value) {
688
- store.dispatch('setActiveItemId', value);
689
- };
690
-
691
- var setQuery = function setQuery(value) {
692
- store.dispatch('setQuery', value);
693
- };
694
-
695
- var setCollections = function setCollections(rawValue) {
696
- var baseItemId = 0;
697
- var value = rawValue.map(function (collection) {
698
- return _objectSpread$3(_objectSpread$3({}, collection), {}, {
699
- // We flatten the stored items to support calling `getAlgoliaResults`
700
- // from the source itself.
701
- items: flatten(collection.items).map(function (item) {
702
- return _objectSpread$3(_objectSpread$3({}, item), {}, {
703
- __autocomplete_id: baseItemId++
704
- });
705
- })
706
- });
707
- });
708
- store.dispatch('setCollections', value);
709
- };
710
-
711
- var setIsOpen = function setIsOpen(value) {
712
- store.dispatch('setIsOpen', value);
713
- };
714
-
715
- var setStatus = function setStatus(value) {
716
- store.dispatch('setStatus', value);
717
- };
718
-
719
- var setContext = function setContext(value) {
720
- store.dispatch('setContext', value);
721
- };
722
-
723
- return {
724
- setActiveItemId: setActiveItemId,
725
- setQuery: setQuery,
726
- setCollections: setCollections,
727
- setIsOpen: setIsOpen,
728
- setStatus: setStatus,
729
- setContext: setContext
730
- };
731
- }
732
-
733
910
  function _toConsumableArray$1(arr) {
734
- return _arrayWithoutHoles$1(arr) || _iterableToArray$1(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread$1();
911
+ return _arrayWithoutHoles$1(arr) || _iterableToArray$1(arr) || _unsupportedIterableToArray$2(arr) || _nonIterableSpread$1();
735
912
  }
736
913
 
737
914
  function _nonIterableSpread$1() {
738
915
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
739
916
  }
740
917
 
741
- function _unsupportedIterableToArray$1(o, minLen) {
918
+ function _unsupportedIterableToArray$2(o, minLen) {
742
919
  if (!o) return;
743
- if (typeof o === "string") return _arrayLikeToArray$1(o, minLen);
920
+ if (typeof o === "string") return _arrayLikeToArray$2(o, minLen);
744
921
  var n = Object.prototype.toString.call(o).slice(8, -1);
745
922
  if (n === "Object" && o.constructor) n = o.constructor.name;
746
923
  if (n === "Map" || n === "Set") return Array.from(o);
747
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen);
924
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$2(o, minLen);
748
925
  }
749
926
 
750
927
  function _iterableToArray$1(iter) {
751
- if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
928
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
752
929
  }
753
930
 
754
931
  function _arrayWithoutHoles$1(arr) {
755
- if (Array.isArray(arr)) return _arrayLikeToArray$1(arr);
932
+ if (Array.isArray(arr)) return _arrayLikeToArray$2(arr);
756
933
  }
757
934
 
758
- function _arrayLikeToArray$1(arr, len) {
935
+ function _arrayLikeToArray$2(arr, len) {
759
936
  if (len == null || len > arr.length) len = arr.length;
760
937
 
761
938
  for (var i = 0, arr2 = new Array(len); i < len; i++) {
@@ -770,9 +947,13 @@
770
947
 
771
948
  if (Object.getOwnPropertySymbols) {
772
949
  var symbols = Object.getOwnPropertySymbols(object);
773
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
774
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
775
- });
950
+
951
+ if (enumerableOnly) {
952
+ symbols = symbols.filter(function (sym) {
953
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
954
+ });
955
+ }
956
+
776
957
  keys.push.apply(keys, symbols);
777
958
  }
778
959
 
@@ -833,6 +1014,10 @@
833
1014
  shouldPanelOpen: function shouldPanelOpen(_ref) {
834
1015
  var state = _ref.state;
835
1016
  return getItemsCount(state) > 0;
1017
+ },
1018
+ reshape: function reshape(_ref2) {
1019
+ var sources = _ref2.sources;
1020
+ return sources;
836
1021
  }
837
1022
  }, props), {}, {
838
1023
  // Since `generateAutocompleteId` triggers a side effect (it increments
@@ -910,65 +1095,145 @@
910
1095
  });
911
1096
  },
912
1097
  navigator: _objectSpread$4({
913
- navigate: function navigate(_ref2) {
914
- var itemUrl = _ref2.itemUrl;
1098
+ navigate: function navigate(_ref3) {
1099
+ var itemUrl = _ref3.itemUrl;
915
1100
  environment.location.assign(itemUrl);
916
1101
  },
917
- navigateNewTab: function navigateNewTab(_ref3) {
918
- var itemUrl = _ref3.itemUrl;
1102
+ navigateNewTab: function navigateNewTab(_ref4) {
1103
+ var itemUrl = _ref4.itemUrl;
919
1104
  var windowReference = environment.open(itemUrl, '_blank', 'noopener');
920
1105
  windowReference === null || windowReference === void 0 ? void 0 : windowReference.focus();
921
1106
  },
922
- navigateNewWindow: function navigateNewWindow(_ref4) {
923
- var itemUrl = _ref4.itemUrl;
1107
+ navigateNewWindow: function navigateNewWindow(_ref5) {
1108
+ var itemUrl = _ref5.itemUrl;
924
1109
  environment.open(itemUrl, '_blank', 'noopener');
925
1110
  }
926
1111
  }, props.navigator)
927
1112
  });
928
1113
  }
929
1114
 
930
- function _typeof$2(obj) {
1115
+ function ownKeys$6(object, enumerableOnly) {
1116
+ var keys = Object.keys(object);
1117
+
1118
+ if (Object.getOwnPropertySymbols) {
1119
+ var symbols = Object.getOwnPropertySymbols(object);
1120
+
1121
+ if (enumerableOnly) {
1122
+ symbols = symbols.filter(function (sym) {
1123
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
1124
+ });
1125
+ }
1126
+
1127
+ keys.push.apply(keys, symbols);
1128
+ }
1129
+
1130
+ return keys;
1131
+ }
1132
+
1133
+ function _objectSpread$5(target) {
1134
+ for (var i = 1; i < arguments.length; i++) {
1135
+ var source = arguments[i] != null ? arguments[i] : {};
1136
+
1137
+ if (i % 2) {
1138
+ ownKeys$6(Object(source), true).forEach(function (key) {
1139
+ _defineProperty$6(target, key, source[key]);
1140
+ });
1141
+ } else if (Object.getOwnPropertyDescriptors) {
1142
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
1143
+ } else {
1144
+ ownKeys$6(Object(source)).forEach(function (key) {
1145
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
1146
+ });
1147
+ }
1148
+ }
1149
+
1150
+ return target;
1151
+ }
1152
+
1153
+ function _defineProperty$6(obj, key, value) {
1154
+ if (key in obj) {
1155
+ Object.defineProperty(obj, key, {
1156
+ value: value,
1157
+ enumerable: true,
1158
+ configurable: true,
1159
+ writable: true
1160
+ });
1161
+ } else {
1162
+ obj[key] = value;
1163
+ }
1164
+
1165
+ return obj;
1166
+ }
1167
+ function reshape(_ref) {
1168
+ var collections = _ref.collections,
1169
+ props = _ref.props,
1170
+ state = _ref.state; // Sources are grouped by `sourceId` to conveniently pick them via destructuring.
1171
+ // Example: `const { recentSearchesPlugin } = sourcesBySourceId`
1172
+
1173
+ var sourcesBySourceId = collections.reduce(function (acc, collection) {
1174
+ return _objectSpread$5(_objectSpread$5({}, acc), {}, _defineProperty$6({}, collection.source.sourceId, _objectSpread$5(_objectSpread$5({}, collection.source), {}, {
1175
+ getItems: function getItems() {
1176
+ // We provide the resolved items from the collection to the `reshape` prop.
1177
+ return flatten(collection.items);
1178
+ }
1179
+ })));
1180
+ }, {});
1181
+ var reshapeSources = props.reshape({
1182
+ sources: Object.values(sourcesBySourceId),
1183
+ sourcesBySourceId: sourcesBySourceId,
1184
+ state: state
1185
+ }); // We reconstruct the collections with the items modified by the `reshape` prop.
1186
+
1187
+ return flatten(reshapeSources).filter(Boolean).map(function (source) {
1188
+ return {
1189
+ source: source,
1190
+ items: source.getItems()
1191
+ };
1192
+ });
1193
+ }
1194
+
1195
+ function _typeof$3(obj) {
931
1196
  "@babel/helpers - typeof";
932
1197
 
933
1198
  if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
934
- _typeof$2 = function _typeof(obj) {
1199
+ _typeof$3 = function _typeof(obj) {
935
1200
  return typeof obj;
936
1201
  };
937
1202
  } else {
938
- _typeof$2 = function _typeof(obj) {
1203
+ _typeof$3 = function _typeof(obj) {
939
1204
  return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
940
1205
  };
941
1206
  }
942
1207
 
943
- return _typeof$2(obj);
1208
+ return _typeof$3(obj);
944
1209
  }
945
1210
 
946
1211
  function _toConsumableArray$2(arr) {
947
- return _arrayWithoutHoles$2(arr) || _iterableToArray$2(arr) || _unsupportedIterableToArray$2(arr) || _nonIterableSpread$2();
1212
+ return _arrayWithoutHoles$2(arr) || _iterableToArray$2(arr) || _unsupportedIterableToArray$3(arr) || _nonIterableSpread$2();
948
1213
  }
949
1214
 
950
1215
  function _nonIterableSpread$2() {
951
1216
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
952
1217
  }
953
1218
 
954
- function _unsupportedIterableToArray$2(o, minLen) {
1219
+ function _unsupportedIterableToArray$3(o, minLen) {
955
1220
  if (!o) return;
956
- if (typeof o === "string") return _arrayLikeToArray$2(o, minLen);
1221
+ if (typeof o === "string") return _arrayLikeToArray$3(o, minLen);
957
1222
  var n = Object.prototype.toString.call(o).slice(8, -1);
958
1223
  if (n === "Object" && o.constructor) n = o.constructor.name;
959
1224
  if (n === "Map" || n === "Set") return Array.from(o);
960
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$2(o, minLen);
1225
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$3(o, minLen);
961
1226
  }
962
1227
 
963
1228
  function _iterableToArray$2(iter) {
964
- if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
1229
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
965
1230
  }
966
1231
 
967
1232
  function _arrayWithoutHoles$2(arr) {
968
- if (Array.isArray(arr)) return _arrayLikeToArray$2(arr);
1233
+ if (Array.isArray(arr)) return _arrayLikeToArray$3(arr);
969
1234
  }
970
1235
 
971
- function _arrayLikeToArray$2(arr, len) {
1236
+ function _arrayLikeToArray$3(arr, len) {
972
1237
  if (len == null || len > arr.length) len = arr.length;
973
1238
 
974
1239
  for (var i = 0, arr2 = new Array(len); i < len; i++) {
@@ -978,32 +1243,36 @@
978
1243
  return arr2;
979
1244
  }
980
1245
 
981
- function ownKeys$6(object, enumerableOnly) {
1246
+ function ownKeys$7(object, enumerableOnly) {
982
1247
  var keys = Object.keys(object);
983
1248
 
984
1249
  if (Object.getOwnPropertySymbols) {
985
1250
  var symbols = Object.getOwnPropertySymbols(object);
986
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
987
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
988
- });
1251
+
1252
+ if (enumerableOnly) {
1253
+ symbols = symbols.filter(function (sym) {
1254
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
1255
+ });
1256
+ }
1257
+
989
1258
  keys.push.apply(keys, symbols);
990
1259
  }
991
1260
 
992
1261
  return keys;
993
1262
  }
994
1263
 
995
- function _objectSpread$5(target) {
1264
+ function _objectSpread$6(target) {
996
1265
  for (var i = 1; i < arguments.length; i++) {
997
1266
  var source = arguments[i] != null ? arguments[i] : {};
998
1267
 
999
1268
  if (i % 2) {
1000
- ownKeys$6(Object(source), true).forEach(function (key) {
1001
- _defineProperty$6(target, key, source[key]);
1269
+ ownKeys$7(Object(source), true).forEach(function (key) {
1270
+ _defineProperty$7(target, key, source[key]);
1002
1271
  });
1003
1272
  } else if (Object.getOwnPropertyDescriptors) {
1004
1273
  Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
1005
1274
  } else {
1006
- ownKeys$6(Object(source)).forEach(function (key) {
1275
+ ownKeys$7(Object(source)).forEach(function (key) {
1007
1276
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
1008
1277
  });
1009
1278
  }
@@ -1012,7 +1281,7 @@
1012
1281
  return target;
1013
1282
  }
1014
1283
 
1015
- function _defineProperty$6(obj, key, value) {
1284
+ function _defineProperty$7(obj, key, value) {
1016
1285
  if (key in obj) {
1017
1286
  Object.defineProperty(obj, key, {
1018
1287
  value: value,
@@ -1037,7 +1306,7 @@
1037
1306
 
1038
1307
  function preResolve(itemsOrDescription, sourceId) {
1039
1308
  if (isRequesterDescription(itemsOrDescription)) {
1040
- return _objectSpread$5(_objectSpread$5({}, itemsOrDescription), {}, {
1309
+ return _objectSpread$6(_objectSpread$6({}, itemsOrDescription), {}, {
1041
1310
  requests: itemsOrDescription.queries.map(function (query) {
1042
1311
  return {
1043
1312
  query: query,
@@ -1111,7 +1380,9 @@
1111
1380
  });
1112
1381
  var transform = matches[0].transformResponse;
1113
1382
  var items = transform ? transform(mapToAlgoliaResponse(results)) : results;
1114
- invariant(Array.isArray(items), "The `getItems` function from source \"".concat(source.sourceId, "\" must return an array of items but returned type ").concat(JSON.stringify(_typeof$2(items)), ":\n\n").concat(JSON.stringify(items, null, 2), ".\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems"));
1383
+ invariant(Array.isArray(items), function () {
1384
+ return "The `getItems` function from source \"".concat(source.sourceId, "\" must return an array of items but returned type ").concat(JSON.stringify(_typeof$3(items)), ":\n\n").concat(JSON.stringify(decycle(items), null, 2), ".\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems");
1385
+ });
1115
1386
  invariant(items.every(Boolean), "The `getItems` function from source \"".concat(source.sourceId, "\" must return an array of items but returned ").concat(JSON.stringify(undefined), ".\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems"));
1116
1387
  return {
1117
1388
  source: source,
@@ -1120,32 +1391,38 @@
1120
1391
  });
1121
1392
  }
1122
1393
 
1123
- function ownKeys$7(object, enumerableOnly) {
1394
+ var _excluded = ["event", "nextState", "props", "query", "refresh", "store"];
1395
+
1396
+ function ownKeys$8(object, enumerableOnly) {
1124
1397
  var keys = Object.keys(object);
1125
1398
 
1126
1399
  if (Object.getOwnPropertySymbols) {
1127
1400
  var symbols = Object.getOwnPropertySymbols(object);
1128
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
1129
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
1130
- });
1401
+
1402
+ if (enumerableOnly) {
1403
+ symbols = symbols.filter(function (sym) {
1404
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
1405
+ });
1406
+ }
1407
+
1131
1408
  keys.push.apply(keys, symbols);
1132
1409
  }
1133
1410
 
1134
1411
  return keys;
1135
1412
  }
1136
1413
 
1137
- function _objectSpread$6(target) {
1414
+ function _objectSpread$7(target) {
1138
1415
  for (var i = 1; i < arguments.length; i++) {
1139
1416
  var source = arguments[i] != null ? arguments[i] : {};
1140
1417
 
1141
1418
  if (i % 2) {
1142
- ownKeys$7(Object(source), true).forEach(function (key) {
1143
- _defineProperty$7(target, key, source[key]);
1419
+ ownKeys$8(Object(source), true).forEach(function (key) {
1420
+ _defineProperty$8(target, key, source[key]);
1144
1421
  });
1145
1422
  } else if (Object.getOwnPropertyDescriptors) {
1146
1423
  Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
1147
1424
  } else {
1148
- ownKeys$7(Object(source)).forEach(function (key) {
1425
+ ownKeys$8(Object(source)).forEach(function (key) {
1149
1426
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
1150
1427
  });
1151
1428
  }
@@ -1154,7 +1431,7 @@
1154
1431
  return target;
1155
1432
  }
1156
1433
 
1157
- function _defineProperty$7(obj, key, value) {
1434
+ function _defineProperty$8(obj, key, value) {
1158
1435
  if (key in obj) {
1159
1436
  Object.defineProperty(obj, key, {
1160
1437
  value: value,
@@ -1205,6 +1482,7 @@
1205
1482
  return target;
1206
1483
  }
1207
1484
  var lastStalledId = null;
1485
+ var runConcurrentSafePromise = createConcurrentSafePromise();
1208
1486
  function onInput(_ref) {
1209
1487
  var event = _ref.event,
1210
1488
  _ref$nextState = _ref.nextState,
@@ -1213,7 +1491,7 @@
1213
1491
  query = _ref.query,
1214
1492
  refresh = _ref.refresh,
1215
1493
  store = _ref.store,
1216
- setters = _objectWithoutProperties$1(_ref, ["event", "nextState", "props", "query", "refresh", "store"]);
1494
+ setters = _objectWithoutProperties$1(_ref, _excluded);
1217
1495
 
1218
1496
  if (lastStalledId) {
1219
1497
  props.environment.clearTimeout(lastStalledId);
@@ -1230,30 +1508,42 @@
1230
1508
  if (!query && props.openOnFocus === false) {
1231
1509
  var _nextState$isOpen;
1232
1510
 
1233
- setStatus('idle');
1234
- setCollections(store.getState().collections.map(function (collection) {
1235
- return _objectSpread$6(_objectSpread$6({}, collection), {}, {
1511
+ var collections = store.getState().collections.map(function (collection) {
1512
+ return _objectSpread$7(_objectSpread$7({}, collection), {}, {
1236
1513
  items: []
1237
1514
  });
1238
- }));
1515
+ });
1516
+ setStatus('idle');
1517
+ setCollections(collections);
1239
1518
  setIsOpen((_nextState$isOpen = nextState.isOpen) !== null && _nextState$isOpen !== void 0 ? _nextState$isOpen : props.shouldPanelOpen({
1240
1519
  state: store.getState()
1241
- }));
1242
- return Promise.resolve();
1520
+ })); // We make sure to update the latest resolved value of the tracked
1521
+ // promises to keep late resolving promises from "cancelling" the state
1522
+ // updates performed in this code path.
1523
+ // We chain with a void promise to respect `onInput`'s expected return type.
1524
+
1525
+ return runConcurrentSafePromise(collections).then(function () {
1526
+ return Promise.resolve();
1527
+ });
1243
1528
  }
1244
1529
 
1245
1530
  setStatus('loading');
1246
1531
  lastStalledId = props.environment.setTimeout(function () {
1247
1532
  setStatus('stalled');
1248
- }, props.stallThreshold);
1249
- return props.getSources(_objectSpread$6({
1533
+ }, props.stallThreshold); // We track the entire promise chain triggered by `onInput` before mutating
1534
+ // the Autocomplete state to make sure that any state manipulation is based on
1535
+ // fresh data regardless of when promises individually resolve.
1536
+ // We don't track nested promises and only rely on the full chain resolution,
1537
+ // meaning we should only ever manipulate the state once this concurrent-safe
1538
+ // promise is resolved.
1539
+
1540
+ return runConcurrentSafePromise(props.getSources(_objectSpread$7({
1250
1541
  query: query,
1251
1542
  refresh: refresh,
1252
1543
  state: store.getState()
1253
1544
  }, setters)).then(function (sources) {
1254
- setStatus('loading');
1255
1545
  return Promise.all(sources.map(function (source) {
1256
- return Promise.resolve(source.getItems(_objectSpread$6({
1546
+ return Promise.resolve(source.getItems(_objectSpread$7({
1257
1547
  query: query,
1258
1548
  refresh: refresh,
1259
1549
  state: store.getState()
@@ -1263,65 +1553,77 @@
1263
1553
  })).then(resolve).then(function (responses) {
1264
1554
  return postResolve(responses, sources);
1265
1555
  }).then(function (collections) {
1266
- var _nextState$isOpen2;
1267
-
1268
- setStatus('idle');
1269
- setCollections(collections);
1270
- var isPanelOpen = props.shouldPanelOpen({
1556
+ return reshape({
1557
+ collections: collections,
1558
+ props: props,
1271
1559
  state: store.getState()
1272
1560
  });
1273
- setIsOpen((_nextState$isOpen2 = nextState.isOpen) !== null && _nextState$isOpen2 !== void 0 ? _nextState$isOpen2 : props.openOnFocus && !query && isPanelOpen || isPanelOpen);
1274
- var highlightedItem = getActiveItem(store.getState());
1561
+ });
1562
+ })).then(function (collections) {
1563
+ var _nextState$isOpen2;
1275
1564
 
1276
- if (store.getState().activeItemId !== null && highlightedItem) {
1277
- var item = highlightedItem.item,
1278
- itemInputValue = highlightedItem.itemInputValue,
1279
- itemUrl = highlightedItem.itemUrl,
1280
- source = highlightedItem.source;
1281
- source.onActive(_objectSpread$6({
1282
- event: event,
1283
- item: item,
1284
- itemInputValue: itemInputValue,
1285
- itemUrl: itemUrl,
1286
- refresh: refresh,
1287
- source: source,
1288
- state: store.getState()
1289
- }, setters));
1290
- }
1291
- }).finally(function () {
1292
- if (lastStalledId) {
1293
- props.environment.clearTimeout(lastStalledId);
1294
- }
1565
+ setStatus('idle');
1566
+ setCollections(collections);
1567
+ var isPanelOpen = props.shouldPanelOpen({
1568
+ state: store.getState()
1295
1569
  });
1570
+ setIsOpen((_nextState$isOpen2 = nextState.isOpen) !== null && _nextState$isOpen2 !== void 0 ? _nextState$isOpen2 : props.openOnFocus && !query && isPanelOpen || isPanelOpen);
1571
+ var highlightedItem = getActiveItem(store.getState());
1572
+
1573
+ if (store.getState().activeItemId !== null && highlightedItem) {
1574
+ var item = highlightedItem.item,
1575
+ itemInputValue = highlightedItem.itemInputValue,
1576
+ itemUrl = highlightedItem.itemUrl,
1577
+ source = highlightedItem.source;
1578
+ source.onActive(_objectSpread$7({
1579
+ event: event,
1580
+ item: item,
1581
+ itemInputValue: itemInputValue,
1582
+ itemUrl: itemUrl,
1583
+ refresh: refresh,
1584
+ source: source,
1585
+ state: store.getState()
1586
+ }, setters));
1587
+ }
1588
+ }).finally(function () {
1589
+ if (lastStalledId) {
1590
+ props.environment.clearTimeout(lastStalledId);
1591
+ }
1296
1592
  });
1297
1593
  }
1298
1594
 
1299
- function ownKeys$8(object, enumerableOnly) {
1595
+ var _excluded$1 = ["event", "props", "refresh", "store"];
1596
+
1597
+ function ownKeys$9(object, enumerableOnly) {
1300
1598
  var keys = Object.keys(object);
1301
1599
 
1302
1600
  if (Object.getOwnPropertySymbols) {
1303
1601
  var symbols = Object.getOwnPropertySymbols(object);
1304
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
1305
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
1306
- });
1602
+
1603
+ if (enumerableOnly) {
1604
+ symbols = symbols.filter(function (sym) {
1605
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
1606
+ });
1607
+ }
1608
+
1307
1609
  keys.push.apply(keys, symbols);
1308
1610
  }
1309
1611
 
1310
1612
  return keys;
1311
1613
  }
1312
1614
 
1313
- function _objectSpread$7(target) {
1615
+ function _objectSpread$8(target) {
1314
1616
  for (var i = 1; i < arguments.length; i++) {
1315
1617
  var source = arguments[i] != null ? arguments[i] : {};
1316
1618
 
1317
1619
  if (i % 2) {
1318
- ownKeys$8(Object(source), true).forEach(function (key) {
1319
- _defineProperty$8(target, key, source[key]);
1620
+ ownKeys$9(Object(source), true).forEach(function (key) {
1621
+ _defineProperty$9(target, key, source[key]);
1320
1622
  });
1321
1623
  } else if (Object.getOwnPropertyDescriptors) {
1322
1624
  Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
1323
1625
  } else {
1324
- ownKeys$8(Object(source)).forEach(function (key) {
1626
+ ownKeys$9(Object(source)).forEach(function (key) {
1325
1627
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
1326
1628
  });
1327
1629
  }
@@ -1330,7 +1632,7 @@
1330
1632
  return target;
1331
1633
  }
1332
1634
 
1333
- function _defineProperty$8(obj, key, value) {
1635
+ function _defineProperty$9(obj, key, value) {
1334
1636
  if (key in obj) {
1335
1637
  Object.defineProperty(obj, key, {
1336
1638
  value: value,
@@ -1385,7 +1687,7 @@
1385
1687
  props = _ref.props,
1386
1688
  refresh = _ref.refresh,
1387
1689
  store = _ref.store,
1388
- setters = _objectWithoutProperties$2(_ref, ["event", "props", "refresh", "store"]);
1690
+ setters = _objectWithoutProperties$2(_ref, _excluded$1);
1389
1691
 
1390
1692
  if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {
1391
1693
  // eslint-disable-next-line no-inner-declarations
@@ -1410,7 +1712,7 @@
1410
1712
  itemInputValue = highlightedItem.itemInputValue,
1411
1713
  itemUrl = highlightedItem.itemUrl,
1412
1714
  source = highlightedItem.source;
1413
- source.onActive(_objectSpread$7({
1715
+ source.onActive(_objectSpread$8({
1414
1716
  event: event,
1415
1717
  item: item,
1416
1718
  itemInputValue: itemInputValue,
@@ -1428,7 +1730,7 @@
1428
1730
  // synchronized as `onInput` returns a promise.
1429
1731
 
1430
1732
  if (store.getState().isOpen === false && (props.openOnFocus || Boolean(store.getState().query))) {
1431
- onInput(_objectSpread$7({
1733
+ onInput(_objectSpread$8({
1432
1734
  event: event,
1433
1735
  props: props,
1434
1736
  query: store.getState().query,
@@ -1476,7 +1778,7 @@
1476
1778
 
1477
1779
  if (event.metaKey || event.ctrlKey) {
1478
1780
  if (itemUrl !== undefined) {
1479
- source.onSelect(_objectSpread$7({
1781
+ source.onSelect(_objectSpread$8({
1480
1782
  event: event,
1481
1783
  item: item,
1482
1784
  itemInputValue: itemInputValue,
@@ -1493,7 +1795,7 @@
1493
1795
  }
1494
1796
  } else if (event.shiftKey) {
1495
1797
  if (itemUrl !== undefined) {
1496
- source.onSelect(_objectSpread$7({
1798
+ source.onSelect(_objectSpread$8({
1497
1799
  event: event,
1498
1800
  item: item,
1499
1801
  itemInputValue: itemInputValue,
@@ -1510,7 +1812,7 @@
1510
1812
  }
1511
1813
  } else if (event.altKey) ; else {
1512
1814
  if (itemUrl !== undefined) {
1513
- source.onSelect(_objectSpread$7({
1815
+ source.onSelect(_objectSpread$8({
1514
1816
  event: event,
1515
1817
  item: item,
1516
1818
  itemInputValue: itemInputValue,
@@ -1527,7 +1829,7 @@
1527
1829
  return;
1528
1830
  }
1529
1831
 
1530
- onInput(_objectSpread$7({
1832
+ onInput(_objectSpread$8({
1531
1833
  event: event,
1532
1834
  nextState: {
1533
1835
  isOpen: false
@@ -1537,7 +1839,7 @@
1537
1839
  refresh: refresh,
1538
1840
  store: store
1539
1841
  }, setters)).then(function () {
1540
- source.onSelect(_objectSpread$7({
1842
+ source.onSelect(_objectSpread$8({
1541
1843
  event: event,
1542
1844
  item: item,
1543
1845
  itemInputValue: itemInputValue,
@@ -1551,32 +1853,42 @@
1551
1853
  }
1552
1854
  }
1553
1855
 
1554
- function ownKeys$9(object, enumerableOnly) {
1856
+ var _excluded$2 = ["props", "refresh", "store"],
1857
+ _excluded2 = ["inputElement", "formElement", "panelElement"],
1858
+ _excluded3 = ["inputElement"],
1859
+ _excluded4 = ["inputElement", "maxLength"],
1860
+ _excluded5 = ["item", "source"];
1861
+
1862
+ function ownKeys$a(object, enumerableOnly) {
1555
1863
  var keys = Object.keys(object);
1556
1864
 
1557
1865
  if (Object.getOwnPropertySymbols) {
1558
1866
  var symbols = Object.getOwnPropertySymbols(object);
1559
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
1560
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
1561
- });
1867
+
1868
+ if (enumerableOnly) {
1869
+ symbols = symbols.filter(function (sym) {
1870
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
1871
+ });
1872
+ }
1873
+
1562
1874
  keys.push.apply(keys, symbols);
1563
1875
  }
1564
1876
 
1565
1877
  return keys;
1566
1878
  }
1567
1879
 
1568
- function _objectSpread$8(target) {
1880
+ function _objectSpread$9(target) {
1569
1881
  for (var i = 1; i < arguments.length; i++) {
1570
1882
  var source = arguments[i] != null ? arguments[i] : {};
1571
1883
 
1572
1884
  if (i % 2) {
1573
- ownKeys$9(Object(source), true).forEach(function (key) {
1574
- _defineProperty$9(target, key, source[key]);
1885
+ ownKeys$a(Object(source), true).forEach(function (key) {
1886
+ _defineProperty$a(target, key, source[key]);
1575
1887
  });
1576
1888
  } else if (Object.getOwnPropertyDescriptors) {
1577
1889
  Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
1578
1890
  } else {
1579
- ownKeys$9(Object(source)).forEach(function (key) {
1891
+ ownKeys$a(Object(source)).forEach(function (key) {
1580
1892
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
1581
1893
  });
1582
1894
  }
@@ -1585,7 +1897,7 @@
1585
1897
  return target;
1586
1898
  }
1587
1899
 
1588
- function _defineProperty$9(obj, key, value) {
1900
+ function _defineProperty$a(obj, key, value) {
1589
1901
  if (key in obj) {
1590
1902
  Object.defineProperty(obj, key, {
1591
1903
  value: value,
@@ -1639,29 +1951,29 @@
1639
1951
  var props = _ref.props,
1640
1952
  refresh = _ref.refresh,
1641
1953
  store = _ref.store,
1642
- setters = _objectWithoutProperties$3(_ref, ["props", "refresh", "store"]);
1954
+ setters = _objectWithoutProperties$3(_ref, _excluded$2);
1643
1955
 
1644
1956
  var getEnvironmentProps = function getEnvironmentProps(providedProps) {
1645
1957
  var inputElement = providedProps.inputElement,
1646
1958
  formElement = providedProps.formElement,
1647
1959
  panelElement = providedProps.panelElement,
1648
- rest = _objectWithoutProperties$3(providedProps, ["inputElement", "formElement", "panelElement"]);
1960
+ rest = _objectWithoutProperties$3(providedProps, _excluded2);
1649
1961
 
1650
- return _objectSpread$8({
1962
+ return _objectSpread$9({
1651
1963
  // On touch devices, we do not rely on the native `blur` event of the
1652
1964
  // input to close the panel, but rather on a custom `touchstart` event
1653
1965
  // outside of the autocomplete elements.
1654
1966
  // This ensures a working experience on mobile because we blur the input
1655
1967
  // on touch devices when the user starts scrolling (`touchmove`).
1968
+ // @TODO: support cases where there are multiple Autocomplete instances.
1969
+ // Right now, a second instance makes this computation return false.
1656
1970
  onTouchStart: function onTouchStart(event) {
1657
1971
  if (store.getState().isOpen === false || event.target === inputElement) {
1658
1972
  return;
1659
- } // @TODO: support cases where there are multiple Autocomplete instances.
1660
- // Right now, a second instance makes this computation return false.
1661
-
1973
+ }
1662
1974
 
1663
1975
  var isTargetWithinAutocomplete = [formElement, panelElement].some(function (contextNode) {
1664
- return isOrContainsNode(contextNode, event.target) || isOrContainsNode(contextNode, props.environment.document.activeElement);
1976
+ return isOrContainsNode(contextNode, event.target);
1665
1977
  });
1666
1978
 
1667
1979
  if (isTargetWithinAutocomplete === false) {
@@ -1683,7 +1995,7 @@
1683
1995
  };
1684
1996
 
1685
1997
  var getRootProps = function getRootProps(rest) {
1686
- return _objectSpread$8({
1998
+ return _objectSpread$9({
1687
1999
  role: 'combobox',
1688
2000
  'aria-expanded': store.getState().isOpen,
1689
2001
  'aria-haspopup': 'listbox',
@@ -1694,9 +2006,9 @@
1694
2006
 
1695
2007
  var getFormProps = function getFormProps(providedProps) {
1696
2008
  var inputElement = providedProps.inputElement,
1697
- rest = _objectWithoutProperties$3(providedProps, ["inputElement"]);
2009
+ rest = _objectWithoutProperties$3(providedProps, _excluded3);
1698
2010
 
1699
- return _objectSpread$8({
2011
+ return _objectSpread$9({
1700
2012
  action: '',
1701
2013
  noValidate: true,
1702
2014
  role: 'search',
@@ -1704,7 +2016,7 @@
1704
2016
  var _providedProps$inputE;
1705
2017
 
1706
2018
  event.preventDefault();
1707
- props.onSubmit(_objectSpread$8({
2019
+ props.onSubmit(_objectSpread$9({
1708
2020
  event: event,
1709
2021
  refresh: refresh,
1710
2022
  state: store.getState()
@@ -1716,7 +2028,7 @@
1716
2028
  var _providedProps$inputE2;
1717
2029
 
1718
2030
  event.preventDefault();
1719
- props.onReset(_objectSpread$8({
2031
+ props.onReset(_objectSpread$9({
1720
2032
  event: event,
1721
2033
  refresh: refresh,
1722
2034
  state: store.getState()
@@ -1732,7 +2044,7 @@
1732
2044
  // We want to trigger a query when `openOnFocus` is true
1733
2045
  // because the panel should open with the current query.
1734
2046
  if (props.openOnFocus || Boolean(store.getState().query)) {
1735
- onInput(_objectSpread$8({
2047
+ onInput(_objectSpread$9({
1736
2048
  event: event,
1737
2049
  props: props,
1738
2050
  query: store.getState().completion || store.getState().query,
@@ -1750,10 +2062,10 @@
1750
2062
  inputElement = _ref2.inputElement,
1751
2063
  _ref2$maxLength = _ref2.maxLength,
1752
2064
  maxLength = _ref2$maxLength === void 0 ? 512 : _ref2$maxLength,
1753
- rest = _objectWithoutProperties$3(_ref2, ["inputElement", "maxLength"]);
2065
+ rest = _objectWithoutProperties$3(_ref2, _excluded4);
1754
2066
 
1755
2067
  var activeItem = getActiveItem(store.getState());
1756
- return _objectSpread$8({
2068
+ return _objectSpread$9({
1757
2069
  'aria-autocomplete': 'both',
1758
2070
  'aria-activedescendant': store.getState().isOpen && store.getState().activeItemId !== null ? "".concat(props.id, "-item-").concat(store.getState().activeItemId) : undefined,
1759
2071
  'aria-controls': store.getState().isOpen ? "".concat(props.id, "-list") : undefined,
@@ -1770,7 +2082,7 @@
1770
2082
  maxLength: maxLength,
1771
2083
  type: 'search',
1772
2084
  onChange: function onChange(event) {
1773
- onInput(_objectSpread$8({
2085
+ onInput(_objectSpread$9({
1774
2086
  event: event,
1775
2087
  props: props,
1776
2088
  query: event.currentTarget.value.slice(0, maxLength),
@@ -1779,7 +2091,7 @@
1779
2091
  }, setters));
1780
2092
  },
1781
2093
  onKeyDown: function onKeyDown$1(event) {
1782
- onKeyDown(_objectSpread$8({
2094
+ onKeyDown(_objectSpread$9({
1783
2095
  event: event,
1784
2096
  props: props,
1785
2097
  refresh: refresh,
@@ -1810,14 +2122,14 @@
1810
2122
  };
1811
2123
 
1812
2124
  var getLabelProps = function getLabelProps(rest) {
1813
- return _objectSpread$8({
2125
+ return _objectSpread$9({
1814
2126
  htmlFor: "".concat(props.id, "-input"),
1815
2127
  id: "".concat(props.id, "-label")
1816
2128
  }, rest);
1817
2129
  };
1818
2130
 
1819
2131
  var getListProps = function getListProps(rest) {
1820
- return _objectSpread$8({
2132
+ return _objectSpread$9({
1821
2133
  role: 'listbox',
1822
2134
  'aria-labelledby': "".concat(props.id, "-label"),
1823
2135
  id: "".concat(props.id, "-list")
@@ -1825,7 +2137,7 @@
1825
2137
  };
1826
2138
 
1827
2139
  var getPanelProps = function getPanelProps(rest) {
1828
- return _objectSpread$8({
2140
+ return _objectSpread$9({
1829
2141
  onMouseDown: function onMouseDown(event) {
1830
2142
  // Prevents the `activeElement` from being changed to the panel so
1831
2143
  // that the blur event is not triggered, otherwise it closes the
@@ -1841,9 +2153,9 @@
1841
2153
  var getItemProps = function getItemProps(providedProps) {
1842
2154
  var item = providedProps.item,
1843
2155
  source = providedProps.source,
1844
- rest = _objectWithoutProperties$3(providedProps, ["item", "source"]);
2156
+ rest = _objectWithoutProperties$3(providedProps, _excluded5);
1845
2157
 
1846
- return _objectSpread$8({
2158
+ return _objectSpread$9({
1847
2159
  id: "".concat(props.id, "-item-").concat(item.__autocomplete_id),
1848
2160
  role: 'option',
1849
2161
  'aria-selected': store.getState().activeItemId === item.__autocomplete_id,
@@ -1861,7 +2173,7 @@
1861
2173
  itemUrl = activeItem.itemUrl,
1862
2174
  _source = activeItem.source;
1863
2175
 
1864
- _source.onActive(_objectSpread$8({
2176
+ _source.onActive(_objectSpread$9({
1865
2177
  event: event,
1866
2178
  item: _item,
1867
2179
  itemInputValue: itemInputValue,
@@ -1891,7 +2203,7 @@
1891
2203
  // the `activeItemId`, resulting in a UI flash, especially
1892
2204
  // noticeable on mobile.
1893
2205
 
1894
- var runPreCommand = itemUrl ? Promise.resolve() : onInput(_objectSpread$8({
2206
+ var runPreCommand = itemUrl ? Promise.resolve() : onInput(_objectSpread$9({
1895
2207
  event: event,
1896
2208
  nextState: {
1897
2209
  isOpen: false
@@ -1902,7 +2214,7 @@
1902
2214
  store: store
1903
2215
  }, setters));
1904
2216
  runPreCommand.then(function () {
1905
- source.onSelect(_objectSpread$8({
2217
+ source.onSelect(_objectSpread$9({
1906
2218
  event: event,
1907
2219
  item: item,
1908
2220
  itemInputValue: itemInputValue,
@@ -1928,6 +2240,96 @@
1928
2240
  };
1929
2241
  }
1930
2242
 
2243
+ function ownKeys$b(object, enumerableOnly) {
2244
+ var keys = Object.keys(object);
2245
+
2246
+ if (Object.getOwnPropertySymbols) {
2247
+ var symbols = Object.getOwnPropertySymbols(object);
2248
+
2249
+ if (enumerableOnly) {
2250
+ symbols = symbols.filter(function (sym) {
2251
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
2252
+ });
2253
+ }
2254
+
2255
+ keys.push.apply(keys, symbols);
2256
+ }
2257
+
2258
+ return keys;
2259
+ }
2260
+
2261
+ function _objectSpread$a(target) {
2262
+ for (var i = 1; i < arguments.length; i++) {
2263
+ var source = arguments[i] != null ? arguments[i] : {};
2264
+
2265
+ if (i % 2) {
2266
+ ownKeys$b(Object(source), true).forEach(function (key) {
2267
+ _defineProperty$b(target, key, source[key]);
2268
+ });
2269
+ } else if (Object.getOwnPropertyDescriptors) {
2270
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
2271
+ } else {
2272
+ ownKeys$b(Object(source)).forEach(function (key) {
2273
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
2274
+ });
2275
+ }
2276
+ }
2277
+
2278
+ return target;
2279
+ }
2280
+
2281
+ function _defineProperty$b(obj, key, value) {
2282
+ if (key in obj) {
2283
+ Object.defineProperty(obj, key, {
2284
+ value: value,
2285
+ enumerable: true,
2286
+ configurable: true,
2287
+ writable: true
2288
+ });
2289
+ } else {
2290
+ obj[key] = value;
2291
+ }
2292
+
2293
+ return obj;
2294
+ }
2295
+ function getMetadata(_ref) {
2296
+ var _, _options$__autocomple, _options$__autocomple2, _options$__autocomple3;
2297
+
2298
+ var plugins = _ref.plugins,
2299
+ options = _ref.options;
2300
+ var optionsKey = (_ = (((_options$__autocomple = options.__autocomplete_metadata) === null || _options$__autocomple === void 0 ? void 0 : _options$__autocomple.userAgents) || [])[0]) === null || _ === void 0 ? void 0 : _.segment;
2301
+ var extraOptions = optionsKey ? _defineProperty$b({}, optionsKey, Object.keys(((_options$__autocomple2 = options.__autocomplete_metadata) === null || _options$__autocomple2 === void 0 ? void 0 : _options$__autocomple2.options) || {})) : {};
2302
+ return {
2303
+ plugins: plugins.map(function (plugin) {
2304
+ return {
2305
+ name: plugin.name,
2306
+ options: Object.keys(plugin.__autocomplete_pluginOptions || [])
2307
+ };
2308
+ }),
2309
+ options: _objectSpread$a({
2310
+ 'autocomplete-core': Object.keys(options)
2311
+ }, extraOptions),
2312
+ ua: userAgents.concat(((_options$__autocomple3 = options.__autocomplete_metadata) === null || _options$__autocomple3 === void 0 ? void 0 : _options$__autocomple3.userAgents) || [])
2313
+ };
2314
+ }
2315
+ function injectMetadata(_ref3) {
2316
+ var _environment$navigato;
2317
+
2318
+ var metadata = _ref3.metadata,
2319
+ environment = _ref3.environment;
2320
+ var isMetadataEnabled = (_environment$navigato = environment.navigator) === null || _environment$navigato === void 0 ? void 0 : _environment$navigato.userAgent.includes('Algolia Crawler');
2321
+
2322
+ if (isMetadataEnabled) {
2323
+ var metadataContainer = environment.document.createElement('meta');
2324
+ var headRef = environment.document.querySelector('head');
2325
+ metadataContainer.name = 'algolia:metadata';
2326
+ setTimeout(function () {
2327
+ metadataContainer.content = JSON.stringify(metadata);
2328
+ headRef.appendChild(metadataContainer);
2329
+ }, 0);
2330
+ }
2331
+ }
2332
+
1931
2333
  function getCompletion(_ref) {
1932
2334
  var _getActiveItem;
1933
2335
 
@@ -1940,32 +2342,36 @@
1940
2342
  return ((_getActiveItem = getActiveItem(state)) === null || _getActiveItem === void 0 ? void 0 : _getActiveItem.itemInputValue) || null;
1941
2343
  }
1942
2344
 
1943
- function ownKeys$a(object, enumerableOnly) {
2345
+ function ownKeys$c(object, enumerableOnly) {
1944
2346
  var keys = Object.keys(object);
1945
2347
 
1946
2348
  if (Object.getOwnPropertySymbols) {
1947
2349
  var symbols = Object.getOwnPropertySymbols(object);
1948
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
1949
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
1950
- });
2350
+
2351
+ if (enumerableOnly) {
2352
+ symbols = symbols.filter(function (sym) {
2353
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
2354
+ });
2355
+ }
2356
+
1951
2357
  keys.push.apply(keys, symbols);
1952
2358
  }
1953
2359
 
1954
2360
  return keys;
1955
2361
  }
1956
2362
 
1957
- function _objectSpread$9(target) {
2363
+ function _objectSpread$b(target) {
1958
2364
  for (var i = 1; i < arguments.length; i++) {
1959
2365
  var source = arguments[i] != null ? arguments[i] : {};
1960
2366
 
1961
2367
  if (i % 2) {
1962
- ownKeys$a(Object(source), true).forEach(function (key) {
1963
- _defineProperty$a(target, key, source[key]);
2368
+ ownKeys$c(Object(source), true).forEach(function (key) {
2369
+ _defineProperty$c(target, key, source[key]);
1964
2370
  });
1965
2371
  } else if (Object.getOwnPropertyDescriptors) {
1966
2372
  Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
1967
2373
  } else {
1968
- ownKeys$a(Object(source)).forEach(function (key) {
2374
+ ownKeys$c(Object(source)).forEach(function (key) {
1969
2375
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
1970
2376
  });
1971
2377
  }
@@ -1974,7 +2380,7 @@
1974
2380
  return target;
1975
2381
  }
1976
2382
 
1977
- function _defineProperty$a(obj, key, value) {
2383
+ function _defineProperty$c(obj, key, value) {
1978
2384
  if (key in obj) {
1979
2385
  Object.defineProperty(obj, key, {
1980
2386
  value: value,
@@ -1992,14 +2398,14 @@
1992
2398
  switch (action.type) {
1993
2399
  case 'setActiveItemId':
1994
2400
  {
1995
- return _objectSpread$9(_objectSpread$9({}, state), {}, {
2401
+ return _objectSpread$b(_objectSpread$b({}, state), {}, {
1996
2402
  activeItemId: action.payload
1997
2403
  });
1998
2404
  }
1999
2405
 
2000
2406
  case 'setQuery':
2001
2407
  {
2002
- return _objectSpread$9(_objectSpread$9({}, state), {}, {
2408
+ return _objectSpread$b(_objectSpread$b({}, state), {}, {
2003
2409
  query: action.payload,
2004
2410
  completion: null
2005
2411
  });
@@ -2007,39 +2413,39 @@
2007
2413
 
2008
2414
  case 'setCollections':
2009
2415
  {
2010
- return _objectSpread$9(_objectSpread$9({}, state), {}, {
2416
+ return _objectSpread$b(_objectSpread$b({}, state), {}, {
2011
2417
  collections: action.payload
2012
2418
  });
2013
2419
  }
2014
2420
 
2015
2421
  case 'setIsOpen':
2016
2422
  {
2017
- return _objectSpread$9(_objectSpread$9({}, state), {}, {
2423
+ return _objectSpread$b(_objectSpread$b({}, state), {}, {
2018
2424
  isOpen: action.payload
2019
2425
  });
2020
2426
  }
2021
2427
 
2022
2428
  case 'setStatus':
2023
2429
  {
2024
- return _objectSpread$9(_objectSpread$9({}, state), {}, {
2430
+ return _objectSpread$b(_objectSpread$b({}, state), {}, {
2025
2431
  status: action.payload
2026
2432
  });
2027
2433
  }
2028
2434
 
2029
2435
  case 'setContext':
2030
2436
  {
2031
- return _objectSpread$9(_objectSpread$9({}, state), {}, {
2032
- context: _objectSpread$9(_objectSpread$9({}, state.context), action.payload)
2437
+ return _objectSpread$b(_objectSpread$b({}, state), {}, {
2438
+ context: _objectSpread$b(_objectSpread$b({}, state.context), action.payload)
2033
2439
  });
2034
2440
  }
2035
2441
 
2036
2442
  case 'ArrowDown':
2037
2443
  {
2038
- var nextState = _objectSpread$9(_objectSpread$9({}, state), {}, {
2444
+ var nextState = _objectSpread$b(_objectSpread$b({}, state), {}, {
2039
2445
  activeItemId: action.payload.hasOwnProperty('nextActiveItemId') ? action.payload.nextActiveItemId : getNextActiveItemId(1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)
2040
2446
  });
2041
2447
 
2042
- return _objectSpread$9(_objectSpread$9({}, nextState), {}, {
2448
+ return _objectSpread$b(_objectSpread$b({}, nextState), {}, {
2043
2449
  completion: getCompletion({
2044
2450
  state: nextState
2045
2451
  })
@@ -2048,11 +2454,11 @@
2048
2454
 
2049
2455
  case 'ArrowUp':
2050
2456
  {
2051
- var _nextState = _objectSpread$9(_objectSpread$9({}, state), {}, {
2457
+ var _nextState = _objectSpread$b(_objectSpread$b({}, state), {}, {
2052
2458
  activeItemId: getNextActiveItemId(-1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)
2053
2459
  });
2054
2460
 
2055
- return _objectSpread$9(_objectSpread$9({}, _nextState), {}, {
2461
+ return _objectSpread$b(_objectSpread$b({}, _nextState), {}, {
2056
2462
  completion: getCompletion({
2057
2463
  state: _nextState
2058
2464
  })
@@ -2062,14 +2468,14 @@
2062
2468
  case 'Escape':
2063
2469
  {
2064
2470
  if (state.isOpen) {
2065
- return _objectSpread$9(_objectSpread$9({}, state), {}, {
2471
+ return _objectSpread$b(_objectSpread$b({}, state), {}, {
2066
2472
  activeItemId: null,
2067
2473
  isOpen: false,
2068
2474
  completion: null
2069
2475
  });
2070
2476
  }
2071
2477
 
2072
- return _objectSpread$9(_objectSpread$9({}, state), {}, {
2478
+ return _objectSpread$b(_objectSpread$b({}, state), {}, {
2073
2479
  activeItemId: null,
2074
2480
  query: '',
2075
2481
  status: 'idle',
@@ -2079,7 +2485,7 @@
2079
2485
 
2080
2486
  case 'submit':
2081
2487
  {
2082
- return _objectSpread$9(_objectSpread$9({}, state), {}, {
2488
+ return _objectSpread$b(_objectSpread$b({}, state), {}, {
2083
2489
  activeItemId: null,
2084
2490
  isOpen: false,
2085
2491
  status: 'idle'
@@ -2088,7 +2494,7 @@
2088
2494
 
2089
2495
  case 'reset':
2090
2496
  {
2091
- return _objectSpread$9(_objectSpread$9({}, state), {}, {
2497
+ return _objectSpread$b(_objectSpread$b({}, state), {}, {
2092
2498
  activeItemId: // Since we open the panel on reset when openOnFocus=true
2093
2499
  // we need to restore the highlighted index to the defaultActiveItemId. (DocSearch use-case)
2094
2500
  // Since we close the panel when openOnFocus=false
@@ -2101,7 +2507,7 @@
2101
2507
 
2102
2508
  case 'focus':
2103
2509
  {
2104
- return _objectSpread$9(_objectSpread$9({}, state), {}, {
2510
+ return _objectSpread$b(_objectSpread$b({}, state), {}, {
2105
2511
  activeItemId: action.props.defaultActiveItemId,
2106
2512
  isOpen: (action.props.openOnFocus || Boolean(state.query)) && action.props.shouldPanelOpen({
2107
2513
  state: state
@@ -2115,7 +2521,7 @@
2115
2521
  return state;
2116
2522
  }
2117
2523
 
2118
- return _objectSpread$9(_objectSpread$9({}, state), {}, {
2524
+ return _objectSpread$b(_objectSpread$b({}, state), {}, {
2119
2525
  isOpen: false,
2120
2526
  activeItemId: null
2121
2527
  });
@@ -2123,14 +2529,14 @@
2123
2529
 
2124
2530
  case 'mousemove':
2125
2531
  {
2126
- return _objectSpread$9(_objectSpread$9({}, state), {}, {
2532
+ return _objectSpread$b(_objectSpread$b({}, state), {}, {
2127
2533
  activeItemId: action.payload
2128
2534
  });
2129
2535
  }
2130
2536
 
2131
2537
  case 'mouseleave':
2132
2538
  {
2133
- return _objectSpread$9(_objectSpread$9({}, state), {}, {
2539
+ return _objectSpread$b(_objectSpread$b({}, state), {}, {
2134
2540
  activeItemId: action.props.defaultActiveItemId
2135
2541
  });
2136
2542
  }
@@ -2141,32 +2547,36 @@
2141
2547
  }
2142
2548
  };
2143
2549
 
2144
- function ownKeys$b(object, enumerableOnly) {
2550
+ function ownKeys$d(object, enumerableOnly) {
2145
2551
  var keys = Object.keys(object);
2146
2552
 
2147
2553
  if (Object.getOwnPropertySymbols) {
2148
2554
  var symbols = Object.getOwnPropertySymbols(object);
2149
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
2150
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
2151
- });
2555
+
2556
+ if (enumerableOnly) {
2557
+ symbols = symbols.filter(function (sym) {
2558
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
2559
+ });
2560
+ }
2561
+
2152
2562
  keys.push.apply(keys, symbols);
2153
2563
  }
2154
2564
 
2155
2565
  return keys;
2156
2566
  }
2157
2567
 
2158
- function _objectSpread$a(target) {
2568
+ function _objectSpread$c(target) {
2159
2569
  for (var i = 1; i < arguments.length; i++) {
2160
2570
  var source = arguments[i] != null ? arguments[i] : {};
2161
2571
 
2162
2572
  if (i % 2) {
2163
- ownKeys$b(Object(source), true).forEach(function (key) {
2164
- _defineProperty$b(target, key, source[key]);
2573
+ ownKeys$d(Object(source), true).forEach(function (key) {
2574
+ _defineProperty$d(target, key, source[key]);
2165
2575
  });
2166
2576
  } else if (Object.getOwnPropertyDescriptors) {
2167
2577
  Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
2168
2578
  } else {
2169
- ownKeys$b(Object(source)).forEach(function (key) {
2579
+ ownKeys$d(Object(source)).forEach(function (key) {
2170
2580
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
2171
2581
  });
2172
2582
  }
@@ -2175,7 +2585,7 @@
2175
2585
  return target;
2176
2586
  }
2177
2587
 
2178
- function _defineProperty$b(obj, key, value) {
2588
+ function _defineProperty$d(obj, key, value) {
2179
2589
  if (key in obj) {
2180
2590
  Object.defineProperty(obj, key, {
2181
2591
  value: value,
@@ -2197,7 +2607,7 @@
2197
2607
  var setters = getAutocompleteSetters({
2198
2608
  store: store
2199
2609
  });
2200
- var propGetters = getPropGetters(_objectSpread$a({
2610
+ var propGetters = getPropGetters(_objectSpread$c({
2201
2611
  props: props,
2202
2612
  refresh: refresh,
2203
2613
  store: store
@@ -2206,7 +2616,7 @@
2206
2616
  function onStoreStateChange(_ref) {
2207
2617
  var prevState = _ref.prevState,
2208
2618
  state = _ref.state;
2209
- props.onStateChange(_objectSpread$a({
2619
+ props.onStateChange(_objectSpread$c({
2210
2620
  prevState: prevState,
2211
2621
  state: state,
2212
2622
  refresh: refresh
@@ -2214,7 +2624,7 @@
2214
2624
  }
2215
2625
 
2216
2626
  function refresh() {
2217
- return onInput(_objectSpread$a({
2627
+ return onInput(_objectSpread$c({
2218
2628
  event: new Event('input'),
2219
2629
  nextState: {
2220
2630
  isOpen: store.getState().isOpen
@@ -2229,7 +2639,7 @@
2229
2639
  props.plugins.forEach(function (plugin) {
2230
2640
  var _plugin$subscribe;
2231
2641
 
2232
- return (_plugin$subscribe = plugin.subscribe) === null || _plugin$subscribe === void 0 ? void 0 : _plugin$subscribe.call(plugin, _objectSpread$a(_objectSpread$a({}, setters), {}, {
2642
+ return (_plugin$subscribe = plugin.subscribe) === null || _plugin$subscribe === void 0 ? void 0 : _plugin$subscribe.call(plugin, _objectSpread$c(_objectSpread$c({}, setters), {}, {
2233
2643
  refresh: refresh,
2234
2644
  onSelect: function onSelect(fn) {
2235
2645
  subscribers.push({
@@ -2243,7 +2653,14 @@
2243
2653
  }
2244
2654
  }));
2245
2655
  });
2246
- return _objectSpread$a(_objectSpread$a({
2656
+ injectMetadata({
2657
+ metadata: getMetadata({
2658
+ plugins: props.plugins,
2659
+ options: options
2660
+ }),
2661
+ environment: props.environment
2662
+ });
2663
+ return _objectSpread$c(_objectSpread$c({
2247
2664
  refresh: refresh
2248
2665
  }, propGetters), setters);
2249
2666
  }
@@ -2290,8 +2707,8 @@
2290
2707
  }, {});
2291
2708
  }
2292
2709
 
2293
- var isObject = function isObject(value) {
2294
- return value && _typeof(value) === 'object';
2710
+ var isPlainObject = function isPlainObject(value) {
2711
+ return value && _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Object]';
2295
2712
  };
2296
2713
 
2297
2714
  function mergeDeep() {
@@ -2306,7 +2723,7 @@
2306
2723
 
2307
2724
  if (Array.isArray(accValue) && Array.isArray(currentValue)) {
2308
2725
  acc[key] = accValue.concat.apply(accValue, _toConsumableArray(currentValue));
2309
- } else if (isObject(accValue) && isObject(currentValue)) {
2726
+ } else if (isPlainObject(accValue) && isPlainObject(currentValue)) {
2310
2727
  acc[key] = mergeDeep(accValue, currentValue);
2311
2728
  } else {
2312
2729
  acc[key] = currentValue;
@@ -2366,35 +2783,35 @@
2366
2783
  }
2367
2784
  } // Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6
2368
2785
  else if (name[0] === 'o' && name[1] === 'n') {
2369
- useCapture = name !== (name = name.replace(/Capture$/, ''));
2370
- nameLower = name.toLowerCase();
2371
- if (nameLower in dom) name = nameLower;
2372
- name = name.slice(2);
2373
- if (!dom._listeners) dom._listeners = {};
2374
- dom._listeners[name] = value;
2375
-
2376
- if (value) {
2377
- if (!oldValue) dom.addEventListener(name, eventProxy, useCapture);
2378
- } else {
2379
- dom.removeEventListener(name, eventProxy, useCapture);
2380
- }
2381
- } else if (name !== 'list' && name !== 'tagName' && // HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using
2382
- // setAttribute
2383
- name !== 'form' && name !== 'type' && name !== 'size' && name !== 'download' && name !== 'href' && name in dom) {
2384
- dom[name] = value == null ? '' : value;
2385
- } else if (typeof value != 'function' && name !== 'dangerouslySetInnerHTML') {
2386
- if (value == null || value === false && // ARIA-attributes have a different notion of boolean values.
2387
- // The value `false` is different from the attribute not
2388
- // existing on the DOM, so we can't remove it. For non-boolean
2389
- // ARIA-attributes we could treat false as a removal, but the
2390
- // amount of exceptions would cost us too many bytes. On top of
2391
- // that other VDOM frameworks also always stringify `false`.
2392
- !/^ar/.test(name)) {
2393
- dom.removeAttribute(name);
2394
- } else {
2395
- dom.setAttribute(name, value);
2396
- }
2786
+ useCapture = name !== (name = name.replace(/Capture$/, ''));
2787
+ nameLower = name.toLowerCase();
2788
+ if (nameLower in dom) name = nameLower;
2789
+ name = name.slice(2);
2790
+ if (!dom._listeners) dom._listeners = {};
2791
+ dom._listeners[name] = value;
2792
+
2793
+ if (value) {
2794
+ if (!oldValue) dom.addEventListener(name, eventProxy, useCapture);
2795
+ } else {
2796
+ dom.removeEventListener(name, eventProxy, useCapture);
2797
+ }
2798
+ } else if (name !== 'list' && name !== 'tagName' && // HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using
2799
+ // setAttribute
2800
+ name !== 'form' && name !== 'type' && name !== 'size' && name !== 'download' && name !== 'href' && name in dom) {
2801
+ dom[name] = value == null ? '' : value;
2802
+ } else if (typeof value != 'function' && name !== 'dangerouslySetInnerHTML') {
2803
+ if (value == null || value === false && // ARIA-attributes have a different notion of boolean values.
2804
+ // The value `false` is different from the attribute not
2805
+ // existing on the DOM, so we can't remove it. For non-boolean
2806
+ // ARIA-attributes we could treat false as a removal, but the
2807
+ // amount of exceptions would cost us too many bytes. On top of
2808
+ // that other VDOM frameworks also always stringify `false`.
2809
+ !/^ar/.test(name)) {
2810
+ dom.removeAttribute(name);
2811
+ } else {
2812
+ dom.setAttribute(name, value);
2397
2813
  }
2814
+ }
2398
2815
  }
2399
2816
 
2400
2817
  function getNormalizedName(name) {
@@ -2420,11 +2837,12 @@
2420
2837
  }
2421
2838
  }
2422
2839
 
2840
+ var _excluded$3 = ["children"];
2423
2841
  function getCreateDomElement(environment) {
2424
2842
  return function createDomElement(tagName, _ref) {
2425
2843
  var _ref$children = _ref.children,
2426
2844
  children = _ref$children === void 0 ? [] : _ref$children,
2427
- props = _objectWithoutProperties(_ref, ["children"]);
2845
+ props = _objectWithoutProperties(_ref, _excluded$3);
2428
2846
 
2429
2847
  var element = environment.document.createElement(tagName);
2430
2848
  setProperties(element, props);
@@ -2433,6 +2851,7 @@
2433
2851
  };
2434
2852
  }
2435
2853
 
2854
+ var _excluded$4 = ["autocompleteScopeApi", "environment", "classNames", "getInputProps", "getInputPropsCore", "onDetachedEscape", "state"];
2436
2855
  var Input = function Input(_ref) {
2437
2856
  var autocompleteScopeApi = _ref.autocompleteScopeApi,
2438
2857
  environment = _ref.environment,
@@ -2441,7 +2860,7 @@
2441
2860
  getInputPropsCore = _ref.getInputPropsCore,
2442
2861
  onDetachedEscape = _ref.onDetachedEscape,
2443
2862
  state = _ref.state,
2444
- props = _objectWithoutProperties(_ref, ["autocompleteScopeApi", "environment", "classNames", "getInputProps", "getInputPropsCore", "onDetachedEscape", "state"]);
2863
+ props = _objectWithoutProperties(_ref, _excluded$4);
2445
2864
 
2446
2865
  var createDomElement = getCreateDomElement(environment);
2447
2866
  var element = createDomElement('input', props);
@@ -2715,7 +3134,7 @@
2715
3134
  };
2716
3135
  }
2717
3136
 
2718
- var n,u,i,t,o,r={},f=[],e=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function c(n,l){for(var u in l)n[u]=l[u];return n}function s(n){var l=n.parentNode;l&&l.removeChild(n);}function a(n,l,u){var i,t,o,r=arguments,f={};for(o in l)"key"==o?i=l[o]:"ref"==o?t=l[o]:f[o]=l[o];if(arguments.length>3)for(u=[u],o=3;o<arguments.length;o++)u.push(r[o]);if(null!=u&&(f.children=u),"function"==typeof n&&null!=n.defaultProps)for(o in n.defaultProps)void 0===f[o]&&(f[o]=n.defaultProps[o]);return v(n,f,i,t,null)}function v(l,u,i,t,o){var r={type:l,props:u,key:i,ref:t,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++n.__v:o};return null!=n.vnode&&n.vnode(r),r}function y(n){return n.children}function p(n,l){this.props=n,this.context=l;}function d(n,l){if(null==l)return n.__?d(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return "function"==typeof n.type?d(n):null}function _(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return _(n)}}function k(l){(!l.__d&&(l.__d=!0)&&u.push(l)&&!b.__r++||t!==n.debounceRendering)&&((t=n.debounceRendering)||i)(b);}function b(){for(var n;b.__r=u.length;)n=u.sort(function(n,l){return n.__v.__b-l.__v.__b}),u=[],n.some(function(n){var l,u,i,t,o,r;n.__d&&(o=(t=(l=n).__v).__e,(r=l.__P)&&(u=[],(i=c({},t)).__v=t.__v+1,I(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?d(t):o,t.__h),T(u,t),t.__e!=o&&_(t)));});}function m(n,l,u,i,t,o,e,c,s,a){var h,p,_,k,b,m,w,A=i&&i.__k||f,P=A.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(k=u.__k[h]=null==(k=l[h])||"boolean"==typeof k?null:"string"==typeof k||"number"==typeof k||"bigint"==typeof k?v(null,k,null,null,k):Array.isArray(k)?v(y,{children:k},null,null,null):k.__b>0?v(k.type,k.props,k.key,null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(_=A[h])||_&&k.key==_.key&&k.type===_.type)A[h]=void 0;else for(p=0;p<P;p++){if((_=A[p])&&k.key==_.key&&k.type===_.type){A[p]=void 0;break}_=null;}I(n,k,_=_||r,t,o,e,c,s,a),b=k.__e,(p=k.ref)&&_.ref!=p&&(w||(w=[]),_.ref&&w.push(_.ref,null,k),w.push(p,k.__c||b,k)),null!=b?(null==m&&(m=b),"function"==typeof k.type&&null!=k.__k&&k.__k===_.__k?k.__d=s=g(k,s,n):s=x(n,k,_,A,b,s),a||"option"!==u.type?"function"==typeof u.type&&(u.__d=s):n.value=""):s&&_.__e==s&&s.parentNode!=n&&(s=d(_));}for(u.__e=m,h=P;h--;)null!=A[h]&&("function"==typeof u.type&&null!=A[h].__e&&A[h].__e==u.__d&&(u.__d=d(i,h+1)),L(A[h],A[h]));if(w)for(h=0;h<w.length;h++)z(w[h],w[++h],w[++h]);}function g(n,l,u){var i,t;for(i=0;i<n.__k.length;i++)(t=n.__k[i])&&(t.__=n,l="function"==typeof t.type?g(t,l,u):x(u,t,t,n.__k,t.__e,l));return l}function x(n,l,u,i,t,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||t!=o||null==t.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(t),r=null;else {for(f=o,e=0;(f=f.nextSibling)&&e<i.length;e+=2)if(f==t)break n;n.insertBefore(t,o),r=o;}return void 0!==r?r:t.nextSibling}function A(n,l,u,i,t){var o;for(o in u)"children"===o||"key"===o||o in l||C(n,o,null,u[o],i);for(o in l)t&&"function"!=typeof l[o]||"children"===o||"key"===o||"value"===o||"checked"===o||u[o]===l[o]||C(n,o,l[o],u[o],i);}function P(n,l,u){"-"===l[0]?n.setProperty(l,u):n[l]=null==u?"":"number"!=typeof u||e.test(l)?u:u+"px";}function C(n,l,u,i,t){var o;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else {if("string"==typeof i&&(n.style.cssText=i=""),i)for(l in i)u&&l in u||P(n.style,l,"");if(u)for(l in u)i&&u[l]===i[l]||P(n.style,l,u[l]);}else if("o"===l[0]&&"n"===l[1])o=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?i||n.addEventListener(l,o?H:$,o):n.removeEventListener(l,o?H:$,o);else if("dangerouslySetInnerHTML"!==l){if(t)l=l.replace(/xlink[H:h]/,"h").replace(/sName$/,"s");else if("href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null!=u&&(!1!==u||"a"===l[0]&&"r"===l[1])?n.setAttribute(l,u):n.removeAttribute(l));}}function $(l){this.l[l.type+!1](n.event?n.event(l):l);}function H(l){this.l[l.type+!0](n.event?n.event(l):l);}function I(l,u,i,t,o,r,f,e,s){var a,v,h,d,_,k,b,g,w,x,A,P=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(s=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(a=n.__b)&&a(u);try{n:if("function"==typeof P){if(g=u.props,w=(a=P.contextType)&&t[a.__c],x=a?w?w.props.value:a.__:t,i.__c?b=(v=u.__c=i.__c).__=v.__E:("prototype"in P&&P.prototype.render?u.__c=v=new P(g,x):(u.__c=v=new p(g,x),v.constructor=P,v.render=M),w&&w.sub(v),v.props=g,v.state||(v.state={}),v.context=x,v.__n=t,h=v.__d=!0,v.__h=[]),null==v.__s&&(v.__s=v.state),null!=P.getDerivedStateFromProps&&(v.__s==v.state&&(v.__s=c({},v.__s)),c(v.__s,P.getDerivedStateFromProps(g,v.__s))),d=v.props,_=v.state,h)null==P.getDerivedStateFromProps&&null!=v.componentWillMount&&v.componentWillMount(),null!=v.componentDidMount&&v.__h.push(v.componentDidMount);else {if(null==P.getDerivedStateFromProps&&g!==d&&null!=v.componentWillReceiveProps&&v.componentWillReceiveProps(g,x),!v.__e&&null!=v.shouldComponentUpdate&&!1===v.shouldComponentUpdate(g,v.__s,x)||u.__v===i.__v){v.props=g,v.state=v.__s,u.__v!==i.__v&&(v.__d=!1),v.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u);}),v.__h.length&&f.push(v);break n}null!=v.componentWillUpdate&&v.componentWillUpdate(g,v.__s,x),null!=v.componentDidUpdate&&v.__h.push(function(){v.componentDidUpdate(d,_,k);});}v.context=x,v.props=g,v.state=v.__s,(a=n.__r)&&a(u),v.__d=!1,v.__v=u,v.__P=l,a=v.render(v.props,v.state,v.context),v.state=v.__s,null!=v.getChildContext&&(t=c(c({},t),v.getChildContext())),h||null==v.getSnapshotBeforeUpdate||(k=v.getSnapshotBeforeUpdate(d,_)),A=null!=a&&a.type===y&&null==a.key?a.props.children:a,m(l,Array.isArray(A)?A:[A],u,i,t,o,r,f,e,s),v.base=u.__e,u.__h=null,v.__h.length&&f.push(v),b&&(v.__E=v.__=null),v.__e=!1;}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=j(i.__e,u,i,t,o,r,f,s);(a=n.diffed)&&a(u);}catch(l){u.__v=null,(s||null!=r)&&(u.__e=e,u.__h=!!s,r[r.indexOf(e)]=null),n.__e(l,u,i);}}function T(l,u){n.__c&&n.__c(u,l),l.some(function(u){try{l=u.__h,u.__h=[],l.some(function(n){n.call(u);});}catch(l){n.__e(l,u.__v);}});}function j(n,l,u,i,t,o,e,c){var a,v,h,y,p=u.props,d=l.props,_=l.type,k=0;if("svg"===_&&(t=!0),null!=o)for(;k<o.length;k++)if((a=o[k])&&(a===n||(_?a.localName==_:3==a.nodeType))){n=a,o[k]=null;break}if(null==n){if(null===_)return document.createTextNode(d);n=t?document.createElementNS("http://www.w3.org/2000/svg",_):document.createElement(_,d.is&&d),o=null,c=!1;}if(null===_)p===d||c&&n.data===d||(n.data=d);else {if(o=o&&f.slice.call(n.childNodes),v=(p=u.props||r).dangerouslySetInnerHTML,h=d.dangerouslySetInnerHTML,!c){if(null!=o)for(p={},y=0;y<n.attributes.length;y++)p[n.attributes[y].name]=n.attributes[y].value;(h||v)&&(h&&(v&&h.__html==v.__html||h.__html===n.innerHTML)||(n.innerHTML=h&&h.__html||""));}if(A(n,d,p,t,c),h)l.__k=[];else if(k=l.props.children,m(n,Array.isArray(k)?k:[k],l,u,i,t&&"foreignObject"!==_,o,e,n.firstChild,c),null!=o)for(k=o.length;k--;)null!=o[k]&&s(o[k]);c||("value"in d&&void 0!==(k=d.value)&&(k!==n.value||"progress"===_&&!k)&&C(n,"value",k,p.value,!1),"checked"in d&&void 0!==(k=d.checked)&&k!==n.checked&&C(n,"checked",k,p.checked,!1));}return n}function z(l,u,i){try{"function"==typeof l?l(u):l.current=u;}catch(l){n.__e(l,i);}}function L(l,u,i){var t,o,r;if(n.unmount&&n.unmount(l),(t=l.ref)&&(t.current&&t.current!==l.__e||z(t,null,u)),i||"function"==typeof l.type||(i=null!=(o=l.__e)),l.__e=l.__d=void 0,null!=(t=l.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount();}catch(l){n.__e(l,u);}t.base=t.__P=null;}if(t=l.__k)for(r=0;r<t.length;r++)t[r]&&L(t[r],u,i);null!=o&&s(o);}function M(n,l,u){return this.constructor(n,u)}function N(l,u,i){var t,o,e;n.__&&n.__(l,u),o=(t="function"==typeof i)?null:i&&i.__k||u.__k,e=[],I(u,l=(!t&&i||u).__k=a(y,null,[l]),o||r,r,void 0!==u.ownerSVGElement,!t&&i?[i]:o?null:u.firstChild?f.slice.call(u.childNodes):null,e,!t&&i?i:o?o.__e:u.firstChild,t),T(e,l);}n={__e:function(n,l){for(var u,i,t;l=l.__;)if((u=l.__c)&&!u.__)try{if((i=u.constructor)&&null!=i.getDerivedStateFromError&&(u.setState(i.getDerivedStateFromError(n)),t=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),t=u.__d),t)return u.__E=u}catch(l){n=l;}throw n},__v:0},p.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=c({},this.state),"function"==typeof n&&(n=n(c({},u),this.props)),n&&c(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),k(this));},p.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),k(this));},p.prototype.render=y,u=[],i="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,b.__r=0,o=0;
3137
+ var n,l,u,t,r,o,f,e={},c=[],s=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function a(n,l){for(var u in l)n[u]=l[u];return n}function h(n){var l=n.parentNode;l&&l.removeChild(n);}function v(l,u,i){var t,r,o,f={};for(o in u)"key"==o?t=u[o]:"ref"==o?r=u[o]:f[o]=u[o];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),"function"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===f[o]&&(f[o]=l.defaultProps[o]);return y(l,f,t,r,null)}function y(n,i,t,r,o){var f={type:n,props:i,key:t,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++u:o};return null==o&&null!=l.vnode&&l.vnode(f),f}function d(n){return n.children}function _(n,l){this.props=n,this.context=l;}function k(n,l){if(null==l)return n.__?k(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return "function"==typeof n.type?k(n):null}function b(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return b(n)}}function m(n){(!n.__d&&(n.__d=!0)&&t.push(n)&&!g.__r++||o!==l.debounceRendering)&&((o=l.debounceRendering)||r)(g);}function g(){for(var n;g.__r=t.length;)n=t.sort(function(n,l){return n.__v.__b-l.__v.__b}),t=[],n.some(function(n){var l,u,i,t,r,o;n.__d&&(r=(t=(l=n).__v).__e,(o=l.__P)&&(u=[],(i=a({},t)).__v=t.__v+1,j(o,t,i,l.__n,void 0!==o.ownerSVGElement,null!=t.__h?[r]:null,u,null==r?k(t):r,t.__h),z(u,t),t.__e!=r&&b(t)));});}function w(n,l,u,i,t,r,o,f,s,a){var h,v,p,_,b,m,g,w=i&&i.__k||c,A=w.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(_=u.__k[h]=null==(_=l[h])||"boolean"==typeof _?null:"string"==typeof _||"number"==typeof _||"bigint"==typeof _?y(null,_,null,null,_):Array.isArray(_)?y(d,{children:_},null,null,null):_.__b>0?y(_.type,_.props,_.key,null,_.__v):_)){if(_.__=u,_.__b=u.__b+1,null===(p=w[h])||p&&_.key==p.key&&_.type===p.type)w[h]=void 0;else for(v=0;v<A;v++){if((p=w[v])&&_.key==p.key&&_.type===p.type){w[v]=void 0;break}p=null;}j(n,_,p=p||e,t,r,o,f,s,a),b=_.__e,(v=_.ref)&&p.ref!=v&&(g||(g=[]),p.ref&&g.push(p.ref,null,_),g.push(v,_.__c||b,_)),null!=b?(null==m&&(m=b),"function"==typeof _.type&&_.__k===p.__k?_.__d=s=x(_,s,n):s=P(n,_,p,w,b,s),"function"==typeof u.type&&(u.__d=s)):s&&p.__e==s&&s.parentNode!=n&&(s=k(p));}for(u.__e=m,h=A;h--;)null!=w[h]&&("function"==typeof u.type&&null!=w[h].__e&&w[h].__e==u.__d&&(u.__d=k(i,h+1)),N(w[h],w[h]));if(g)for(h=0;h<g.length;h++)M(g[h],g[++h],g[++h]);}function x(n,l,u){for(var i,t=n.__k,r=0;t&&r<t.length;r++)(i=t[r])&&(i.__=n,l="function"==typeof i.type?x(i,l,u):P(u,i,i,t,i.__e,l));return l}function P(n,l,u,i,t,r){var o,f,e;if(void 0!==l.__d)o=l.__d,l.__d=void 0;else if(null==u||t!=r||null==t.parentNode)n:if(null==r||r.parentNode!==n)n.appendChild(t),o=null;else {for(f=r,e=0;(f=f.nextSibling)&&e<i.length;e+=2)if(f==t)break n;n.insertBefore(t,r),o=r;}return void 0!==o?o:t.nextSibling}function C(n,l,u,i,t){var r;for(r in u)"children"===r||"key"===r||r in l||H(n,r,null,u[r],i);for(r in l)t&&"function"!=typeof l[r]||"children"===r||"key"===r||"value"===r||"checked"===r||u[r]===l[r]||H(n,r,l[r],u[r],i);}function $(n,l,u){"-"===l[0]?n.setProperty(l,u):n[l]=null==u?"":"number"!=typeof u||s.test(l)?u:u+"px";}function H(n,l,u,i,t){var r;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else {if("string"==typeof i&&(n.style.cssText=i=""),i)for(l in i)u&&l in u||$(n.style,l,"");if(u)for(l in u)i&&u[l]===i[l]||$(n.style,l,u[l]);}else if("o"===l[0]&&"n"===l[1])r=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?i||n.addEventListener(l,r?T:I,r):n.removeEventListener(l,r?T:I,r);else if("dangerouslySetInnerHTML"!==l){if(t)l=l.replace(/xlink[H:h]/,"h").replace(/sName$/,"s");else if("href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null!=u&&(!1!==u||"a"===l[0]&&"r"===l[1])?n.setAttribute(l,u):n.removeAttribute(l));}}function I(n){this.l[n.type+!1](l.event?l.event(n):n);}function T(n){this.l[n.type+!0](l.event?l.event(n):n);}function j(n,u,i,t,r,o,f,e,c){var s,h,v,y,p,k,b,m,g,x,A,P=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,o=[e]),(s=l.__b)&&s(u);try{n:if("function"==typeof P){if(m=u.props,g=(s=P.contextType)&&t[s.__c],x=s?g?g.props.value:s.__:t,i.__c?b=(h=u.__c=i.__c).__=h.__E:("prototype"in P&&P.prototype.render?u.__c=h=new P(m,x):(u.__c=h=new _(m,x),h.constructor=P,h.render=O),g&&g.sub(h),h.props=m,h.state||(h.state={}),h.context=x,h.__n=t,v=h.__d=!0,h.__h=[]),null==h.__s&&(h.__s=h.state),null!=P.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=a({},h.__s)),a(h.__s,P.getDerivedStateFromProps(m,h.__s))),y=h.props,p=h.state,v)null==P.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else {if(null==P.getDerivedStateFromProps&&m!==y&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(m,x),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(m,h.__s,x)||u.__v===i.__v){h.props=m,h.state=h.__s,u.__v!==i.__v&&(h.__d=!1),h.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u);}),h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(m,h.__s,x),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(y,p,k);});}h.context=x,h.props=m,h.state=h.__s,(s=l.__r)&&s(u),h.__d=!1,h.__v=u,h.__P=n,s=h.render(h.props,h.state,h.context),h.state=h.__s,null!=h.getChildContext&&(t=a(a({},t),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(k=h.getSnapshotBeforeUpdate(y,p)),A=null!=s&&s.type===d&&null==s.key?s.props.children:s,w(n,Array.isArray(A)?A:[A],u,i,t,r,o,f,e,c),h.base=u.__e,u.__h=null,h.__h.length&&f.push(h),b&&(h.__E=h.__=null),h.__e=!1;}else null==o&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=L(i.__e,u,i,t,r,o,f,c);(s=l.diffed)&&s(u);}catch(n){u.__v=null,(c||null!=o)&&(u.__e=e,u.__h=!!c,o[o.indexOf(e)]=null),l.__e(n,u,i);}}function z(n,u){l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u);});}catch(n){l.__e(n,u.__v);}});}function L(l,u,i,t,r,o,f,c){var s,a,v,y=i.props,p=u.props,d=u.type,_=0;if("svg"===d&&(r=!0),null!=o)for(;_<o.length;_++)if((s=o[_])&&(s===l||(d?s.localName==d:3==s.nodeType))){l=s,o[_]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=r?document.createElementNS("http://www.w3.org/2000/svg",d):document.createElement(d,p.is&&p),o=null,c=!1;}if(null===d)y===p||c&&l.data===p||(l.data=p);else {if(o=o&&n.call(l.childNodes),a=(y=i.props||e).dangerouslySetInnerHTML,v=p.dangerouslySetInnerHTML,!c){if(null!=o)for(y={},_=0;_<l.attributes.length;_++)y[l.attributes[_].name]=l.attributes[_].value;(v||a)&&(v&&(a&&v.__html==a.__html||v.__html===l.innerHTML)||(l.innerHTML=v&&v.__html||""));}if(C(l,p,y,r,c),v)u.__k=[];else if(_=u.props.children,w(l,Array.isArray(_)?_:[_],u,i,t,r&&"foreignObject"!==d,o,f,o?o[0]:i.__k&&k(i,0),c),null!=o)for(_=o.length;_--;)null!=o[_]&&h(o[_]);c||("value"in p&&void 0!==(_=p.value)&&(_!==l.value||"progress"===d&&!_)&&H(l,"value",_,y.value,!1),"checked"in p&&void 0!==(_=p.checked)&&_!==l.checked&&H(l,"checked",_,y.checked,!1));}return l}function M(n,u,i){try{"function"==typeof n?n(u):n.current=u;}catch(n){l.__e(n,i);}}function N(n,u,i){var t,r;if(l.unmount&&l.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||M(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount();}catch(n){l.__e(n,u);}t.base=t.__P=null;}if(t=n.__k)for(r=0;r<t.length;r++)t[r]&&N(t[r],u,"function"!=typeof n.type);i||null==n.__e||h(n.__e),n.__e=n.__d=void 0;}function O(n,l,u){return this.constructor(n,u)}function S(u,i,t){var r,o,f;l.__&&l.__(u,i),o=(r="function"==typeof t)?null:t&&t.__k||i.__k,f=[],j(i,u=(!r&&t||i).__k=v(d,null,[u]),o||e,e,void 0!==i.ownerSVGElement,!r&&t?[t]:o?null:i.firstChild?n.call(i.childNodes):null,f,!r&&t?t:o?o.__e:i.firstChild,r),z(f,u);}n=c.slice,l={__e:function(n,l){for(var u,i,t;l=l.__;)if((u=l.__c)&&!u.__)try{if((i=u.constructor)&&null!=i.getDerivedStateFromError&&(u.setState(i.getDerivedStateFromError(n)),t=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),t=u.__d),t)return u.__E=u}catch(l){n=l;}throw n}},u=0,_.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=a({},this.state),"function"==typeof n&&(n=n(a({},u),this.props)),n&&a(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),m(this));},_.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),m(this));},_.prototype.render=d,t=[],r="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,g.__r=0,f=0;
2719
3138
 
2720
3139
  var HIGHLIGHT_PRE_TAG = '__aa-highlight__';
2721
3140
  var HIGHLIGHT_POST_TAG = '__/aa-highlight__';
@@ -2773,31 +3192,31 @@
2773
3192
  }
2774
3193
 
2775
3194
  function _toConsumableArray$3(arr) {
2776
- return _arrayWithoutHoles$3(arr) || _iterableToArray$3(arr) || _unsupportedIterableToArray$3(arr) || _nonIterableSpread$3();
3195
+ return _arrayWithoutHoles$3(arr) || _iterableToArray$3(arr) || _unsupportedIterableToArray$4(arr) || _nonIterableSpread$3();
2777
3196
  }
2778
3197
 
2779
3198
  function _nonIterableSpread$3() {
2780
3199
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
2781
3200
  }
2782
3201
 
2783
- function _unsupportedIterableToArray$3(o, minLen) {
3202
+ function _unsupportedIterableToArray$4(o, minLen) {
2784
3203
  if (!o) return;
2785
- if (typeof o === "string") return _arrayLikeToArray$3(o, minLen);
3204
+ if (typeof o === "string") return _arrayLikeToArray$4(o, minLen);
2786
3205
  var n = Object.prototype.toString.call(o).slice(8, -1);
2787
3206
  if (n === "Object" && o.constructor) n = o.constructor.name;
2788
3207
  if (n === "Map" || n === "Set") return Array.from(o);
2789
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$3(o, minLen);
3208
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$4(o, minLen);
2790
3209
  }
2791
3210
 
2792
3211
  function _iterableToArray$3(iter) {
2793
- if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
3212
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
2794
3213
  }
2795
3214
 
2796
3215
  function _arrayWithoutHoles$3(arr) {
2797
- if (Array.isArray(arr)) return _arrayLikeToArray$3(arr);
3216
+ if (Array.isArray(arr)) return _arrayLikeToArray$4(arr);
2798
3217
  }
2799
3218
 
2800
- function _arrayLikeToArray$3(arr, len) {
3219
+ function _arrayLikeToArray$4(arr, len) {
2801
3220
  if (len == null || len > arr.length) len = arr.length;
2802
3221
 
2803
3222
  for (var i = 0, arr2 = new Array(len); i < len; i++) {
@@ -2853,32 +3272,36 @@
2853
3272
  return current.isHighlighted;
2854
3273
  }
2855
3274
 
2856
- function ownKeys$c(object, enumerableOnly) {
3275
+ function ownKeys$e(object, enumerableOnly) {
2857
3276
  var keys = Object.keys(object);
2858
3277
 
2859
3278
  if (Object.getOwnPropertySymbols) {
2860
3279
  var symbols = Object.getOwnPropertySymbols(object);
2861
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
2862
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
2863
- });
3280
+
3281
+ if (enumerableOnly) {
3282
+ symbols = symbols.filter(function (sym) {
3283
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
3284
+ });
3285
+ }
3286
+
2864
3287
  keys.push.apply(keys, symbols);
2865
3288
  }
2866
3289
 
2867
3290
  return keys;
2868
3291
  }
2869
3292
 
2870
- function _objectSpread$b(target) {
3293
+ function _objectSpread$d(target) {
2871
3294
  for (var i = 1; i < arguments.length; i++) {
2872
3295
  var source = arguments[i] != null ? arguments[i] : {};
2873
3296
 
2874
3297
  if (i % 2) {
2875
- ownKeys$c(Object(source), true).forEach(function (key) {
2876
- _defineProperty$c(target, key, source[key]);
3298
+ ownKeys$e(Object(source), true).forEach(function (key) {
3299
+ _defineProperty$e(target, key, source[key]);
2877
3300
  });
2878
3301
  } else if (Object.getOwnPropertyDescriptors) {
2879
3302
  Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
2880
3303
  } else {
2881
- ownKeys$c(Object(source)).forEach(function (key) {
3304
+ ownKeys$e(Object(source)).forEach(function (key) {
2882
3305
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
2883
3306
  });
2884
3307
  }
@@ -2887,7 +3310,7 @@
2887
3310
  return target;
2888
3311
  }
2889
3312
 
2890
- function _defineProperty$c(obj, key, value) {
3313
+ function _defineProperty$e(obj, key, value) {
2891
3314
  if (key in obj) {
2892
3315
  Object.defineProperty(obj, key, {
2893
3316
  value: value,
@@ -2907,14 +3330,14 @@
2907
3330
  return part.isHighlighted;
2908
3331
  })) {
2909
3332
  return parts.map(function (part) {
2910
- return _objectSpread$b(_objectSpread$b({}, part), {}, {
3333
+ return _objectSpread$d(_objectSpread$d({}, part), {}, {
2911
3334
  isHighlighted: false
2912
3335
  });
2913
3336
  });
2914
3337
  }
2915
3338
 
2916
3339
  return parts.map(function (part, i) {
2917
- return _objectSpread$b(_objectSpread$b({}, part), {}, {
3340
+ return _objectSpread$d(_objectSpread$d({}, part), {}, {
2918
3341
  isHighlighted: !isPartHighlighted(parts, i)
2919
3342
  });
2920
3343
  });
@@ -2925,31 +3348,31 @@
2925
3348
  }
2926
3349
 
2927
3350
  function _toConsumableArray$4(arr) {
2928
- return _arrayWithoutHoles$4(arr) || _iterableToArray$4(arr) || _unsupportedIterableToArray$4(arr) || _nonIterableSpread$4();
3351
+ return _arrayWithoutHoles$4(arr) || _iterableToArray$4(arr) || _unsupportedIterableToArray$5(arr) || _nonIterableSpread$4();
2929
3352
  }
2930
3353
 
2931
3354
  function _nonIterableSpread$4() {
2932
3355
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
2933
3356
  }
2934
3357
 
2935
- function _unsupportedIterableToArray$4(o, minLen) {
3358
+ function _unsupportedIterableToArray$5(o, minLen) {
2936
3359
  if (!o) return;
2937
- if (typeof o === "string") return _arrayLikeToArray$4(o, minLen);
3360
+ if (typeof o === "string") return _arrayLikeToArray$5(o, minLen);
2938
3361
  var n = Object.prototype.toString.call(o).slice(8, -1);
2939
3362
  if (n === "Object" && o.constructor) n = o.constructor.name;
2940
3363
  if (n === "Map" || n === "Set") return Array.from(o);
2941
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$4(o, minLen);
3364
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$5(o, minLen);
2942
3365
  }
2943
3366
 
2944
3367
  function _iterableToArray$4(iter) {
2945
- if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
3368
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
2946
3369
  }
2947
3370
 
2948
3371
  function _arrayWithoutHoles$4(arr) {
2949
- if (Array.isArray(arr)) return _arrayLikeToArray$4(arr);
3372
+ if (Array.isArray(arr)) return _arrayLikeToArray$5(arr);
2950
3373
  }
2951
3374
 
2952
- function _arrayLikeToArray$4(arr, len) {
3375
+ function _arrayLikeToArray$5(arr, len) {
2953
3376
  if (len == null || len > arr.length) len = arr.length;
2954
3377
 
2955
3378
  for (var i = 0, arr2 = new Array(len); i < len; i++) {
@@ -2978,32 +3401,36 @@
2978
3401
  return reverseHighlightedParts(parseAlgoliaHitSnippet(props));
2979
3402
  }
2980
3403
 
2981
- function ownKeys$d(object, enumerableOnly) {
3404
+ function ownKeys$f(object, enumerableOnly) {
2982
3405
  var keys = Object.keys(object);
2983
3406
 
2984
3407
  if (Object.getOwnPropertySymbols) {
2985
3408
  var symbols = Object.getOwnPropertySymbols(object);
2986
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
2987
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
2988
- });
3409
+
3410
+ if (enumerableOnly) {
3411
+ symbols = symbols.filter(function (sym) {
3412
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
3413
+ });
3414
+ }
3415
+
2989
3416
  keys.push.apply(keys, symbols);
2990
3417
  }
2991
3418
 
2992
3419
  return keys;
2993
3420
  }
2994
3421
 
2995
- function _objectSpread$c(target) {
3422
+ function _objectSpread$e(target) {
2996
3423
  for (var i = 1; i < arguments.length; i++) {
2997
3424
  var source = arguments[i] != null ? arguments[i] : {};
2998
3425
 
2999
3426
  if (i % 2) {
3000
- ownKeys$d(Object(source), true).forEach(function (key) {
3001
- _defineProperty$d(target, key, source[key]);
3427
+ ownKeys$f(Object(source), true).forEach(function (key) {
3428
+ _defineProperty$f(target, key, source[key]);
3002
3429
  });
3003
3430
  } else if (Object.getOwnPropertyDescriptors) {
3004
3431
  Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
3005
3432
  } else {
3006
- ownKeys$d(Object(source)).forEach(function (key) {
3433
+ ownKeys$f(Object(source)).forEach(function (key) {
3007
3434
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
3008
3435
  });
3009
3436
  }
@@ -3012,7 +3439,7 @@
3012
3439
  return target;
3013
3440
  }
3014
3441
 
3015
- function _defineProperty$d(obj, key, value) {
3442
+ function _defineProperty$f(obj, key, value) {
3016
3443
  if (key in obj) {
3017
3444
  Object.defineProperty(obj, key, {
3018
3445
  value: value,
@@ -3050,41 +3477,45 @@
3050
3477
 
3051
3478
  return function createSpecifiedRequester(requesterParams) {
3052
3479
  return function requester(requestParams) {
3053
- return _objectSpread$c(_objectSpread$c({
3480
+ return _objectSpread$e(_objectSpread$e({
3054
3481
  execute: execute
3055
3482
  }, requesterParams), requestParams);
3056
3483
  };
3057
3484
  };
3058
3485
  }
3059
3486
 
3060
- var version = '1.2.2';
3487
+ var _excluded$5 = ["params"];
3061
3488
 
3062
- function ownKeys$e(object, enumerableOnly) {
3489
+ function ownKeys$g(object, enumerableOnly) {
3063
3490
  var keys = Object.keys(object);
3064
3491
 
3065
3492
  if (Object.getOwnPropertySymbols) {
3066
3493
  var symbols = Object.getOwnPropertySymbols(object);
3067
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
3068
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
3069
- });
3494
+
3495
+ if (enumerableOnly) {
3496
+ symbols = symbols.filter(function (sym) {
3497
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
3498
+ });
3499
+ }
3500
+
3070
3501
  keys.push.apply(keys, symbols);
3071
3502
  }
3072
3503
 
3073
3504
  return keys;
3074
3505
  }
3075
3506
 
3076
- function _objectSpread$d(target) {
3507
+ function _objectSpread$f(target) {
3077
3508
  for (var i = 1; i < arguments.length; i++) {
3078
3509
  var source = arguments[i] != null ? arguments[i] : {};
3079
3510
 
3080
3511
  if (i % 2) {
3081
- ownKeys$e(Object(source), true).forEach(function (key) {
3082
- _defineProperty$e(target, key, source[key]);
3512
+ ownKeys$g(Object(source), true).forEach(function (key) {
3513
+ _defineProperty$g(target, key, source[key]);
3083
3514
  });
3084
3515
  } else if (Object.getOwnPropertyDescriptors) {
3085
3516
  Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
3086
3517
  } else {
3087
- ownKeys$e(Object(source)).forEach(function (key) {
3518
+ ownKeys$g(Object(source)).forEach(function (key) {
3088
3519
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
3089
3520
  });
3090
3521
  }
@@ -3093,7 +3524,7 @@
3093
3524
  return target;
3094
3525
  }
3095
3526
 
3096
- function _defineProperty$e(obj, key, value) {
3527
+ function _defineProperty$g(obj, key, value) {
3097
3528
  if (key in obj) {
3098
3529
  Object.defineProperty(obj, key, {
3099
3530
  value: value,
@@ -3145,31 +3576,31 @@
3145
3576
  }
3146
3577
 
3147
3578
  function _toConsumableArray$5(arr) {
3148
- return _arrayWithoutHoles$5(arr) || _iterableToArray$5(arr) || _unsupportedIterableToArray$5(arr) || _nonIterableSpread$5();
3579
+ return _arrayWithoutHoles$5(arr) || _iterableToArray$5(arr) || _unsupportedIterableToArray$6(arr) || _nonIterableSpread$5();
3149
3580
  }
3150
3581
 
3151
3582
  function _nonIterableSpread$5() {
3152
3583
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
3153
3584
  }
3154
3585
 
3155
- function _unsupportedIterableToArray$5(o, minLen) {
3586
+ function _unsupportedIterableToArray$6(o, minLen) {
3156
3587
  if (!o) return;
3157
- if (typeof o === "string") return _arrayLikeToArray$5(o, minLen);
3588
+ if (typeof o === "string") return _arrayLikeToArray$6(o, minLen);
3158
3589
  var n = Object.prototype.toString.call(o).slice(8, -1);
3159
3590
  if (n === "Object" && o.constructor) n = o.constructor.name;
3160
3591
  if (n === "Map" || n === "Set") return Array.from(o);
3161
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$5(o, minLen);
3592
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$6(o, minLen);
3162
3593
  }
3163
3594
 
3164
3595
  function _iterableToArray$5(iter) {
3165
- if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
3596
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
3166
3597
  }
3167
3598
 
3168
3599
  function _arrayWithoutHoles$5(arr) {
3169
- if (Array.isArray(arr)) return _arrayLikeToArray$5(arr);
3600
+ if (Array.isArray(arr)) return _arrayLikeToArray$6(arr);
3170
3601
  }
3171
3602
 
3172
- function _arrayLikeToArray$5(arr, len) {
3603
+ function _arrayLikeToArray$6(arr, len) {
3173
3604
  if (len == null || len > arr.length) len = arr.length;
3174
3605
 
3175
3606
  for (var i = 0, arr2 = new Array(len); i < len; i++) {
@@ -3182,13 +3613,10 @@
3182
3613
  var searchClient = _ref.searchClient,
3183
3614
  queries = _ref.queries,
3184
3615
  _ref$userAgents = _ref.userAgents,
3185
- userAgents = _ref$userAgents === void 0 ? [] : _ref$userAgents;
3616
+ userAgents$1 = _ref$userAgents === void 0 ? [] : _ref$userAgents;
3186
3617
 
3187
3618
  if (typeof searchClient.addAlgoliaAgent === 'function') {
3188
- var algoliaAgents = [{
3189
- segment: 'autocomplete-core',
3190
- version: version
3191
- }].concat(_toConsumableArray$5(userAgents));
3619
+ var algoliaAgents = [].concat(_toConsumableArray$5(userAgents), _toConsumableArray$5(userAgents$1));
3192
3620
  algoliaAgents.forEach(function (_ref2) {
3193
3621
  var segment = _ref2.segment,
3194
3622
  version = _ref2.version;
@@ -3198,10 +3626,10 @@
3198
3626
 
3199
3627
  return searchClient.search(queries.map(function (searchParameters) {
3200
3628
  var params = searchParameters.params,
3201
- headers = _objectWithoutProperties$4(searchParameters, ["params"]);
3629
+ headers = _objectWithoutProperties$4(searchParameters, _excluded$5);
3202
3630
 
3203
- return _objectSpread$d(_objectSpread$d({}, headers), {}, {
3204
- params: _objectSpread$d({
3631
+ return _objectSpread$f(_objectSpread$f({}, headers), {}, {
3632
+ params: _objectSpread$f({
3205
3633
  hitsPerPage: 5,
3206
3634
  highlightPreTag: HIGHLIGHT_PRE_TAG,
3207
3635
  highlightPostTag: HIGHLIGHT_POST_TAG
@@ -3288,6 +3716,7 @@
3288
3716
  };
3289
3717
  }
3290
3718
 
3719
+ var _excluded$6 = ["classNames", "container", "getEnvironmentProps", "getFormProps", "getInputProps", "getItemProps", "getLabelProps", "getListProps", "getPanelProps", "getRootProps", "panelContainer", "panelPlacement", "render", "renderNoResults", "renderer", "detachedMediaQuery", "components", "translations"];
3291
3720
  var defaultClassNames = {
3292
3721
  clearButton: 'aa-ClearButton',
3293
3722
  detachedCancelButton: 'aa-DetachedCancelButton',
@@ -3318,12 +3747,12 @@
3318
3747
 
3319
3748
  var defaultRender = function defaultRender(_ref, root) {
3320
3749
  var children = _ref.children;
3321
- N(children, root);
3750
+ S(children, root);
3322
3751
  };
3323
3752
 
3324
3753
  var defaultRenderer = {
3325
- createElement: a,
3326
- Fragment: y
3754
+ createElement: v,
3755
+ Fragment: d
3327
3756
  };
3328
3757
  function getDefaultOptions(options) {
3329
3758
  var _core$id;
@@ -3346,7 +3775,7 @@
3346
3775
  detachedMediaQuery = options.detachedMediaQuery,
3347
3776
  components = options.components,
3348
3777
  translations = options.translations,
3349
- core = _objectWithoutProperties(options, ["classNames", "container", "getEnvironmentProps", "getFormProps", "getInputProps", "getItemProps", "getLabelProps", "getListProps", "getPanelProps", "getRootProps", "panelContainer", "panelPlacement", "render", "renderNoResults", "renderer", "detachedMediaQuery", "components", "translations"]);
3778
+ core = _objectWithoutProperties(options, _excluded$6);
3350
3779
  /* eslint-disable no-restricted-globals */
3351
3780
 
3352
3781
 
@@ -3613,6 +4042,11 @@
3613
4042
  }, autocompleteScopeApi), dom.panel);
3614
4043
  }
3615
4044
 
4045
+ var userAgents$1 = [{
4046
+ segment: 'autocomplete-js',
4047
+ version: version
4048
+ }];
4049
+
3616
4050
  function autocomplete(options) {
3617
4051
  var _createEffectWrapper = createEffectWrapper(),
3618
4052
  runEffect = _createEffectWrapper.runEffect,
@@ -3658,6 +4092,10 @@
3658
4092
 
3659
4093
  var hasNoResultsTemplate = Boolean(hasNoResultsSourceTemplateRef.current || props.value.renderer.renderNoResults);
3660
4094
  return !hasItems && hasNoResultsTemplate || hasItems;
4095
+ },
4096
+ __autocomplete_metadata: {
4097
+ userAgents: userAgents$1,
4098
+ options: options
3661
4099
  }
3662
4100
  }));
3663
4101
  });
@@ -3901,14 +4339,9 @@
3901
4339
  });
3902
4340
  }
3903
4341
 
3904
- var version$1 = '1.2.2';
3905
-
3906
4342
  var createAlgoliaRequester = createRequester(function (params) {
3907
4343
  return fetchAlgoliaResults(_objectSpread2(_objectSpread2({}, params), {}, {
3908
- userAgents: [{
3909
- segment: 'autocomplete-js',
3910
- version: version$1
3911
- }]
4344
+ userAgents: userAgents$1
3912
4345
  }));
3913
4346
  });
3914
4347