toolshed-8.x-1.x-dev/js/widgets/Tooltip.js

js/widgets/Tooltip.js
"use strict";

(({
  behaviors,
  Toolshed: ts
}) => {
  /**
   * Show the tooltip content.
   *
   * @param {DOMElement} tip Tooltip content to show.
   */
  function showTooltip(tip) {
    tip.style.display = '';
  }
  ;

  /**
   * The hide the connected tooltip content.
   *
   * @param {DOMElement} tip Tooltip content to hide.
   */
  function hideTooltip(tip) {
    tip.style.display = 'none';
  }
  ;

  /**
   * Toggle the current tooltip display status.
   *
   * @param {DOMElement} tip Tooltip content to show or hide.
   */
  function toggleTooltip(tip) {
    tip.style.display = tip.style.display !== 'none' ? 'none' : '';
  }

  /**
   * Detect if hover functionality is available on the browser and switch
   * between displaying the tooltip on hover or click.
   */
  const attachTooltip = window.matchMedia('(hover: hover)').matches ? function (tool, tip) {
    tool.on('mouseover', e => showTooltip(tip));
    tool.on('mouseout', e => hideTooltip(tip));
    tool.on('focus', e => showTooltip(tip));
    tool.on('blur', e => hideTooltip(tip));
  } : function (tool, tip) {
    tool.on('click', e => toggleTooltip(tip));
    tool.on('focus', e => showTooltip(tip));
    tool.on('blur', e => hideTooltip(tip));
  };

  /**
   * Find and attach all instances of the tooltip.
   */
  behaviors.tsTooltip = {
    attach(context) {
      ts.walkByClass(context, 'ts-tooltip', el => {
        const tool = new ts.Element(el);
        const tip = tool.findByClass('ts-tooltip__content').item(0);

        // If tooltip content was found, attach the tooltip behavior to the
        // tooltip trigger element.
        if (tip) attachTooltip(tool, tip);
      }, 'ts-tooltip-process');
    }
  };
})(Drupal);
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0cy9Ub29sdGlwLmpzIiwibmFtZXMiOlsiYmVoYXZpb3JzIiwiVG9vbHNoZWQiLCJ0cyIsInNob3dUb29sdGlwIiwidGlwIiwic3R5bGUiLCJkaXNwbGF5IiwiaGlkZVRvb2x0aXAiLCJ0b2dnbGVUb29sdGlwIiwiYXR0YWNoVG9vbHRpcCIsIndpbmRvdyIsIm1hdGNoTWVkaWEiLCJtYXRjaGVzIiwidG9vbCIsIm9uIiwiZSIsInRzVG9vbHRpcCIsImF0dGFjaCIsImNvbnRleHQiLCJ3YWxrQnlDbGFzcyIsImVsIiwiRWxlbWVudCIsImZpbmRCeUNsYXNzIiwiaXRlbSIsIkRydXBhbCJdLCJzb3VyY2VzIjpbIndpZGdldHMvVG9vbHRpcC5lczYuanMiXSwic291cmNlc0NvbnRlbnQiOlsiKCh7IGJlaGF2aW9ycywgVG9vbHNoZWQ6IHRzIH0pID0+IHtcbiAgLyoqXG4gICAqIFNob3cgdGhlIHRvb2x0aXAgY29udGVudC5cbiAgICpcbiAgICogQHBhcmFtIHtET01FbGVtZW50fSB0aXAgVG9vbHRpcCBjb250ZW50IHRvIHNob3cuXG4gICAqL1xuICBmdW5jdGlvbiBzaG93VG9vbHRpcCh0aXApIHtcbiAgICB0aXAuc3R5bGUuZGlzcGxheSA9ICcnO1xuICB9O1xuXG4gIC8qKlxuICAgKiBUaGUgaGlkZSB0aGUgY29ubmVjdGVkIHRvb2x0aXAgY29udGVudC5cbiAgICpcbiAgICogQHBhcmFtIHtET01FbGVtZW50fSB0aXAgVG9vbHRpcCBjb250ZW50IHRvIGhpZGUuXG4gICAqL1xuICBmdW5jdGlvbiBoaWRlVG9vbHRpcCh0aXApIHtcbiAgICB0aXAuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgfTtcblxuICAvKipcbiAgICogVG9nZ2xlIHRoZSBjdXJyZW50IHRvb2x0aXAgZGlzcGxheSBzdGF0dXMuXG4gICAqXG4gICAqIEBwYXJhbSB7RE9NRWxlbWVudH0gdGlwIFRvb2x0aXAgY29udGVudCB0byBzaG93IG9yIGhpZGUuXG4gICAqL1xuICBmdW5jdGlvbiB0b2dnbGVUb29sdGlwKHRpcCkge1xuICAgIHRpcC5zdHlsZS5kaXNwbGF5ID0gdGlwLnN0eWxlLmRpc3BsYXkgIT09ICdub25lJyA/ICdub25lJyA6ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVjdCBpZiBob3ZlciBmdW5jdGlvbmFsaXR5IGlzIGF2YWlsYWJsZSBvbiB0aGUgYnJvd3NlciBhbmQgc3dpdGNoXG4gICAqIGJldHdlZW4gZGlzcGxheWluZyB0aGUgdG9vbHRpcCBvbiBob3ZlciBvciBjbGljay5cbiAgICovXG4gIGNvbnN0IGF0dGFjaFRvb2x0aXAgPSB3aW5kb3cubWF0Y2hNZWRpYSgnKGhvdmVyOiBob3ZlciknKS5tYXRjaGVzXG4gICAgPyBmdW5jdGlvbih0b29sLCB0aXApIHtcbiAgICAgIHRvb2wub24oJ21vdXNlb3ZlcicsIChlKSA9PiBzaG93VG9vbHRpcCh0aXApKTtcbiAgICAgIHRvb2wub24oJ21vdXNlb3V0JywgKGUpID0+IGhpZGVUb29sdGlwKHRpcCkpO1xuICAgICAgdG9vbC5vbignZm9jdXMnLCAoZSkgPT4gc2hvd1Rvb2x0aXAodGlwKSk7XG4gICAgICB0b29sLm9uKCdibHVyJywgKGUpID0+IGhpZGVUb29sdGlwKHRpcCkpO1xuICAgIH0gOiBmdW5jdGlvbih0b29sLCB0aXApIHtcbiAgICAgIHRvb2wub24oJ2NsaWNrJywgKGUpID0+IHRvZ2dsZVRvb2x0aXAodGlwKSk7XG4gICAgICB0b29sLm9uKCdmb2N1cycsIChlKSA9PnNob3dUb29sdGlwKHRpcCkpO1xuICAgICAgdG9vbC5vbignYmx1cicsIChlKSA9PiBoaWRlVG9vbHRpcCh0aXApKTtcbiAgICB9O1xuXG4gIC8qKlxuICAgKiBGaW5kIGFuZCBhdHRhY2ggYWxsIGluc3RhbmNlcyBvZiB0aGUgdG9vbHRpcC5cbiAgICovXG4gIGJlaGF2aW9ycy50c1Rvb2x0aXAgPSB7XG4gICAgYXR0YWNoKGNvbnRleHQpIHtcbiAgICAgIHRzLndhbGtCeUNsYXNzKGNvbnRleHQsICd0cy10b29sdGlwJywgKGVsKSA9PiB7XG4gICAgICAgIGNvbnN0IHRvb2wgPSBuZXcgdHMuRWxlbWVudChlbCk7XG4gICAgICAgIGNvbnN0IHRpcCA9IHRvb2wuZmluZEJ5Q2xhc3MoJ3RzLXRvb2x0aXBfX2NvbnRlbnQnKS5pdGVtKDApO1xuXG4gICAgICAgIC8vIElmIHRvb2x0aXAgY29udGVudCB3YXMgZm91bmQsIGF0dGFjaCB0aGUgdG9vbHRpcCBiZWhhdmlvciB0byB0aGVcbiAgICAgICAgLy8gdG9vbHRpcCB0cmlnZ2VyIGVsZW1lbnQuXG4gICAgICAgIGlmICh0aXApIGF0dGFjaFRvb2x0aXAodG9vbCwgdGlwKTtcbiAgICAgIH0sICd0cy10b29sdGlwLXByb2Nlc3MnKTtcbiAgICB9XG4gIH1cbn0pKERydXBhbCk7XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsQ0FBQyxDQUFDO0VBQUVBLFNBQVM7RUFBRUMsUUFBUSxFQUFFQztBQUFHLENBQUMsS0FBSztFQUNoQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0VBQ0UsU0FBU0MsV0FBVyxDQUFDQyxHQUFHLEVBQUU7SUFDeEJBLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDQyxPQUFPLEdBQUcsRUFBRTtFQUN4QjtFQUFDOztFQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7RUFDRSxTQUFTQyxXQUFXLENBQUNILEdBQUcsRUFBRTtJQUN4QkEsR0FBRyxDQUFDQyxLQUFLLENBQUNDLE9BQU8sR0FBRyxNQUFNO0VBQzVCO0VBQUM7O0VBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtFQUNFLFNBQVNFLGFBQWEsQ0FBQ0osR0FBRyxFQUFFO0lBQzFCQSxHQUFHLENBQUNDLEtBQUssQ0FBQ0MsT0FBTyxHQUFHRixHQUFHLENBQUNDLEtBQUssQ0FBQ0MsT0FBTyxLQUFLLE1BQU0sR0FBRyxNQUFNLEdBQUcsRUFBRTtFQUNoRTs7RUFFQTtBQUNGO0FBQ0E7QUFDQTtFQUNFLE1BQU1HLGFBQWEsR0FBR0MsTUFBTSxDQUFDQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQ0MsT0FBTyxHQUM3RCxVQUFTQyxJQUFJLEVBQUVULEdBQUcsRUFBRTtJQUNwQlMsSUFBSSxDQUFDQyxFQUFFLENBQUMsV0FBVyxFQUFHQyxDQUFDLElBQUtaLFdBQVcsQ0FBQ0MsR0FBRyxDQUFDLENBQUM7SUFDN0NTLElBQUksQ0FBQ0MsRUFBRSxDQUFDLFVBQVUsRUFBR0MsQ0FBQyxJQUFLUixXQUFXLENBQUNILEdBQUcsQ0FBQyxDQUFDO0lBQzVDUyxJQUFJLENBQUNDLEVBQUUsQ0FBQyxPQUFPLEVBQUdDLENBQUMsSUFBS1osV0FBVyxDQUFDQyxHQUFHLENBQUMsQ0FBQztJQUN6Q1MsSUFBSSxDQUFDQyxFQUFFLENBQUMsTUFBTSxFQUFHQyxDQUFDLElBQUtSLFdBQVcsQ0FBQ0gsR0FBRyxDQUFDLENBQUM7RUFDMUMsQ0FBQyxHQUFHLFVBQVNTLElBQUksRUFBRVQsR0FBRyxFQUFFO0lBQ3RCUyxJQUFJLENBQUNDLEVBQUUsQ0FBQyxPQUFPLEVBQUdDLENBQUMsSUFBS1AsYUFBYSxDQUFDSixHQUFHLENBQUMsQ0FBQztJQUMzQ1MsSUFBSSxDQUFDQyxFQUFFLENBQUMsT0FBTyxFQUFHQyxDQUFDLElBQUlaLFdBQVcsQ0FBQ0MsR0FBRyxDQUFDLENBQUM7SUFDeENTLElBQUksQ0FBQ0MsRUFBRSxDQUFDLE1BQU0sRUFBR0MsQ0FBQyxJQUFLUixXQUFXLENBQUNILEdBQUcsQ0FBQyxDQUFDO0VBQzFDLENBQUM7O0VBRUg7QUFDRjtBQUNBO0VBQ0VKLFNBQVMsQ0FBQ2dCLFNBQVMsR0FBRztJQUNwQkMsTUFBTSxDQUFDQyxPQUFPLEVBQUU7TUFDZGhCLEVBQUUsQ0FBQ2lCLFdBQVcsQ0FBQ0QsT0FBTyxFQUFFLFlBQVksRUFBR0UsRUFBRSxJQUFLO1FBQzVDLE1BQU1QLElBQUksR0FBRyxJQUFJWCxFQUFFLENBQUNtQixPQUFPLENBQUNELEVBQUUsQ0FBQztRQUMvQixNQUFNaEIsR0FBRyxHQUFHUyxJQUFJLENBQUNTLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDQyxJQUFJLENBQUMsQ0FBQyxDQUFDOztRQUUzRDtRQUNBO1FBQ0EsSUFBSW5CLEdBQUcsRUFBRUssYUFBYSxDQUFDSSxJQUFJLEVBQUVULEdBQUcsQ0FBQztNQUNuQyxDQUFDLEVBQUUsb0JBQW9CLENBQUM7SUFDMUI7RUFDRixDQUFDO0FBQ0gsQ0FBQyxFQUFFb0IsTUFBTSxDQUFDIn0=

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc