@algolia/autocomplete-js 1.3.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +10 -10
  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 +746 -455
  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,4 +1,4 @@
1
- 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; }
1
+ 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; }
2
2
 
3
3
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
4
4
 
@@ -12,6 +12,7 @@ import { createReactiveWrapper } from './createReactiveWrapper';
12
12
  import { getDefaultOptions } from './getDefaultOptions';
13
13
  import { getPanelPlacementStyle } from './getPanelPlacementStyle';
14
14
  import { renderPanel, renderSearchBox } from './render';
15
+ import { userAgents } from './userAgents';
15
16
  import { mergeDeep, setProperties } from './utils';
16
17
  export function autocomplete(options) {
17
18
  var _createEffectWrapper = createEffectWrapper(),
@@ -58,6 +59,10 @@ export function autocomplete(options) {
58
59
 
59
60
  var hasNoResultsTemplate = Boolean(hasNoResultsSourceTemplateRef.current || props.value.renderer.renderNoResults);
60
61
  return !hasItems && hasNoResultsTemplate || hasItems;
62
+ },
63
+ __autocomplete_metadata: {
64
+ userAgents: userAgents,
65
+ options: options
61
66
  }
62
67
  }));
63
68
  });
@@ -1,4 +1,4 @@
1
- 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; }
1
+ 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; }
2
2
 
3
3
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
4
4
 
@@ -1,4 +1,6 @@
1
- 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; }
1
+ var _excluded = ["autocompleteScopeApi", "environment", "classNames", "getInputProps", "getInputPropsCore", "onDetachedEscape", "state"];
2
+
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; }
2
4
 
3
5
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
4
6
 
@@ -18,7 +20,7 @@ export var Input = function Input(_ref) {
18
20
  getInputPropsCore = _ref.getInputPropsCore,
19
21
  onDetachedEscape = _ref.onDetachedEscape,
20
22
  state = _ref.state,
21
- props = _objectWithoutProperties(_ref, ["autocompleteScopeApi", "environment", "classNames", "getInputProps", "getInputPropsCore", "onDetachedEscape", "state"]);
23
+ props = _objectWithoutProperties(_ref, _excluded);
22
24
 
23
25
  var createDomElement = getCreateDomElement(environment);
24
26
  var element = createDomElement('input', props);
@@ -1,10 +1,12 @@
1
+ var _excluded = ["children"];
2
+
1
3
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
4
 
3
5
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
6
 
5
7
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
8
 
7
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
9
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
8
10
 
9
11
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
10
12
 
@@ -19,7 +21,7 @@ export function getCreateDomElement(environment) {
19
21
  return function createDomElement(tagName, _ref) {
20
22
  var _ref$children = _ref.children,
21
23
  children = _ref$children === void 0 ? [] : _ref$children,
22
- props = _objectWithoutProperties(_ref, ["children"]);
24
+ props = _objectWithoutProperties(_ref, _excluded);
23
25
 
24
26
  var element = environment.document.createElement(tagName);
25
27
  setProperties(element, props);
@@ -39,10 +39,10 @@ export declare function getDefaultOptions<TItem extends BaseItem>(options: Autoc
39
39
  value: string;
40
40
  autoFocus: boolean;
41
41
  placeholder: string;
42
- autoComplete: "on" | "off";
43
- autoCorrect: "on" | "off";
44
- autoCapitalize: "on" | "off";
45
- enterKeyHint: "go" | "search";
42
+ autoComplete: "off" | "on";
43
+ autoCorrect: "off" | "on";
44
+ autoCapitalize: "off" | "on";
45
+ enterKeyHint: "search" | "go";
46
46
  spellCheck: "false";
47
47
  maxLength: number;
48
48
  type: "search";
@@ -64,10 +64,10 @@ export declare function getDefaultOptions<TItem extends BaseItem>(options: Autoc
64
64
  value: string;
65
65
  autoFocus: boolean;
66
66
  placeholder: string;
67
- autoComplete: "on" | "off";
68
- autoCorrect: "on" | "off";
69
- autoCapitalize: "on" | "off";
70
- enterKeyHint: "go" | "search";
67
+ autoComplete: "off" | "on";
68
+ autoCorrect: "off" | "on";
69
+ autoCapitalize: "off" | "on";
70
+ enterKeyHint: "search" | "go";
71
71
  spellCheck: "false";
72
72
  maxLength: number;
73
73
  type: "search";
@@ -139,7 +139,7 @@ export declare function getDefaultOptions<TItem extends BaseItem>(options: Autoc
139
139
  props: {
140
140
  role: string;
141
141
  'aria-expanded': boolean;
142
- 'aria-haspopup': boolean | "dialog" | "menu" | "false" | "true" | "grid" | "listbox" | "tree" | undefined;
142
+ 'aria-haspopup': boolean | "dialog" | "menu" | "true" | "false" | "grid" | "listbox" | "tree" | undefined;
143
143
  'aria-owns': string | undefined;
144
144
  'aria-labelledby': string;
145
145
  };
@@ -148,7 +148,7 @@ export declare function getDefaultOptions<TItem extends BaseItem>(options: Autoc
148
148
  } & import("@algolia/autocomplete-core").AutocompleteScopeApi<TItem>) => {
149
149
  role: string;
150
150
  'aria-expanded': boolean;
151
- 'aria-haspopup': boolean | "dialog" | "menu" | "false" | "true" | "grid" | "listbox" | "tree" | undefined;
151
+ 'aria-haspopup': boolean | "dialog" | "menu" | "true" | "false" | "grid" | "listbox" | "tree" | undefined;
152
152
  'aria-owns': string | undefined;
153
153
  'aria-labelledby': string;
154
154
  };
@@ -1,4 +1,6 @@
1
- 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; }
1
+ var _excluded = ["classNames", "container", "getEnvironmentProps", "getFormProps", "getInputProps", "getItemProps", "getLabelProps", "getListProps", "getPanelProps", "getRootProps", "panelContainer", "panelPlacement", "render", "renderNoResults", "renderer", "detachedMediaQuery", "components", "translations"];
2
+
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; }
2
4
 
3
5
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
4
6
 
@@ -70,7 +72,7 @@ export function getDefaultOptions(options) {
70
72
  detachedMediaQuery = options.detachedMediaQuery,
71
73
  components = options.components,
72
74
  translations = options.translations,
73
- core = _objectWithoutProperties(options, ["classNames", "container", "getEnvironmentProps", "getFormProps", "getInputProps", "getItemProps", "getLabelProps", "getListProps", "getPanelProps", "getRootProps", "panelContainer", "panelPlacement", "render", "renderNoResults", "renderer", "detachedMediaQuery", "components", "translations"]);
75
+ core = _objectWithoutProperties(options, _excluded);
74
76
  /* eslint-disable no-restricted-globals */
75
77
 
76
78
 
@@ -1,6 +1,6 @@
1
1
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
2
 
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; }
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; }
4
4
 
5
5
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
6
6
 
@@ -1,16 +1,13 @@
1
- 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; }
1
+ 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; }
2
2
 
3
3
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
4
4
 
5
5
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
6
 
7
7
  import { createRequester, fetchAlgoliaResults } from '@algolia/autocomplete-preset-algolia';
8
- import { version } from '../version';
8
+ import { userAgents } from '../userAgents';
9
9
  export var createAlgoliaRequester = createRequester(function (params) {
10
10
  return fetchAlgoliaResults(_objectSpread(_objectSpread({}, params), {}, {
11
- userAgents: [{
12
- segment: 'autocomplete-js',
13
- version: version
14
- }]
11
+ userAgents: userAgents
15
12
  }));
16
13
  });
@@ -1,4 +1,4 @@
1
- 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; }
1
+ 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; }
2
2
 
3
3
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
4
4
 
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export declare const userAgents: {
2
+ segment: string;
3
+ version: string;
4
+ }[];
@@ -0,0 +1,5 @@
1
+ import { version } from '@algolia/autocomplete-shared';
2
+ export var userAgents = [{
3
+ segment: 'autocomplete-js',
4
+ version: version
5
+ }];
@@ -4,7 +4,7 @@ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread n
4
4
 
5
5
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
6
 
7
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
7
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
8
8
 
9
9
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
10
10
 
@@ -12,8 +12,8 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
12
12
 
13
13
  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); }
14
14
 
15
- var isObject = function isObject(value) {
16
- return value && _typeof(value) === 'object';
15
+ var isPlainObject = function isPlainObject(value) {
16
+ return value && _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Object]';
17
17
  };
18
18
 
19
19
  export function mergeDeep() {
@@ -28,7 +28,7 @@ export function mergeDeep() {
28
28
 
29
29
  if (Array.isArray(accValue) && Array.isArray(currentValue)) {
30
30
  acc[key] = accValue.concat.apply(accValue, _toConsumableArray(currentValue));
31
- } else if (isObject(accValue) && isObject(currentValue)) {
31
+ } else if (isPlainObject(accValue) && isPlainObject(currentValue)) {
32
32
  acc[key] = mergeDeep(accValue, currentValue);
33
33
  } else {
34
34
  acc[key] = currentValue;
@@ -48,35 +48,35 @@ export function setProperty(dom, name, value) {
48
48
  }
49
49
  } // Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6
50
50
  else if (name[0] === 'o' && name[1] === 'n') {
51
- useCapture = name !== (name = name.replace(/Capture$/, ''));
52
- nameLower = name.toLowerCase();
53
- if (nameLower in dom) name = nameLower;
54
- name = name.slice(2);
55
- if (!dom._listeners) dom._listeners = {};
56
- dom._listeners[name] = value;
51
+ useCapture = name !== (name = name.replace(/Capture$/, ''));
52
+ nameLower = name.toLowerCase();
53
+ if (nameLower in dom) name = nameLower;
54
+ name = name.slice(2);
55
+ if (!dom._listeners) dom._listeners = {};
56
+ dom._listeners[name] = value;
57
57
 
58
- if (value) {
59
- if (!oldValue) dom.addEventListener(name, eventProxy, useCapture);
60
- } else {
61
- dom.removeEventListener(name, eventProxy, useCapture);
62
- }
63
- } else if (name !== 'list' && name !== 'tagName' && // HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using
64
- // setAttribute
65
- name !== 'form' && name !== 'type' && name !== 'size' && name !== 'download' && name !== 'href' && name in dom) {
66
- dom[name] = value == null ? '' : value;
67
- } else if (typeof value != 'function' && name !== 'dangerouslySetInnerHTML') {
68
- if (value == null || value === false && // ARIA-attributes have a different notion of boolean values.
69
- // The value `false` is different from the attribute not
70
- // existing on the DOM, so we can't remove it. For non-boolean
71
- // ARIA-attributes we could treat false as a removal, but the
72
- // amount of exceptions would cost us too many bytes. On top of
73
- // that other VDOM frameworks also always stringify `false`.
74
- !/^ar/.test(name)) {
75
- dom.removeAttribute(name);
76
- } else {
77
- dom.setAttribute(name, value);
78
- }
58
+ if (value) {
59
+ if (!oldValue) dom.addEventListener(name, eventProxy, useCapture);
60
+ } else {
61
+ dom.removeEventListener(name, eventProxy, useCapture);
62
+ }
63
+ } else if (name !== 'list' && name !== 'tagName' && // HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using
64
+ // setAttribute
65
+ name !== 'form' && name !== 'type' && name !== 'size' && name !== 'download' && name !== 'href' && name in dom) {
66
+ dom[name] = value == null ? '' : value;
67
+ } else if (typeof value != 'function' && name !== 'dangerouslySetInnerHTML') {
68
+ if (value == null || value === false && // ARIA-attributes have a different notion of boolean values.
69
+ // The value `false` is different from the attribute not
70
+ // existing on the DOM, so we can't remove it. For non-boolean
71
+ // ARIA-attributes we could treat false as a removal, but the
72
+ // amount of exceptions would cost us too many bytes. On top of
73
+ // that other VDOM frameworks also always stringify `false`.
74
+ !/^ar/.test(name)) {
75
+ dom.removeAttribute(name);
76
+ } else {
77
+ dom.setAttribute(name, value);
79
78
  }
79
+ }
80
80
  }
81
81
 
82
82
  function getNormalizedName(name) {