PageSourceSearch

https://www.holistics.io/javascripts/controllers/popover_controller-e2a3683b.js

js holistics.io collected 2026-09-24 09:00:15 UTC 2,266 bytes, 1 lines download raw bytes

1!function(){"use strict";function e(e){return e.hasAttribute("data-popover-disabled")}function t(e){var t=m.get(e);t&&(window.clearTimeout(t),m["delete"](e))}function n(e){var t=p.get(e),n=v.get(e);if(t&&n){var o=n.getBoundingClientRect(),i=t.offsetWidth,a=t.offsetHeight,d=document.documentElement.clientWidth,c=document.documentElement.clientHeight,r="bottom"===t.getAttribute("data-placement");!r&&o.top-u-a<s?r=!0:r&&o.bottom+u+a>c-s&&(r=!1);var f=r?o.bottom+u:o.top-u-a,l=o.left+o.width/2-i/2;l<s&&(l=s),l+i>d-s&&(l=d-s-i),t.style.left=Math.round(l)+"px",t.style.top=Math.round(f)+"px"}}function o(o){if(!e(o)){var i=p.get(o);i&&(t(o),i.parentNode!==document.body&&document.body.appendChild(i),i.classList.add(r),n(o),h.indexOf(o)<0&&h.push(o))}}function i(e){t(e);var n=p.get(e);n&&n.classList.remove(r);var o=h.indexOf(e);o>=0&&h.splice(o,1)}function a(e){t(e),m.set(e,window.setTimeout(function(){i(e)},f))}function d(e){if(!l.has(e)){l.add(e);var n=e.querySelector("[data-popover-trigger]"),d=e.querySelector("[data-popover-panel]");n&&d&&(p.set(e,d),v.set(e,n),n.addEventListener("mouseenter",function(){o(e)}),n.addEventListener("mouseleave",function(){a(e)}),n.addEventListener("focusin",function(){o(e)}),n.addEventListener("focusout",function(){a(e)}),e.hasAttribute("data-popover-passive")||n.addEventListener("click",function(t){t.preventDefault(),d.classList.contains(r)?i(e):o(e)}),d.addEventListener("mouseenter",function(){t(e)}),d.addEventListener("mouseleave",function(){a(e)}))}}function c(e){e=e||document,Array.prototype.slice.call(e.querySelectorAll("[data-popover]")).forEach(d)}var r="ds-popover__panel--open",u=8,s=8,f=200,l=new WeakSet,p=new WeakMap,v=new WeakMap,m=new WeakMap,h=[];document.addEventListener("keydown",function(e){"Escape"===e.key&&h.length&&h.slice().forEach(i)}),document.addEventListener("click",function(e){h.slice().forEach(function(t){var n=p.get(t),o=v.get(t);n&&n.contains(e.target)||o&&o.contains(e.target)||i(t)})}),window.addEventListener("scroll",function(){h.forEach(n)},!0),window.addEventListener("resize",function(){h.forEach(n)}),(window.H=window.H||{}).Popover={init:c,show:o,hide:i},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",function(){c(document)}):c(document)}();

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.