diff --git a/package-lock.json b/package-lock.json index cd9a968..4fdab4d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "1.3.1", "license": "BSD-3-Clause", "dependencies": { + "@babel/polyfill": "^7.10.4", "downshift": "^6.1.3", "fast-deep-equal": "^3.1.3", "node-polyglot": "^2.4.0", @@ -1158,6 +1159,16 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/polyfill": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.12.1.tgz", + "integrity": "sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==", + "deprecated": "🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.", + "dependencies": { + "core-js": "^2.6.5", + "regenerator-runtime": "^0.13.4" + } + }, "node_modules/@babel/preset-env": { "version": "7.14.4", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.4.tgz", @@ -1759,6 +1770,13 @@ "safe-buffer": "~5.1.1" } }, + "node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", + "hasInstallScript": true + }, "node_modules/core-js-compat": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.14.0.tgz", @@ -4510,6 +4528,15 @@ "@babel/helper-plugin-utils": "^7.12.13" } }, + "@babel/polyfill": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.12.1.tgz", + "integrity": "sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==", + "requires": { + "core-js": "^2.6.5", + "regenerator-runtime": "^0.13.4" + } + }, "@babel/preset-env": { "version": "7.14.4", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.4.tgz", @@ -5025,6 +5052,11 @@ "safe-buffer": "~5.1.1" } }, + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" + }, "core-js-compat": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.14.0.tgz", diff --git a/package.json b/package.json index 0d88568..b779e04 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "mocha": "^7.1.1" }, "dependencies": { + "@babel/polyfill": "^7.10.4", "downshift": "^6.1.3", "fast-deep-equal": "^3.1.3", "node-polyglot": "^2.4.0", diff --git a/src/polyfills/index.js b/src/polyfills/index.js new file mode 100644 index 0000000..efa747b --- /dev/null +++ b/src/polyfills/index.js @@ -0,0 +1,21 @@ +import '@babel/polyfill'; + +/** + * Adds DOM polyfills that babel polyfill doesn't include + */ +if (!Element.prototype.matches) { + Element.prototype.matches = Element.prototype.msMatchesSelector || + Element.prototype.webkitMatchesSelector; +} + +if (!Element.prototype.closest) { + Element.prototype.closest = function(s) { + let el = this; + + do { + if (Element.prototype.matches.call(el, s)) return el; + el = el.parentElement || el.parentNode; + } while (el !== null && el.nodeType === 1); + return null; + }; +} \ No newline at end of file