text: /*******************************************************************************
   * Copyright 2018 Adobe
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   ******************************************************************************/
  
  /**
   * Element.matches()
   * https://developer.mozilla.org/enUS/docs/Web/API/Element/matches#Polyfill
   */
  if (!Element.prototype.matches) {
      Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
  }
  
  // eslint-disable-next-line valid-jsdoc
  /**
   * Element.closest()
   * https://developer.mozilla.org/enUS/docs/Web/API/Element/closest#Polyfill
   */
  if (!Element.prototype.closest) {
      Element.prototype.closest = function(s) {
          "use strict";
          var el = this;
          if (!document.documentElement.contains(el)) {
              return null;
          }
          do {
              if (el.matches(s)) {
                  return el;
              }
              el = el.parentElement || el.parentNode;
          } while (el !== null && el.nodeType === 1);
          return null;
      };
  }
  