| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 1 /*! @source https://github.com/jonathantneal/closest/blob/master/element-closest
    .js */ | 
|  | 2 | 
|  | 3 (function (ElementProto) { | 
|  | 4         if (typeof ElementProto.matches !== 'function') { | 
|  | 5                 ElementProto.matches = ElementProto.msMatchesSelector || Element
    Proto.mozMatchesSelector || ElementProto.webkitMatchesSelector || function match
    es(selector) { | 
|  | 6                         var element = this; | 
|  | 7                         var elements = (element.document || element.ownerDocumen
    t).querySelectorAll(selector); | 
|  | 8                         var index = 0; | 
|  | 9 | 
|  | 10                         while (elements[index] && elements[index] !== element) { | 
|  | 11                                 ++index; | 
|  | 12                         } | 
|  | 13 | 
|  | 14                         return Boolean(elements[index]); | 
|  | 15                 }; | 
|  | 16         } | 
|  | 17 | 
|  | 18         if (typeof ElementProto.closest !== 'function') { | 
|  | 19                 ElementProto.closest = function closest(selector) { | 
|  | 20                         var element = this; | 
|  | 21 | 
|  | 22                         while (element && element.nodeType === 1) { | 
|  | 23                                 if (element.matches(selector)) { | 
|  | 24                                         return element; | 
|  | 25                                 } | 
|  | 26 | 
|  | 27                                 element = element.parentNode; | 
|  | 28                         } | 
|  | 29 | 
|  | 30                         return null; | 
|  | 31                 }; | 
|  | 32         } | 
|  | 33 })(window.Element.prototype); | 
| OLD | NEW | 
|---|