1window.TooltipPesquisa = { 2 _refDiv: null, 3 _popupId: null, 4 _handlersBound: false, 5 6 criarPopup: function (refDiv, idPopup, html) { 7 if (!refDiv || !html) 8 return false; 9 10 const elementoPesquisa = document.getElementById(refDiv); 11 if (!elementoPesquisa) 12 return false; 13 14 let popup = document.getElementById(idPopup); 15 if (popup) 16 popup.remove(); 17 18 popup = document.createElement('div'); 19 popup.id = idPopup; 20 popup.className = 'tooltipPesquisa'; 21 popup.style.position = 'fixed'; 22 popup.style.zIndex = '1100'; 23 popup.style.display = 'none'; 24 popup.innerHTML = html; 25 document.body.appendChild(popup); 26 27 this._refDiv = refDiv; 28 this._popupId = idPopup; 29 30 if (!this._handlersBound) { 31 this._handlersBound = true; 32 document.addEventListener('mouseover', (e) => this._onMouseOver(e)); 33 document.addEventListener('mouseout', (e) => this._onMouseOut(e)); 34 } 35 36 return true; 37 }, 38 39 _obterElementoPesquisa: function () { 40 return this._refDiv ? document.getElementById(this._refDiv) : null; 41 }, 42 43 _obterPopup: function () { 44 return this._popupId ? document.getElementById(this._popupId) : null; 45 }, 46 47 _estaNoCampo: function (node) { 48 const el = this._obterElementoPesquisa(); 49 return !!(el && node && el.contains(node)); 50 }, 51 52 _posicionarEMostrar: function () { 53 const el = this._obterElementoPesquisa(); 54 const popup = this._obterPopup(); 55 if (!el || !popup) 56 return; 57 58 const rect = el.getBoundingClientRect(); 59 popup.style.left = (rect.left + rect.width - 200) + 'px'; 60 popup.style.top = (rect.top + rect.height + 10) + 'px'; 61 popup.style.display = 'block'; 62 }, 63 64 _esconder: function () { 65 const popup = this._obterPopup(); 66 if (popup) 67 popup.style.display = 'none'; 68 }, 69 70 _onMouseOver: function (e) { 71 if (!this._estaNoCampo(e.target)) 72 return; 73 if (this._estaNoCampo(e.relatedTarget)) 74 return; 75 this._posicionarEMostrar(); 76 }, 77 78 _onMouseOut: function (e) { 79 if (!this._estaNoCampo(e.target)) 80 return; 81 if (this._estaNoCampo(e.relatedTarget)) 82 return; 83 this._esconder(); 84 } 85};
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.