text: (function (factory) {
      if (typeof define === 'function' && define.amd) {
          define(['jquery', 'hammerjs'], factory);
      } else if (typeof exports === 'object') {
          factory(require('jquery'), require('hammerjs'));
      } else {
          factory(jQuery, Hammer);
      }
  }(function ($, Hammer) {
      function hammerify(el, options) {
          let $el = $(el);
          if (!$el.data("hammer")) {
              $el.data("hammer", new Hammer($el[0], options));
          }
      }
  
      $.fn.hammer = function (options) {
          return this.each(function () {
              hammerify(this, options);
          });
      };
  
      // extend the emit method to also trigger jQuery events
      Hammer.Manager.prototype.emit = (function (originalEmit) {
          return function (type, data) {
              originalEmit.call(this, type, data);
              $(this.element).trigger({
                  type: type,
                  gesture: data
              });
          };
      })(Hammer.Manager.prototype.emit);
  }));