PageSourceSearch

https://www.freeadvice.com/wp-content/plugins/leads-master/assets/tlite.js

js freeadvice.com collected 2026-10-02 04:31:20 UTC 3,413 bytes, 134 lines download raw bytes

vendor: 3,413 bytes, lines 1-134
1function tlite(getTooltipOpts) {
2  document.addEventListener('mouseover', function (e) {
3    var el = e.target;
4    var opts = getTooltipOpts(el);
5
6    if (!opts) {
7      el = el.parentElement;
8      opts = el && getTooltipOpts(el);
9    }
10
11    opts && tlite.show(el, opts, true);
12  });
13}
14
15tlite.show = function (el, opts, isAuto) {
16  var fallbackAttrib = 'data-tlite';
17  opts = opts || {};
18
19  (el.tooltip || Tooltip(el, opts)).show();
20
21  function Tooltip(el, opts) {
22    var tooltipEl;
23    var showTimer;
24    var text;
25
26    el.addEventListener('mousedown', autoHide);
27    el.addEventListener('mouseleave', autoHide);
28
29    function show() {
30      text = el.title || el.getAttribute(fallbackAttrib) || text;
31      el.title = '';
32      el.setAttribute(fallbackAttrib, '');
33      text && !showTimer && (showTimer = setTimeout(fadeIn, isAuto ? 150 : 1))
34    }
35
36    function autoHide() {
37      tlite.hide(el, true);
38    }
39
40    function hide(isAutoHiding) {
41      if (isAuto === isAutoHiding) {
42        showTimer = clearTimeout(showTimer);
43        var parent = tooltipEl && tooltipEl.parentNode;
44        parent && parent.removeChild(tooltipEl);
45        tooltipEl = undefined;
46      }
47    }
48
49    function fadeIn() {
50      if (!tooltipEl) {
51        tooltipEl = createTooltip(el, text, opts);
52      }
53    }
54
55    return el.tooltip = {
56      show: show,
57      hide: hide
58    };
59  }
60
61  function createTooltip(el, text, opts) {
62    var tooltipEl = document.createElement('span');
63    var grav = opts.grav || el.getAttribute('data-tlite') || 'n';
64
65    tooltipEl.innerHTML = text;
66
67    el.appendChild(tooltipEl);
68
69    var vertGrav = grav[0] || '';
70    var horzGrav = grav[1] || '';
71
72    function positionTooltip() {
73      tooltipEl.className = 'tlite ' + 'tlite-' + vertGrav + horzGrav;
74
75      var arrowSize = 10;
76      var top = el.offsetTop;
77      var left = el.offsetLeft;
78
79      if (tooltipEl.offsetParent === el) {
80        top = left = 0;
81      }
82
83      var width = el.offsetWidth;
84      var height = el.offsetHeight;
85      var tooltipHeight = tooltipEl.offsetHeight;
86      var tooltipWidth = tooltipEl.offsetWidth;
87      var centerEl = left + (width / 2);
88
89      tooltipEl.style.top = (
90        vertGrav === 's' ? (top - tooltipHeight - arrowSize) :
91        vertGrav === 'n' ? (top + height + arrowSize) :
92        (top + (height / 2) - (tooltipHeight / 2))
93      ) + 'px';
94
95      tooltipEl.style.left = (
96        horzGrav === 'w' ? left :
97        horzGrav === 'e' ? left + width - tooltipWidth :
98        vertGrav === 'w' ? (left + width + arrowSize) :
99        vertGrav === 'e' ? (left - tooltipWidth - arrowSize) :
100        (centerEl - tooltipWidth / 2)
101      ) + 'px';
102    }
103
104    positionTooltip();
105
106    var rect = tooltipEl.getBoundingClientRect();
107
108    if (vertGrav === 's' && rect.top < 0) {
109      vertGrav = 'n';
110      positionTooltip();
111    } else if (vertGrav === 'n' && rect.bottom > window.innerHeight) {
112      vertGrav = 's';
113      positionTooltip();
114    } else if (vertGrav === 'e' && rect.left < 0) {
115      vertGrav = 'w';
116      positionTooltip();
117    } else if (vertGrav === 'w' && rect.right > window.innerWidth) {
118      vertGrav = 'e';
119      positionTooltip();
120    }
121
122    tooltipEl.className += ' tlite-visible';
123
124    return tooltipEl;
125  }
126};
127
128tlite.hide = function (el, isAuto) {
129  el.tooltip && el.tooltip.hide(isAuto);
130};
131
132if (typeof module !== 'undefined' && module.exports) {
133  module.exports = tlite;
134}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.