Socket
Socket
Sign inDemoInstall

@algolia/autocomplete-core

Package Overview
Dependencies
Maintainers
62
Versions
72
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@algolia/autocomplete-core - npm Package Compare versions

Comparing version 1.0.0-alpha.38 to 1.0.0-alpha.39

dist/esm/utils/getActiveItem.d.ts

4

dist/esm/createAutocomplete.js

@@ -50,5 +50,5 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

},
onHighlight: function onHighlight(fn) {
onActive: function onActive(fn) {
subscribers.push({
onHighlight: fn
onActive: fn
});

@@ -55,0 +55,0 @@ }

@@ -6,3 +6,3 @@ import { AutocompleteCollection, AutocompleteStore, BaseItem } from './types';

export declare function getAutocompleteSetters<TItem extends BaseItem>({ store, }: GetAutocompleteSettersOptions<TItem>): {
setSelectedItemId: import("./types").StateUpdater<number | null>;
setActiveItemId: import("./types").StateUpdater<number | null>;
setQuery: import("./types").StateUpdater<string>;

@@ -9,0 +9,0 @@ setCollections: import("./types").StateUpdater<(AutocompleteCollection<TItem> | import("./types").AutocompleteCollectionItemsArray<TItem>)[]>;

@@ -11,4 +11,4 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

var setSelectedItemId = function setSelectedItemId(value) {
store.dispatch('setSelectedItemId', value);
var setActiveItemId = function setActiveItemId(value) {
store.dispatch('setActiveItemId', value);
};

@@ -49,3 +49,3 @@

return {
setSelectedItemId: setSelectedItemId,
setActiveItemId: setActiveItemId,
setQuery: setQuery,

@@ -52,0 +52,0 @@ setCollections: setCollections,

@@ -1,10 +0,10 @@

import { getSelectedItem } from './utils';
import { getActiveItem } from './utils';
export function getCompletion(_ref) {
var state = _ref.state;
if (state.isOpen === false || state.selectedItemId === null) {
if (state.isOpen === false || state.activeItemId === null) {
return null;
}
var _ref2 = getSelectedItem(state),
var _ref2 = getActiveItem(state),
itemInputValue = _ref2.itemInputValue;

@@ -11,0 +11,0 @@

@@ -19,3 +19,4 @@ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }

import { generateAutocompleteId, getItemsCount, getNormalizedSources, flatten } from './utils';
import { getItemsCount } from '@algolia/autocomplete-shared';
import { generateAutocompleteId, getNormalizedSources, flatten } from './utils';
export function getDefaultProps(props, pluginSubscribers) {

@@ -31,3 +32,3 @@ var _props$id;

autoFocus: false,
defaultSelectedItemId: null,
defaultActiveItemId: null,
stallThreshold: 300,

@@ -46,3 +47,3 @@ environment: environment,

initialState: _objectSpread({
selectedItemId: null,
activeItemId: null,
query: '',

@@ -103,8 +104,8 @@ completion: null,

},
onHighlight: function onHighlight(params) {
source.onHighlight(params);
onActive: function onActive(params) {
source.onActive(params);
pluginSubscribers.forEach(function (x) {
var _x$onHighlight;
var _x$onActive;
return (_x$onHighlight = x.onHighlight) === null || _x$onHighlight === void 0 ? void 0 : _x$onHighlight.call(x, params);
return (_x$onActive = x.onActive) === null || _x$onActive === void 0 ? void 0 : _x$onActive.call(x, params);
});

@@ -111,0 +112,0 @@ }

@@ -13,3 +13,3 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

import { onKeyDown as _onKeyDown } from './onKeyDown';
import { getSelectedItem, isOrContainsNode } from './utils';
import { getActiveItem, isOrContainsNode } from './utils';
export function getPropGetters(_ref) {

@@ -106,3 +106,3 @@ var props = _ref.props,

// because the panel should open with the current query.
if (props.openOnFocus || store.getState().query.length > 0) {
if (props.openOnFocus || Boolean(store.getState().query)) {
onInput(_objectSpread({

@@ -128,6 +128,6 @@ event: event,

var selectedItem = getSelectedItem(store.getState());
var activeItem = getActiveItem(store.getState());
return _objectSpread({
'aria-autocomplete': 'both',
'aria-activedescendant': store.getState().isOpen && store.getState().selectedItemId !== null ? "".concat(props.id, "-item-").concat(store.getState().selectedItemId) : undefined,
'aria-activedescendant': store.getState().isOpen && store.getState().activeItemId !== null ? "".concat(props.id, "-item-").concat(store.getState().activeItemId) : undefined,
'aria-controls': store.getState().isOpen ? "".concat(props.id, "-list") : undefined,

@@ -140,3 +140,3 @@ 'aria-labelledby': "".concat(props.id, "-label"),

autoCapitalize: 'off',
enterKeyHint: selectedItem !== null && selectedItem !== void 0 && selectedItem.itemUrl ? 'go' : 'search',
enterKeyHint: activeItem !== null && activeItem !== void 0 && activeItem.itemUrl ? 'go' : 'search',
spellCheck: 'false',

@@ -224,5 +224,5 @@ autoFocus: props.autoFocus,

role: 'option',
'aria-selected': store.getState().selectedItemId === item.__autocomplete_id,
'aria-selected': store.getState().activeItemId === item.__autocomplete_id,
onMouseMove: function onMouseMove(event) {
if (item.__autocomplete_id === store.getState().selectedItemId) {
if (item.__autocomplete_id === store.getState().activeItemId) {
return;

@@ -232,11 +232,11 @@ }

store.dispatch('mousemove', item.__autocomplete_id);
var highlightedItem = getSelectedItem(store.getState());
var activeItem = getActiveItem(store.getState());
if (store.getState().selectedItemId !== null && highlightedItem) {
var _item = highlightedItem.item,
itemInputValue = highlightedItem.itemInputValue,
itemUrl = highlightedItem.itemUrl,
_source = highlightedItem.source;
if (store.getState().activeItemId !== null && activeItem) {
var _item = activeItem.item,
itemInputValue = activeItem.itemInputValue,
itemUrl = activeItem.itemUrl,
_source = activeItem.source;
_source.onHighlight(_objectSpread({
_source.onActive(_objectSpread({
event: event,

@@ -268,3 +268,3 @@ item: _item,

// We can therefore skip the state change because it will update
// the `selectedItemId`, resulting in a UI flash, especially
// the `activeItemId`, resulting in a UI flash, especially
// noticeable on mobile.

@@ -271,0 +271,0 @@

@@ -14,3 +14,3 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

import { invariant } from '@algolia/autocomplete-shared';
import { getSelectedItem } from './utils';
import { getActiveItem } from './utils';
var lastStalledId = null;

@@ -42,8 +42,8 @@ export function onInput(_ref) {

setQuery = setters.setQuery,
setSelectedItemId = setters.setSelectedItemId,
setActiveItemId = setters.setActiveItemId,
setStatus = setters.setStatus;
setQuery(query);
setSelectedItemId(props.defaultSelectedItemId);
setActiveItemId(props.defaultActiveItemId);
if (query.length === 0 && props.openOnFocus === false) {
if (!query && props.openOnFocus === false) {
var _nextState$isOpen;

@@ -91,8 +91,8 @@

setCollections(collections);
setIsOpen((_nextState$isOpen2 = nextState.isOpen) !== null && _nextState$isOpen2 !== void 0 ? _nextState$isOpen2 : query.length === 0 && props.openOnFocus || props.shouldPanelShow({
setIsOpen((_nextState$isOpen2 = nextState.isOpen) !== null && _nextState$isOpen2 !== void 0 ? _nextState$isOpen2 : !query && props.openOnFocus || props.shouldPanelShow({
state: store.getState()
}));
var highlightedItem = getSelectedItem(store.getState());
var highlightedItem = getActiveItem(store.getState());
if (store.getState().selectedItemId !== null && highlightedItem) {
if (store.getState().activeItemId !== null && highlightedItem) {
var item = highlightedItem.item,

@@ -102,3 +102,3 @@ itemInputValue = highlightedItem.itemInputValue,

source = highlightedItem.source;
source.onHighlight(_objectSpread({
source.onActive(_objectSpread({
event: event,

@@ -105,0 +105,0 @@ item: item,

@@ -12,3 +12,3 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

import { onInput } from './onInput';
import { getSelectedItem } from './utils';
import { getActiveItem } from './utils';
export function onKeyDown(_ref) {

@@ -26,3 +26,3 @@ var event = _ref.event,

store.dispatch(event.key, null);
var nodeItem = props.environment.document.getElementById("".concat(props.id, "-item-").concat(store.getState().selectedItemId));
var nodeItem = props.environment.document.getElementById("".concat(props.id, "-item-").concat(store.getState().activeItemId));

@@ -37,5 +37,5 @@ if (nodeItem) {

var highlightedItem = getSelectedItem(store.getState());
var highlightedItem = getActiveItem(store.getState());
if (store.getState().selectedItemId !== null && highlightedItem) {
if (store.getState().activeItemId !== null && highlightedItem) {
var item = highlightedItem.item,

@@ -45,3 +45,3 @@ itemInputValue = highlightedItem.itemInputValue,

source = highlightedItem.source;
source.onHighlight(_objectSpread({
source.onActive(_objectSpread({
event: event,

@@ -63,5 +63,5 @@ item: item,

} else if (event.key === 'Enter') {
// No item is selected, so we let the browser handle the native `onSubmit`
// form event.
if (store.getState().selectedItemId === null || store.getState().collections.every(function (collection) {
// No active item, so we let the browser handle the native `onSubmit` form
// event.
if (store.getState().activeItemId === null || store.getState().collections.every(function (collection) {
return collection.items.length === 0;

@@ -76,3 +76,3 @@ })) {

var _ref2 = getSelectedItem(store.getState()),
var _ref2 = getActiveItem(store.getState()),
_item = _ref2.item,

@@ -79,0 +79,0 @@ _itemInputValue = _ref2.itemInputValue,

@@ -7,11 +7,11 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

import { invariant } from '@algolia/autocomplete-shared';
import { getItemsCount, invariant } from '@algolia/autocomplete-shared';
import { getCompletion } from './getCompletion';
import { getItemsCount, getNextSelectedItemId } from './utils';
import { getNextActiveItemId } from './utils';
export var stateReducer = function stateReducer(state, action) {
switch (action.type) {
case 'setSelectedItemId':
case 'setActiveItemId':
{
return _objectSpread(_objectSpread({}, state), {}, {
selectedItemId: action.payload
activeItemId: action.payload
});

@@ -59,3 +59,3 @@ }

var nextState = _objectSpread(_objectSpread({}, state), {}, {
selectedItemId: getNextSelectedItemId(1, state.selectedItemId, getItemsCount(state), action.props.defaultSelectedItemId)
activeItemId: getNextActiveItemId(1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)
});

@@ -73,3 +73,3 @@

var _nextState = _objectSpread(_objectSpread({}, state), {}, {
selectedItemId: getNextSelectedItemId(-1, state.selectedItemId, getItemsCount(state), action.props.defaultSelectedItemId)
activeItemId: getNextActiveItemId(-1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)
});

@@ -103,3 +103,3 @@

return _objectSpread(_objectSpread({}, state), {}, {
selectedItemId: null,
activeItemId: null,
isOpen: false,

@@ -113,7 +113,7 @@ status: 'idle'

return _objectSpread(_objectSpread({}, state), {}, {
selectedItemId: // Since we open the panel on reset when openOnFocus=true
// we need to restore the highlighted index to the defaultSelectedItemId. (DocSearch use-case)
activeItemId: // Since we open the panel on reset when openOnFocus=true
// we need to restore the highlighted index to the defaultActiveItemId. (DocSearch use-case)
// Since we close the panel when openOnFocus=false
// we lose track of the highlighted index. (Query-suggestions use-case)
action.props.openOnFocus === true ? action.props.defaultSelectedItemId : null,
action.props.openOnFocus === true ? action.props.defaultActiveItemId : null,
status: 'idle',

@@ -127,4 +127,4 @@ query: ''

return _objectSpread(_objectSpread({}, state), {}, {
selectedItemId: action.props.defaultSelectedItemId,
isOpen: action.props.openOnFocus || state.query.length > 0
activeItemId: action.props.defaultActiveItemId,
isOpen: action.props.openOnFocus || Boolean(state.query)
});

@@ -141,3 +141,3 @@ }

isOpen: false,
selectedItemId: null
activeItemId: null
});

@@ -149,3 +149,3 @@ }

return _objectSpread(_objectSpread({}, state), {}, {
selectedItemId: action.payload
activeItemId: action.payload
});

@@ -157,3 +157,3 @@ }

return _objectSpread(_objectSpread({}, state), {}, {
selectedItemId: action.props.defaultSelectedItemId
activeItemId: action.props.defaultActiveItemId
});

@@ -160,0 +160,0 @@ }

@@ -60,3 +60,3 @@ import { MaybePromise } from '@algolia/autocomplete-shared';

*/
defaultSelectedItemId?: number | null;
defaultActiveItemId?: number | null;
/**

@@ -130,3 +130,3 @@ * Whether to open the panel on focus when there's no query.

autoFocus: boolean;
defaultSelectedItemId: number | null;
defaultActiveItemId: number | null;
openOnFocus: boolean;

@@ -133,0 +133,0 @@ stallThreshold: number;

@@ -8,3 +8,3 @@ import { BaseItem } from './AutocompleteApi';

onSelect(fn: PluginSubscriber<OnSelectParams<TItem>>): void;
onHighlight(fn: PluginSubscriber<OnHighlightParams<TItem>>): void;
onActive(fn: PluginSubscriber<OnHighlightParams<TItem>>): void;
}

@@ -11,0 +11,0 @@ export declare type AutocompletePlugin<TItem extends BaseItem, TData = unknown> = Partial<Pick<AutocompleteOptions<TItem>, 'onStateChange' | 'onSubmit' | 'onReset' | 'getSources'>> & {

@@ -6,3 +6,3 @@ import { BaseItem } from './AutocompleteApi';

export interface AutocompleteSetters<TItem extends BaseItem> {
setSelectedItemId: StateUpdater<AutocompleteState<TItem>['selectedItemId']>;
setActiveItemId: StateUpdater<AutocompleteState<TItem>['activeItemId']>;
setQuery: StateUpdater<AutocompleteState<TItem>['query']>;

@@ -9,0 +9,0 @@ setCollections: StateUpdater<Array<AutocompleteCollection<TItem> | AutocompleteCollectionItemsArray<TItem>>>;

@@ -44,3 +44,3 @@ import { MaybePromise } from '@algolia/autocomplete-shared';

*/
onHighlight?(params: OnHighlightParams<TItem>): void;
onActive?(params: OnHighlightParams<TItem>): void;
}

@@ -47,0 +47,0 @@ export declare type InternalAutocompleteSource<TItem extends BaseItem> = {

@@ -5,3 +5,3 @@ import { BaseItem } from './AutocompleteApi';

export interface AutocompleteState<TItem extends BaseItem> {
selectedItemId: number | null;
activeItemId: number | null;
query: string;

@@ -8,0 +8,0 @@ completion: string | null;

@@ -14,3 +14,3 @@ import { BaseItem } from './AutocompleteApi';

};
declare type ActionType = 'setSelectedItemId' | 'setQuery' | 'setCollections' | 'setIsOpen' | 'setStatus' | 'setContext' | 'ArrowUp' | 'ArrowDown' | 'Escape' | 'Enter' | 'submit' | 'reset' | 'focus' | 'blur' | 'mousemove' | 'mouseleave' | 'click';
declare type ActionType = 'setActiveItemId' | 'setQuery' | 'setCollections' | 'setIsOpen' | 'setStatus' | 'setContext' | 'ArrowUp' | 'ArrowDown' | 'Escape' | 'Enter' | 'submit' | 'reset' | 'focus' | 'blur' | 'mousemove' | 'mouseleave' | 'click';
export {};

@@ -5,4 +5,4 @@ import { BaseItem } from './AutocompleteApi';

onSelect(params: OnSelectParams<TItem>): void;
onHighlight(params: OnHighlightParams<TItem>): void;
onActive(params: OnHighlightParams<TItem>): void;
};
export declare type AutocompleteSubscribers<TItem extends BaseItem> = Array<Partial<AutocompleteSubscriber<TItem>>>;

@@ -32,3 +32,3 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

},
onHighlight: noop
onActive: noop
}, source);

@@ -35,0 +35,0 @@

export * from './createConcurrentSafePromise';
export * from './flatten';
export * from './generateAutocompleteId';
export * from './getItemsCount';
export * from './getNextSelectedItemId';
export * from './getNextActiveItemId';
export * from './getNormalizedSources';
export * from './getSelectedItem';
export * from './getActiveItem';
export * from './isOrContainsNode';
export * from './noop';
export * from './createConcurrentSafePromise';
export * from './flatten';
export * from './generateAutocompleteId';
export * from './getItemsCount';
export * from './getNextSelectedItemId';
export * from './getNextActiveItemId';
export * from './getNormalizedSources';
export * from './getSelectedItem';
export * from './getActiveItem';
export * from './isOrContainsNode';
export * from './noop';

@@ -1,1 +0,1 @@

export declare const version = "1.0.0-alpha.38";
export declare const version = "1.0.0-alpha.39";

@@ -1,1 +0,1 @@

export var version = '1.0.0-alpha.38';
export var version = '1.0.0-alpha.39';

@@ -1,2 +0,2 @@

/*! @algolia/autocomplete-core 1.0.0-alpha.38 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete.js */
/*! @algolia/autocomplete-core 1.0.0-alpha.39 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete.js */
(function (global, factory) {

@@ -142,2 +142,12 @@ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :

function getItemsCount(state) {
if (state.collections.length === 0) {
return 0;
}
return state.collections.reduce(function (sum, collection) {
return sum + collection.items.length;
}, 0);
}
/**

@@ -216,14 +226,4 @@ * Throws an error if the condition is not met in development mode.

function getItemsCount(state) {
if (state.collections.length === 0) {
return 0;
}
return state.collections.reduce(function (sum, collection) {
return sum + collection.items.length;
}, 0);
}
/**
* Returns the next selected item ID from the current state.
* Returns the next active item ID from the current state.
*

@@ -234,3 +234,3 @@ * We allow circular keyboard navigation from the base index.

* The base index is allowed to get assigned `null` only if
* `props.defaultSelectedItemId` is `null`. This pattern allows to "stop"
* `props.defaultActiveItemId` is `null`. This pattern allows to "stop"
* by the actual query before navigating to other suggestions as seen on

@@ -242,6 +242,6 @@ * Google or Amazon.

* @param itemCount The number of items
* @param defaultSelectedItemId The default selected index to fallback to
* @param defaultActiveItemId The default active index to fallback to
*/
function getNextSelectedItemId(moveAmount, baseIndex, itemCount, defaultSelectedItemId) {
if (moveAmount < 0 && (baseIndex === null || defaultSelectedItemId !== null && baseIndex === 0)) {
function getNextActiveItemId(moveAmount, baseIndex, itemCount, defaultActiveItemId) {
if (moveAmount < 0 && (baseIndex === null || defaultActiveItemId !== null && baseIndex === 0)) {
return itemCount + moveAmount;

@@ -253,3 +253,3 @@ }

if (numericIndex <= -1 || numericIndex >= itemCount) {
return defaultSelectedItemId === null ? null : 0;
return defaultActiveItemId === null ? null : 0;
}

@@ -283,3 +283,3 @@

},
onHighlight: noop
onActive: noop
}, source);

@@ -295,3 +295,3 @@

// However, we can get the source from the suggestion index.
function getCollectionFromSelectedItemId(state) {
function getCollectionFromActiveItemId(state) {
// Given 3 sources with respectively 1, 2 and 3 suggestions: [1, 2, 3]

@@ -310,3 +310,3 @@ // We want to get the accumulated counts:

var collectionIndex = accumulatedCollectionsCount.reduce(function (acc, current) {
if (current <= state.selectedItemId) {
if (current <= state.activeItemId) {
return acc + 1;

@@ -330,3 +330,3 @@ }

function getRelativeSelectedItemId(_ref) {
function getRelativeActiveItemId(_ref) {
var state = _ref.state,

@@ -350,7 +350,7 @@ collection = _ref.collection;

return state.selectedItemId - previousItemsOffset;
return state.activeItemId - previousItemsOffset;
}
function getSelectedItem(state) {
var collection = getCollectionFromSelectedItemId(state);
function getActiveItem(state) {
var collection = getCollectionFromActiveItemId(state);

@@ -361,3 +361,3 @@ if (!collection) {

var item = collection.items[getRelativeSelectedItemId({
var item = collection.items[getRelativeActiveItemId({
state: state,

@@ -390,4 +390,4 @@ collection: collection

var setSelectedItemId = function setSelectedItemId(value) {
store.dispatch('setSelectedItemId', value);
var setActiveItemId = function setActiveItemId(value) {
store.dispatch('setActiveItemId', value);
};

@@ -428,3 +428,3 @@

return {
setSelectedItemId: setSelectedItemId,
setActiveItemId: setActiveItemId,
setQuery: setQuery,

@@ -448,3 +448,3 @@ setCollections: setCollections,

autoFocus: false,
defaultSelectedItemId: null,
defaultActiveItemId: null,
stallThreshold: 300,

@@ -463,3 +463,3 @@ environment: environment,

initialState: _objectSpread2({
selectedItemId: null,
activeItemId: null,
query: '',

@@ -520,8 +520,8 @@ completion: null,

},
onHighlight: function onHighlight(params) {
source.onHighlight(params);
onActive: function onActive(params) {
source.onActive(params);
pluginSubscribers.forEach(function (x) {
var _x$onHighlight;
var _x$onActive;
return (_x$onHighlight = x.onHighlight) === null || _x$onHighlight === void 0 ? void 0 : _x$onHighlight.call(x, params);
return (_x$onActive = x.onActive) === null || _x$onActive === void 0 ? void 0 : _x$onActive.call(x, params);
});

@@ -577,8 +577,8 @@ }

setQuery = setters.setQuery,
setSelectedItemId = setters.setSelectedItemId,
setActiveItemId = setters.setActiveItemId,
setStatus = setters.setStatus;
setQuery(query);
setSelectedItemId(props.defaultSelectedItemId);
setActiveItemId(props.defaultActiveItemId);
if (query.length === 0 && props.openOnFocus === false) {
if (!query && props.openOnFocus === false) {
var _nextState$isOpen;

@@ -626,8 +626,8 @@

setCollections(collections);
setIsOpen((_nextState$isOpen2 = nextState.isOpen) !== null && _nextState$isOpen2 !== void 0 ? _nextState$isOpen2 : query.length === 0 && props.openOnFocus || props.shouldPanelShow({
setIsOpen((_nextState$isOpen2 = nextState.isOpen) !== null && _nextState$isOpen2 !== void 0 ? _nextState$isOpen2 : !query && props.openOnFocus || props.shouldPanelShow({
state: store.getState()
}));
var highlightedItem = getSelectedItem(store.getState());
var highlightedItem = getActiveItem(store.getState());
if (store.getState().selectedItemId !== null && highlightedItem) {
if (store.getState().activeItemId !== null && highlightedItem) {
var item = highlightedItem.item,

@@ -637,3 +637,3 @@ itemInputValue = highlightedItem.itemInputValue,

source = highlightedItem.source;
source.onHighlight(_objectSpread2({
source.onActive(_objectSpread2({
event: event,

@@ -671,3 +671,3 @@ item: item,

store.dispatch(event.key, null);
var nodeItem = props.environment.document.getElementById("".concat(props.id, "-item-").concat(store.getState().selectedItemId));
var nodeItem = props.environment.document.getElementById("".concat(props.id, "-item-").concat(store.getState().activeItemId));

@@ -682,5 +682,5 @@ if (nodeItem) {

var highlightedItem = getSelectedItem(store.getState());
var highlightedItem = getActiveItem(store.getState());
if (store.getState().selectedItemId !== null && highlightedItem) {
if (store.getState().activeItemId !== null && highlightedItem) {
var item = highlightedItem.item,

@@ -690,3 +690,3 @@ itemInputValue = highlightedItem.itemInputValue,

source = highlightedItem.source;
source.onHighlight(_objectSpread2({
source.onActive(_objectSpread2({
event: event,

@@ -708,5 +708,5 @@ item: item,

} else if (event.key === 'Enter') {
// No item is selected, so we let the browser handle the native `onSubmit`
// form event.
if (store.getState().selectedItemId === null || store.getState().collections.every(function (collection) {
// No active item, so we let the browser handle the native `onSubmit` form
// event.
if (store.getState().activeItemId === null || store.getState().collections.every(function (collection) {
return collection.items.length === 0;

@@ -721,3 +721,3 @@ })) {

var _ref2 = getSelectedItem(store.getState()),
var _ref2 = getActiveItem(store.getState()),
_item = _ref2.item,

@@ -899,3 +899,3 @@ _itemInputValue = _ref2.itemInputValue,

// because the panel should open with the current query.
if (props.openOnFocus || store.getState().query.length > 0) {
if (props.openOnFocus || Boolean(store.getState().query)) {
onInput(_objectSpread2({

@@ -921,6 +921,6 @@ event: event,

var selectedItem = getSelectedItem(store.getState());
var activeItem = getActiveItem(store.getState());
return _objectSpread2({
'aria-autocomplete': 'both',
'aria-activedescendant': store.getState().isOpen && store.getState().selectedItemId !== null ? "".concat(props.id, "-item-").concat(store.getState().selectedItemId) : undefined,
'aria-activedescendant': store.getState().isOpen && store.getState().activeItemId !== null ? "".concat(props.id, "-item-").concat(store.getState().activeItemId) : undefined,
'aria-controls': store.getState().isOpen ? "".concat(props.id, "-list") : undefined,

@@ -933,3 +933,3 @@ 'aria-labelledby': "".concat(props.id, "-label"),

autoCapitalize: 'off',
enterKeyHint: selectedItem !== null && selectedItem !== void 0 && selectedItem.itemUrl ? 'go' : 'search',
enterKeyHint: activeItem !== null && activeItem !== void 0 && activeItem.itemUrl ? 'go' : 'search',
spellCheck: 'false',

@@ -1017,5 +1017,5 @@ autoFocus: props.autoFocus,

role: 'option',
'aria-selected': store.getState().selectedItemId === item.__autocomplete_id,
'aria-selected': store.getState().activeItemId === item.__autocomplete_id,
onMouseMove: function onMouseMove(event) {
if (item.__autocomplete_id === store.getState().selectedItemId) {
if (item.__autocomplete_id === store.getState().activeItemId) {
return;

@@ -1025,11 +1025,11 @@ }

store.dispatch('mousemove', item.__autocomplete_id);
var highlightedItem = getSelectedItem(store.getState());
var activeItem = getActiveItem(store.getState());
if (store.getState().selectedItemId !== null && highlightedItem) {
var _item = highlightedItem.item,
itemInputValue = highlightedItem.itemInputValue,
itemUrl = highlightedItem.itemUrl,
_source = highlightedItem.source;
if (store.getState().activeItemId !== null && activeItem) {
var _item = activeItem.item,
itemInputValue = activeItem.itemInputValue,
itemUrl = activeItem.itemUrl,
_source = activeItem.source;
_source.onHighlight(_objectSpread2({
_source.onActive(_objectSpread2({
event: event,

@@ -1061,3 +1061,3 @@ item: _item,

// We can therefore skip the state change because it will update
// the `selectedItemId`, resulting in a UI flash, especially
// the `activeItemId`, resulting in a UI flash, especially
// noticeable on mobile.

@@ -1105,7 +1105,7 @@

if (state.isOpen === false || state.selectedItemId === null) {
if (state.isOpen === false || state.activeItemId === null) {
return null;
}
var _ref2 = getSelectedItem(state),
var _ref2 = getActiveItem(state),
itemInputValue = _ref2.itemInputValue;

@@ -1118,6 +1118,6 @@

switch (action.type) {
case 'setSelectedItemId':
case 'setActiveItemId':
{
return _objectSpread2(_objectSpread2({}, state), {}, {
selectedItemId: action.payload
activeItemId: action.payload
});

@@ -1165,3 +1165,3 @@ }

var nextState = _objectSpread2(_objectSpread2({}, state), {}, {
selectedItemId: getNextSelectedItemId(1, state.selectedItemId, getItemsCount(state), action.props.defaultSelectedItemId)
activeItemId: getNextActiveItemId(1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)
});

@@ -1179,3 +1179,3 @@

var _nextState = _objectSpread2(_objectSpread2({}, state), {}, {
selectedItemId: getNextSelectedItemId(-1, state.selectedItemId, getItemsCount(state), action.props.defaultSelectedItemId)
activeItemId: getNextActiveItemId(-1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)
});

@@ -1209,3 +1209,3 @@

return _objectSpread2(_objectSpread2({}, state), {}, {
selectedItemId: null,
activeItemId: null,
isOpen: false,

@@ -1219,7 +1219,7 @@ status: 'idle'

return _objectSpread2(_objectSpread2({}, state), {}, {
selectedItemId: // Since we open the panel on reset when openOnFocus=true
// we need to restore the highlighted index to the defaultSelectedItemId. (DocSearch use-case)
activeItemId: // Since we open the panel on reset when openOnFocus=true
// we need to restore the highlighted index to the defaultActiveItemId. (DocSearch use-case)
// Since we close the panel when openOnFocus=false
// we lose track of the highlighted index. (Query-suggestions use-case)
action.props.openOnFocus === true ? action.props.defaultSelectedItemId : null,
action.props.openOnFocus === true ? action.props.defaultActiveItemId : null,
status: 'idle',

@@ -1233,4 +1233,4 @@ query: ''

return _objectSpread2(_objectSpread2({}, state), {}, {
selectedItemId: action.props.defaultSelectedItemId,
isOpen: action.props.openOnFocus || state.query.length > 0
activeItemId: action.props.defaultActiveItemId,
isOpen: action.props.openOnFocus || Boolean(state.query)
});

@@ -1247,3 +1247,3 @@ }

isOpen: false,
selectedItemId: null
activeItemId: null
});

@@ -1255,3 +1255,3 @@ }

return _objectSpread2(_objectSpread2({}, state), {}, {
selectedItemId: action.payload
activeItemId: action.payload
});

@@ -1263,3 +1263,3 @@ }

return _objectSpread2(_objectSpread2({}, state), {}, {
selectedItemId: action.props.defaultSelectedItemId
activeItemId: action.props.defaultActiveItemId
});

@@ -1310,5 +1310,5 @@ }

},
onHighlight: function onHighlight(fn) {
onActive: function onActive(fn) {
subscribers.push({
onHighlight: fn
onActive: fn
});

@@ -1323,3 +1323,3 @@ }

var version = '1.0.0-alpha.38';
var version = '1.0.0-alpha.39';

@@ -1326,0 +1326,0 @@ exports.createAutocomplete = createAutocomplete;

@@ -1,3 +0,3 @@

/*! @algolia/autocomplete-core 1.0.0-alpha.38 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete.js */
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/autocomplete-core"]={})}(this,(function(e){"use strict";function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function n(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?r(Object(o),!0).forEach((function(t){n(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):r(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function u(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function a(e){return e.reduce((function(e,t){return e.concat(t)}),[])}var c=0;function s(e){return 0===e.collections.length?0:e.collections.reduce((function(e,t){return e+t.items.length}),0)}function f(e,t,n,r){if(e<0&&(null===t||null!==r&&0===t))return n+e;var o=(null===t?-1:t)+e;return o<=-1||o>=n?null===r?null:0:o}var p=function(){};function m(e){var t=function(e){var t=e.collections.map((function(e){return e.items.length})).reduce((function(e,t,n){var r=(e[n-1]||0)+t;return e.push(r),e}),[]).reduce((function(t,n){return n<=e.selectedItemId?t+1:t}),0);return e.collections[t]}(e);if(!t)return null;var n=t.items[function(e){for(var t=e.state,n=e.collection,r=!1,o=0,i=0;!1===r;){var u=t.collections[o];if(u===n){r=!0;break}i+=u.items.length,o++}return t.selectedItemId-i}({state:e,collection:t})],r=t.source;return{item:n,itemInputValue:r.getItemInputValue({item:n,state:e}),itemUrl:r.getItemUrl({item:n,state:e}),source:r}}function d(e,t){return e===t||e.contains(t)}function v(e,n){var r,i="undefined"!=typeof window?window:{},l=e.plugins||[];return o(o({debug:!1,openOnFocus:!1,placeholder:"",autoFocus:!1,defaultSelectedItemId:null,stallThreshold:300,environment:i,shouldPanelShow:function(e){return s(e.state)>0}},e),{},{id:null!==(r=e.id)&&void 0!==r?r:"autocomplete-".concat(c++),plugins:l,initialState:o({selectedItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),l.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),l.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),l.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(r){return Promise.all([].concat(u(l.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,n){return Promise.resolve(e(n)).then((function(e){return Array.isArray(e),"The `getSources` function must return an array of sources but returned type ".concat(JSON.stringify(t(e)),":\n\n").concat(JSON.stringify(e,null,2)),Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){var t=o({getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onHighlight:p},e);return Promise.resolve(t)})))}))}(e,r)}))).then((function(e){return a(e)})).then((function(e){return e.map((function(e){return o(o({},e),{},{onSelect:function(t){e.onSelect(t),n.forEach((function(e){var n;return null===(n=e.onSelect)||void 0===n?void 0:n.call(e,t)}))},onHighlight:function(t){e.onHighlight(t),n.forEach((function(e){var n;return null===(n=e.onHighlight)||void 0===n?void 0:n.call(e,t)}))}})}))}))},navigator:o({navigate:function(e){var t=e.itemUrl;i.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=i.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;i.open(t,"_blank","noopener")}},e.navigator)})}var g=null;function h(e){var n=e.event,r=e.nextState,u=void 0===r?{}:r,l=e.props,a=e.query,c=e.refresh,s=e.store,f=i(e,["event","nextState","props","query","refresh","store"]);if(l.onInput)return Promise.resolve(l.onInput(o({query:a,refresh:c,state:s.getState()},f)));g&&l.environment.clearTimeout(g);var p,d=f.setCollections,v=f.setIsOpen,h=f.setQuery,S=f.setSelectedItemId,y=f.setStatus;return h(a),S(l.defaultSelectedItemId),0===a.length&&!1===l.openOnFocus?(y("idle"),d(s.getState().collections.map((function(e){return o(o({},e),{},{items:[]})}))),v(null!==(p=u.isOpen)&&void 0!==p?p:l.shouldPanelShow({state:s.getState()})),Promise.resolve()):(y("loading"),g=l.environment.setTimeout((function(){y("stalled")}),l.stallThreshold),l.getSources(o({query:a,refresh:c,state:s.getState()},f)).then((function(e){return y("loading"),Promise.all(e.map((function(e){return Promise.resolve(e.getItems(o({query:a,refresh:c,state:s.getState()},f))).then((function(n){return Array.isArray(n),"The `getItems` function must return an array of items but returned type ".concat(JSON.stringify(t(n)),":\n\n").concat(JSON.stringify(n,null,2)),{source:e,items:n}}))}))).then((function(e){var t;y("idle"),d(e),v(null!==(t=u.isOpen)&&void 0!==t?t:0===a.length&&l.openOnFocus||l.shouldPanelShow({state:s.getState()}));var r=m(s.getState());if(null!==s.getState().selectedItemId&&r){var i=r.item,p=r.itemInputValue,g=r.itemUrl,h=r.source;h.onHighlight(o({event:n,item:i,itemInputValue:p,itemUrl:g,refresh:c,source:h,state:s.getState()},f))}})).catch((function(e){throw y("error"),e})).finally((function(){g&&l.environment.clearTimeout(g)}))})))}function S(e){var t=e.props,n=e.refresh,r=e.store,u=i(e,["props","refresh","store"]);return{getEnvironmentProps:function(e){return{onTouchStart:function(n){!1!==r.getState().isOpen&&n.target!==e.inputElement&&(!1===[e.formElement,e.panelElement].some((function(e){return d(e,n.target)||d(e,t.environment.document.activeElement)}))&&r.dispatch("blur",null))},onTouchMove:function(n){!1!==r.getState().isOpen&&e.inputElement===t.environment.document.activeElement&&n.target!==e.inputElement&&e.inputElement.blur()}}},getRootProps:function(e){return o({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-owns":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},e)},getFormProps:function(e){e.inputElement;return o({action:"",noValidate:!0,role:"search",onSubmit:function(i){var l;i.preventDefault(),t.onSubmit(o({event:i,refresh:n,state:r.getState()},u)),r.dispatch("submit",null),null===(l=e.inputElement)||void 0===l||l.blur()},onReset:function(i){var l;i.preventDefault(),t.onReset(o({event:i,refresh:n,state:r.getState()},u)),r.dispatch("reset",null),null===(l=e.inputElement)||void 0===l||l.focus()}},i(e,["inputElement"]))},getLabelProps:function(e){return o({htmlFor:"".concat(t.id,"-input"),id:"".concat(t.id,"-label")},e)},getInputProps:function(e){function l(e){(t.openOnFocus||r.getState().query.length>0)&&h(o({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},u)),r.dispatch("focus",null)}var a="ontouchstart"in t.environment,c=e||{},s=(c.inputElement,c.maxLength),f=void 0===s?512:s,p=i(c,["inputElement","maxLength"]),d=m(r.getState());return o({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().selectedItemId?"".concat(t.id,"-item-").concat(r.getState().selectedItemId):void 0,"aria-controls":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:r.getState().completion||r.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:null!=d&&d.itemUrl?"go":"search",spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:f,type:"search",onChange:function(e){h(o({event:e,props:t,query:e.currentTarget.value.slice(0,f),refresh:n,store:r},u))},onKeyDown:function(e){!function(e){var t=e.event,n=e.props,r=e.refresh,u=e.store,l=i(e,["event","props","refresh","store"]);if("ArrowUp"===t.key||"ArrowDown"===t.key){t.preventDefault(),u.dispatch(t.key,null);var a=n.environment.document.getElementById("".concat(n.id,"-item-").concat(u.getState().selectedItemId));a&&(a.scrollIntoViewIfNeeded?a.scrollIntoViewIfNeeded(!1):a.scrollIntoView(!1));var c=m(u.getState());if(null!==u.getState().selectedItemId&&c){var s=c.item,f=c.itemInputValue,p=c.itemUrl,d=c.source;d.onHighlight(o({event:t,item:s,itemInputValue:f,itemUrl:p,refresh:r,source:d,state:u.getState()},l))}}else if("Escape"===t.key)t.preventDefault(),u.dispatch(t.key,null);else if("Enter"===t.key){if(null===u.getState().selectedItemId||u.getState().collections.every((function(e){return 0===e.items.length})))return;t.preventDefault();var v=m(u.getState()),g=v.item,S=v.itemInputValue,y=v.itemUrl,I=v.source;if(t.metaKey||t.ctrlKey)void 0!==y&&(I.onSelect(o({event:t,item:g,itemInputValue:S,itemUrl:y,refresh:r,source:I,state:u.getState()},l)),n.navigator.navigateNewTab({itemUrl:y,item:g,state:u.getState()}));else if(t.shiftKey)void 0!==y&&(I.onSelect(o({event:t,item:g,itemInputValue:S,itemUrl:y,refresh:r,source:I,state:u.getState()},l)),n.navigator.navigateNewWindow({itemUrl:y,item:g,state:u.getState()}));else if(t.altKey);else{if(void 0!==y)return I.onSelect(o({event:t,item:g,itemInputValue:S,itemUrl:y,refresh:r,source:I,state:u.getState()},l)),void n.navigator.navigate({itemUrl:y,item:g,state:u.getState()});h(o({event:t,nextState:{isOpen:!1},props:n,query:S,refresh:r,store:u},l)).then((function(){I.onSelect(o({event:t,item:g,itemInputValue:S,itemUrl:y,refresh:r,source:I,state:u.getState()},l))}))}}}(o({event:e,props:t,refresh:n,store:r},u))},onFocus:l,onBlur:function(){a||r.dispatch("blur",null)},onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||l(n)}},p)},getPanelProps:function(e){return o({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){return o({role:"listbox","aria-labelledby":"".concat(t.id,"-label"),id:"".concat(t.id,"-list")},e)},getItemProps:function(e){var l=e.item,a=e.source,c=i(e,["item","source"]);return o({id:"".concat(t.id,"-item-").concat(l.__autocomplete_id),role:"option","aria-selected":r.getState().selectedItemId===l.__autocomplete_id,onMouseMove:function(e){if(l.__autocomplete_id!==r.getState().selectedItemId){r.dispatch("mousemove",l.__autocomplete_id);var t=m(r.getState());if(null!==r.getState().selectedItemId&&t){var i=t.item,a=t.itemInputValue,c=t.itemUrl,s=t.source;s.onHighlight(o({event:e,item:i,itemInputValue:a,itemUrl:c,refresh:n,source:s,state:r.getState()},u))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var i=a.getItemInputValue({item:l,state:r.getState()}),c=a.getItemUrl({item:l,state:r.getState()});(c?Promise.resolve():h(o({event:e,nextState:{isOpen:!1},props:t,query:i,refresh:n,store:r},u))).then((function(){a.onSelect(o({event:e,item:l,itemInputValue:i,itemUrl:c,refresh:n,source:a,state:r.getState()},u))}))}},c)}}}function y(e){var t=e.state;return!1===t.isOpen||null===t.selectedItemId?null:m(t).itemInputValue||null}var I=function(e,t){switch(t.type){case"setSelectedItemId":return o(o({},e),{},{selectedItemId:t.payload});case"setQuery":return o(o({},e),{},{query:t.payload,completion:null});case"setCollections":return o(o({},e),{},{collections:t.payload});case"setIsOpen":return o(o({},e),{},{isOpen:t.payload});case"setStatus":return o(o({},e),{},{status:t.payload});case"setContext":return o(o({},e),{},{context:o(o({},e.context),t.payload)});case"ArrowDown":var n=o(o({},e),{},{selectedItemId:f(1,e.selectedItemId,s(e),t.props.defaultSelectedItemId)});return o(o({},n),{},{completion:y({state:n})});case"ArrowUp":var r=o(o({},e),{},{selectedItemId:f(-1,e.selectedItemId,s(e),t.props.defaultSelectedItemId)});return o(o({},r),{},{completion:y({state:r})});case"Escape":return e.isOpen?o(o({},e),{},{isOpen:!1,completion:null}):o(o({},e),{},{query:"",status:"idle",collections:[]});case"submit":return o(o({},e),{},{selectedItemId:null,isOpen:!1,status:"idle"});case"reset":return o(o({},e),{},{selectedItemId:!0===t.props.openOnFocus?t.props.defaultSelectedItemId:null,status:"idle",query:""});case"focus":return o(o({},e),{},{selectedItemId:t.props.defaultSelectedItemId,isOpen:t.props.openOnFocus||e.query.length>0});case"blur":return t.props.debug?e:o(o({},e),{},{isOpen:!1,selectedItemId:null});case"mousemove":return o(o({},e),{},{selectedItemId:t.payload});case"mouseleave":return o(o({},e),{},{selectedItemId:t.props.defaultSelectedItemId});default:return"The reducer action ".concat(JSON.stringify(t.type)," is not supported."),e}};e.createAutocomplete=function(e){var t=[],n=v(e,t),r=function(e,t){var n=t.initialState;return{getState:function(){return n},dispatch:function(r,i){var u=o({},n);n=e(n,{type:r,props:t,payload:i}),t.onStateChange({state:n,prevState:u})}}}(I,n),i=function(e){var t=e.store;return{setSelectedItemId:function(e){t.dispatch("setSelectedItemId",e)},setQuery:function(e){t.dispatch("setQuery",e)},setCollections:function(e){var n=0,r=e.map((function(e){return o(o({},e),{},{items:a(e.items).map((function(e){return o(o({},e),{},{__autocomplete_id:n++})}))})}));t.dispatch("setCollections",r)},setIsOpen:function(e){t.dispatch("setIsOpen",e)},setStatus:function(e){t.dispatch("setStatus",e)},setContext:function(e){t.dispatch("setContext",e)}}}({store:r}),u=S(o({props:n,refresh:l,store:r},i));function l(){return h(o({event:new Event("input"),nextState:{isOpen:r.getState().isOpen},props:n,query:r.getState().query,refresh:l,store:r},i))}return n.plugins.forEach((function(e){var n;return null===(n=e.subscribe)||void 0===n?void 0:n.call(e,o(o({},i),{},{onSelect:function(e){t.push({onSelect:e})},onHighlight:function(e){t.push({onHighlight:e})}}))})),o(o({refresh:l},u),i)},e.getDefaultProps=v,e.version="1.0.0-alpha.38",Object.defineProperty(e,"__esModule",{value:!0})}));
/*! @algolia/autocomplete-core 1.0.0-alpha.39 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete.js */
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/autocomplete-core"]={})}(this,(function(e){"use strict";function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function n(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?r(Object(o),!0).forEach((function(t){n(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):r(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function a(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function c(e){return 0===e.collections.length?0:e.collections.reduce((function(e,t){return e+t.items.length}),0)}function l(e){return e.reduce((function(e,t){return e.concat(t)}),[])}var s=0;function f(e,t,n,r){if(e<0&&(null===t||null!==r&&0===t))return n+e;var o=(null===t?-1:t)+e;return o<=-1||o>=n?null===r?null:0:o}var p=function(){};function m(e){var t=function(e){var t=e.collections.map((function(e){return e.items.length})).reduce((function(e,t,n){var r=(e[n-1]||0)+t;return e.push(r),e}),[]).reduce((function(t,n){return n<=e.activeItemId?t+1:t}),0);return e.collections[t]}(e);if(!t)return null;var n=t.items[function(e){for(var t=e.state,n=e.collection,r=!1,o=0,i=0;!1===r;){var a=t.collections[o];if(a===n){r=!0;break}i+=a.items.length,o++}return t.activeItemId-i}({state:e,collection:t})],r=t.source;return{item:n,itemInputValue:r.getItemInputValue({item:n,state:e}),itemUrl:r.getItemUrl({item:n,state:e}),source:r}}function v(e,t){return e===t||e.contains(t)}function d(e,n){var r,i="undefined"!=typeof window?window:{},u=e.plugins||[];return o(o({debug:!1,openOnFocus:!1,placeholder:"",autoFocus:!1,defaultActiveItemId:null,stallThreshold:300,environment:i,shouldPanelShow:function(e){return c(e.state)>0}},e),{},{id:null!==(r=e.id)&&void 0!==r?r:"autocomplete-".concat(s++),plugins:u,initialState:o({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),u.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),u.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),u.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(r){return Promise.all([].concat(a(u.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,n){return Promise.resolve(e(n)).then((function(e){return Array.isArray(e),"The `getSources` function must return an array of sources but returned type ".concat(JSON.stringify(t(e)),":\n\n").concat(JSON.stringify(e,null,2)),Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){var t=o({getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:p},e);return Promise.resolve(t)})))}))}(e,r)}))).then((function(e){return l(e)})).then((function(e){return e.map((function(e){return o(o({},e),{},{onSelect:function(t){e.onSelect(t),n.forEach((function(e){var n;return null===(n=e.onSelect)||void 0===n?void 0:n.call(e,t)}))},onActive:function(t){e.onActive(t),n.forEach((function(e){var n;return null===(n=e.onActive)||void 0===n?void 0:n.call(e,t)}))}})}))}))},navigator:o({navigate:function(e){var t=e.itemUrl;i.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=i.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;i.open(t,"_blank","noopener")}},e.navigator)})}var g=null;function y(e){var n=e.event,r=e.nextState,a=void 0===r?{}:r,u=e.props,c=e.query,l=e.refresh,s=e.store,f=i(e,["event","nextState","props","query","refresh","store"]);if(u.onInput)return Promise.resolve(u.onInput(o({query:c,refresh:l,state:s.getState()},f)));g&&u.environment.clearTimeout(g);var p,v=f.setCollections,d=f.setIsOpen,y=f.setQuery,h=f.setActiveItemId,I=f.setStatus;return y(c),h(u.defaultActiveItemId),c||!1!==u.openOnFocus?(I("loading"),g=u.environment.setTimeout((function(){I("stalled")}),u.stallThreshold),u.getSources(o({query:c,refresh:l,state:s.getState()},f)).then((function(e){return I("loading"),Promise.all(e.map((function(e){return Promise.resolve(e.getItems(o({query:c,refresh:l,state:s.getState()},f))).then((function(n){return Array.isArray(n),"The `getItems` function must return an array of items but returned type ".concat(JSON.stringify(t(n)),":\n\n").concat(JSON.stringify(n,null,2)),{source:e,items:n}}))}))).then((function(e){var t;I("idle"),v(e),d(null!==(t=a.isOpen)&&void 0!==t?t:!c&&u.openOnFocus||u.shouldPanelShow({state:s.getState()}));var r=m(s.getState());if(null!==s.getState().activeItemId&&r){var i=r.item,p=r.itemInputValue,g=r.itemUrl,y=r.source;y.onActive(o({event:n,item:i,itemInputValue:p,itemUrl:g,refresh:l,source:y,state:s.getState()},f))}})).catch((function(e){throw I("error"),e})).finally((function(){g&&u.environment.clearTimeout(g)}))}))):(I("idle"),v(s.getState().collections.map((function(e){return o(o({},e),{},{items:[]})}))),d(null!==(p=a.isOpen)&&void 0!==p?p:u.shouldPanelShow({state:s.getState()})),Promise.resolve())}function h(e){var t=e.props,n=e.refresh,r=e.store,a=i(e,["props","refresh","store"]);return{getEnvironmentProps:function(e){return{onTouchStart:function(n){!1!==r.getState().isOpen&&n.target!==e.inputElement&&(!1===[e.formElement,e.panelElement].some((function(e){return v(e,n.target)||v(e,t.environment.document.activeElement)}))&&r.dispatch("blur",null))},onTouchMove:function(n){!1!==r.getState().isOpen&&e.inputElement===t.environment.document.activeElement&&n.target!==e.inputElement&&e.inputElement.blur()}}},getRootProps:function(e){return o({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-owns":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},e)},getFormProps:function(e){e.inputElement;return o({action:"",noValidate:!0,role:"search",onSubmit:function(i){var u;i.preventDefault(),t.onSubmit(o({event:i,refresh:n,state:r.getState()},a)),r.dispatch("submit",null),null===(u=e.inputElement)||void 0===u||u.blur()},onReset:function(i){var u;i.preventDefault(),t.onReset(o({event:i,refresh:n,state:r.getState()},a)),r.dispatch("reset",null),null===(u=e.inputElement)||void 0===u||u.focus()}},i(e,["inputElement"]))},getLabelProps:function(e){return o({htmlFor:"".concat(t.id,"-input"),id:"".concat(t.id,"-label")},e)},getInputProps:function(e){function u(e){(t.openOnFocus||Boolean(r.getState().query))&&y(o({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},a)),r.dispatch("focus",null)}var c="ontouchstart"in t.environment,l=e||{},s=(l.inputElement,l.maxLength),f=void 0===s?512:s,p=i(l,["inputElement","maxLength"]),v=m(r.getState());return o({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?"".concat(t.id,"-item-").concat(r.getState().activeItemId):void 0,"aria-controls":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:r.getState().completion||r.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:null!=v&&v.itemUrl?"go":"search",spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:f,type:"search",onChange:function(e){y(o({event:e,props:t,query:e.currentTarget.value.slice(0,f),refresh:n,store:r},a))},onKeyDown:function(e){!function(e){var t=e.event,n=e.props,r=e.refresh,a=e.store,u=i(e,["event","props","refresh","store"]);if("ArrowUp"===t.key||"ArrowDown"===t.key){t.preventDefault(),a.dispatch(t.key,null);var c=n.environment.document.getElementById("".concat(n.id,"-item-").concat(a.getState().activeItemId));c&&(c.scrollIntoViewIfNeeded?c.scrollIntoViewIfNeeded(!1):c.scrollIntoView(!1));var l=m(a.getState());if(null!==a.getState().activeItemId&&l){var s=l.item,f=l.itemInputValue,p=l.itemUrl,v=l.source;v.onActive(o({event:t,item:s,itemInputValue:f,itemUrl:p,refresh:r,source:v,state:a.getState()},u))}}else if("Escape"===t.key)t.preventDefault(),a.dispatch(t.key,null);else if("Enter"===t.key){if(null===a.getState().activeItemId||a.getState().collections.every((function(e){return 0===e.items.length})))return;t.preventDefault();var d=m(a.getState()),g=d.item,h=d.itemInputValue,I=d.itemUrl,S=d.source;if(t.metaKey||t.ctrlKey)void 0!==I&&(S.onSelect(o({event:t,item:g,itemInputValue:h,itemUrl:I,refresh:r,source:S,state:a.getState()},u)),n.navigator.navigateNewTab({itemUrl:I,item:g,state:a.getState()}));else if(t.shiftKey)void 0!==I&&(S.onSelect(o({event:t,item:g,itemInputValue:h,itemUrl:I,refresh:r,source:S,state:a.getState()},u)),n.navigator.navigateNewWindow({itemUrl:I,item:g,state:a.getState()}));else if(t.altKey);else{if(void 0!==I)return S.onSelect(o({event:t,item:g,itemInputValue:h,itemUrl:I,refresh:r,source:S,state:a.getState()},u)),void n.navigator.navigate({itemUrl:I,item:g,state:a.getState()});y(o({event:t,nextState:{isOpen:!1},props:n,query:h,refresh:r,store:a},u)).then((function(){S.onSelect(o({event:t,item:g,itemInputValue:h,itemUrl:I,refresh:r,source:S,state:a.getState()},u))}))}}}(o({event:e,props:t,refresh:n,store:r},a))},onFocus:u,onBlur:function(){c||r.dispatch("blur",null)},onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||u(n)}},p)},getPanelProps:function(e){return o({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){return o({role:"listbox","aria-labelledby":"".concat(t.id,"-label"),id:"".concat(t.id,"-list")},e)},getItemProps:function(e){var u=e.item,c=e.source,l=i(e,["item","source"]);return o({id:"".concat(t.id,"-item-").concat(u.__autocomplete_id),role:"option","aria-selected":r.getState().activeItemId===u.__autocomplete_id,onMouseMove:function(e){if(u.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",u.__autocomplete_id);var t=m(r.getState());if(null!==r.getState().activeItemId&&t){var i=t.item,c=t.itemInputValue,l=t.itemUrl,s=t.source;s.onActive(o({event:e,item:i,itemInputValue:c,itemUrl:l,refresh:n,source:s,state:r.getState()},a))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var i=c.getItemInputValue({item:u,state:r.getState()}),l=c.getItemUrl({item:u,state:r.getState()});(l?Promise.resolve():y(o({event:e,nextState:{isOpen:!1},props:t,query:i,refresh:n,store:r},a))).then((function(){c.onSelect(o({event:e,item:u,itemInputValue:i,itemUrl:l,refresh:n,source:c,state:r.getState()},a))}))}},l)}}}function I(e){var t=e.state;return!1===t.isOpen||null===t.activeItemId?null:m(t).itemInputValue||null}var S=function(e,t){switch(t.type){case"setActiveItemId":return o(o({},e),{},{activeItemId:t.payload});case"setQuery":return o(o({},e),{},{query:t.payload,completion:null});case"setCollections":return o(o({},e),{},{collections:t.payload});case"setIsOpen":return o(o({},e),{},{isOpen:t.payload});case"setStatus":return o(o({},e),{},{status:t.payload});case"setContext":return o(o({},e),{},{context:o(o({},e.context),t.payload)});case"ArrowDown":var n=o(o({},e),{},{activeItemId:f(1,e.activeItemId,c(e),t.props.defaultActiveItemId)});return o(o({},n),{},{completion:I({state:n})});case"ArrowUp":var r=o(o({},e),{},{activeItemId:f(-1,e.activeItemId,c(e),t.props.defaultActiveItemId)});return o(o({},r),{},{completion:I({state:r})});case"Escape":return e.isOpen?o(o({},e),{},{isOpen:!1,completion:null}):o(o({},e),{},{query:"",status:"idle",collections:[]});case"submit":return o(o({},e),{},{activeItemId:null,isOpen:!1,status:"idle"});case"reset":return o(o({},e),{},{activeItemId:!0===t.props.openOnFocus?t.props.defaultActiveItemId:null,status:"idle",query:""});case"focus":return o(o({},e),{},{activeItemId:t.props.defaultActiveItemId,isOpen:t.props.openOnFocus||Boolean(e.query)});case"blur":return t.props.debug?e:o(o({},e),{},{isOpen:!1,activeItemId:null});case"mousemove":return o(o({},e),{},{activeItemId:t.payload});case"mouseleave":return o(o({},e),{},{activeItemId:t.props.defaultActiveItemId});default:return"The reducer action ".concat(JSON.stringify(t.type)," is not supported."),e}};e.createAutocomplete=function(e){var t=[],n=d(e,t),r=function(e,t){var n=t.initialState;return{getState:function(){return n},dispatch:function(r,i){var a=o({},n);n=e(n,{type:r,props:t,payload:i}),t.onStateChange({state:n,prevState:a})}}}(S,n),i=function(e){var t=e.store;return{setActiveItemId:function(e){t.dispatch("setActiveItemId",e)},setQuery:function(e){t.dispatch("setQuery",e)},setCollections:function(e){var n=0,r=e.map((function(e){return o(o({},e),{},{items:l(e.items).map((function(e){return o(o({},e),{},{__autocomplete_id:n++})}))})}));t.dispatch("setCollections",r)},setIsOpen:function(e){t.dispatch("setIsOpen",e)},setStatus:function(e){t.dispatch("setStatus",e)},setContext:function(e){t.dispatch("setContext",e)}}}({store:r}),a=h(o({props:n,refresh:u,store:r},i));function u(){return y(o({event:new Event("input"),nextState:{isOpen:r.getState().isOpen},props:n,query:r.getState().query,refresh:u,store:r},i))}return n.plugins.forEach((function(e){var n;return null===(n=e.subscribe)||void 0===n?void 0:n.call(e,o(o({},i),{},{onSelect:function(e){t.push({onSelect:e})},onActive:function(e){t.push({onActive:e})}}))})),o(o({refresh:u},a),i)},e.getDefaultProps=d,e.version="1.0.0-alpha.39",Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=index.production.js.map
{
"name": "@algolia/autocomplete-core",
"description": "Core primitives for building autocomplete experiences.",
"version": "1.0.0-alpha.38",
"version": "1.0.0-alpha.39",
"license": "MIT",

@@ -34,4 +34,4 @@ "homepage": "https://github.com/algolia/autocomplete.js",

"dependencies": {
"@algolia/autocomplete-shared": "1.0.0-alpha.38"
"@algolia/autocomplete-shared": "1.0.0-alpha.39"
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc