@algolia/autocomplete-core 1.15.0 → 1.16.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.
@@ -22,6 +22,7 @@ export function getDefaultProps(props, pluginSubscribers) {
22
22
  debug: false,
23
23
  openOnFocus: false,
24
24
  enterKeyHint: undefined,
25
+ ignoreCompositionEvents: false,
25
26
  placeholder: '',
26
27
  autoFocus: false,
27
28
  defaultActiveItemId: null,
@@ -15,7 +15,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
15
15
  import { noop } from '@algolia/autocomplete-shared';
16
16
  import { onInput } from './onInput';
17
17
  import { onKeyDown as _onKeyDown } from './onKeyDown';
18
- import { getActiveItem, getAutocompleteElementId, isOrContainsNode, isSamsung } from './utils';
18
+ import { getActiveItem, getAutocompleteElementId, isOrContainsNode, isSamsung, getNativeEvent } from './utils';
19
19
  export function getPropGetters(_ref) {
20
20
  var props = _ref.props,
21
21
  refresh = _ref.refresh,
@@ -167,6 +167,20 @@ export function getPropGetters(_ref) {
167
167
  maxLength: maxLength,
168
168
  type: 'search',
169
169
  onChange: function onChange(event) {
170
+ var value = event.currentTarget.value;
171
+ if (props.ignoreCompositionEvents && getNativeEvent(event).isComposing) {
172
+ setters.setQuery(value);
173
+ return;
174
+ }
175
+ onInput(_objectSpread({
176
+ event: event,
177
+ props: props,
178
+ query: value.slice(0, maxLength),
179
+ refresh: refresh,
180
+ store: store
181
+ }, setters));
182
+ },
183
+ onCompositionEnd: function onCompositionEnd(event) {
170
184
  onInput(_objectSpread({
171
185
  event: event,
172
186
  props: props,
@@ -176,6 +190,9 @@ export function getPropGetters(_ref) {
176
190
  }, setters));
177
191
  },
178
192
  onKeyDown: function onKeyDown(event) {
193
+ if (getNativeEvent(event).isComposing) {
194
+ return;
195
+ }
179
196
  _onKeyDown(_objectSpread({
180
197
  event: event,
181
198
  props: props,
@@ -0,0 +1 @@
1
+ export declare function getNativeEvent<TEvent>(event: TEvent): TEvent;
@@ -0,0 +1,3 @@
1
+ export function getNativeEvent(event) {
2
+ return event.nativeEvent || event;
3
+ }
@@ -8,3 +8,4 @@ export * from './getAutocompleteElementId';
8
8
  export * from './isOrContainsNode';
9
9
  export * from './isSamsung';
10
10
  export * from './mapToAlgoliaResponse';
11
+ export * from './getNativeEvent';
@@ -7,4 +7,5 @@ export * from './getActiveItem';
7
7
  export * from './getAutocompleteElementId';
8
8
  export * from './isOrContainsNode';
9
9
  export * from './isSamsung';
10
- export * from './mapToAlgoliaResponse';
10
+ export * from './mapToAlgoliaResponse';
11
+ export * from './getNativeEvent';
@@ -1,4 +1,4 @@
1
- /*! @algolia/autocomplete-core 1.15.0 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
1
+ /*! @algolia/autocomplete-core 1.16.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) :
@@ -291,7 +291,7 @@
291
291
  return undefined;
292
292
  }
293
293
 
294
- var version = '1.15.0';
294
+ var version = '1.16.0';
295
295
 
296
296
  var userAgents = [{
297
297
  segment: 'autocomplete-core',
@@ -906,6 +906,7 @@
906
906
  var setContext = _ref4.setContext,
907
907
  onSelect = _ref4.onSelect,
908
908
  onActive = _ref4.onActive;
909
+ var isAuthenticatedToken = false;
909
910
  function setInsightsContext(userToken) {
910
911
  setContext({
911
912
  algoliaInsightsPlugin: {
@@ -922,16 +923,24 @@
922
923
  setInsightsContext();
923
924
 
924
925
  // Handles user token changes
925
- insightsClient('onUserTokenChange', setInsightsContext);
926
+ insightsClient('onUserTokenChange', function (userToken) {
927
+ if (!isAuthenticatedToken) {
928
+ setInsightsContext(userToken);
929
+ }
930
+ });
926
931
  insightsClient('getUserToken', null, function (_error, userToken) {
927
- setInsightsContext(userToken);
932
+ if (!isAuthenticatedToken) {
933
+ setInsightsContext(userToken);
934
+ }
928
935
  });
929
936
 
930
937
  // Handles authenticated user token changes
931
938
  insightsClient('onAuthenticatedUserTokenChange', function (authenticatedUserToken) {
932
939
  if (authenticatedUserToken) {
940
+ isAuthenticatedToken = true;
933
941
  setInsightsContext(authenticatedUserToken);
934
942
  } else {
943
+ isAuthenticatedToken = false;
935
944
  insightsClient('getUserToken', null, function (_error, userToken) {
936
945
  return setInsightsContext(userToken);
937
946
  });
@@ -939,6 +948,7 @@
939
948
  });
940
949
  insightsClient('getAuthenticatedUserToken', null, function (_error, authenticatedUserToken) {
941
950
  if (authenticatedUserToken) {
951
+ isAuthenticatedToken = true;
942
952
  setInsightsContext(authenticatedUserToken);
943
953
  }
944
954
  });
@@ -1357,6 +1367,10 @@
1357
1367
  };
1358
1368
  }
1359
1369
 
1370
+ function getNativeEvent(event) {
1371
+ return event.nativeEvent || event;
1372
+ }
1373
+
1360
1374
  function createStore(reducer, props, onStoreStateChange) {
1361
1375
  var state = props.initialState;
1362
1376
  return {
@@ -1431,6 +1445,7 @@
1431
1445
  debug: false,
1432
1446
  openOnFocus: false,
1433
1447
  enterKeyHint: undefined,
1448
+ ignoreCompositionEvents: false,
1434
1449
  placeholder: '',
1435
1450
  autoFocus: false,
1436
1451
  defaultActiveItemId: null,
@@ -2152,6 +2167,20 @@
2152
2167
  maxLength: maxLength,
2153
2168
  type: 'search',
2154
2169
  onChange: function onChange(event) {
2170
+ var value = event.currentTarget.value;
2171
+ if (props.ignoreCompositionEvents && getNativeEvent(event).isComposing) {
2172
+ setters.setQuery(value);
2173
+ return;
2174
+ }
2175
+ onInput(_objectSpread2({
2176
+ event: event,
2177
+ props: props,
2178
+ query: value.slice(0, maxLength),
2179
+ refresh: refresh,
2180
+ store: store
2181
+ }, setters));
2182
+ },
2183
+ onCompositionEnd: function onCompositionEnd(event) {
2155
2184
  onInput(_objectSpread2({
2156
2185
  event: event,
2157
2186
  props: props,
@@ -2161,6 +2190,9 @@
2161
2190
  }, setters));
2162
2191
  },
2163
2192
  onKeyDown: function onKeyDown$1(event) {
2193
+ if (getNativeEvent(event).isComposing) {
2194
+ return;
2195
+ }
2164
2196
  onKeyDown(_objectSpread2({
2165
2197
  event: event,
2166
2198
  props: props,