| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- /**
- * File polyfills.js.
- *
- * Polyfills for IE11.
- */
- /**
- * Polyfill for Element.closest() because we need to support IE11.
- *
- * @since Twenty Twenty-One 1.0
- *
- * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/closest
- */
- if ( ! Element.prototype.matches ) {
- Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
- }
- if ( ! Element.prototype.closest ) {
- Element.prototype.closest = function( s ) {
- var 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;
- };
- }
- /**
- * Polyfill for NodeList.foreach() because we need to support IE11.
- *
- * @since Twenty Twenty-One 1.0
- *
- * @see https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach
- */
- if ( window.NodeList && ! NodeList.prototype.forEach ) {
- NodeList.prototype.forEach = function( callback, thisArg ) {
- var i;
- thisArg = thisArg || window;
- for ( i = 0; i < this.length; i++ ) {
- callback.call( thisArg, this[i], i, this );
- }
- };
- }
|