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=
