1"use strict";(globalThis.webpackChunkloop_web=globalThis.webpackChunkloop_web||[]).push([[8258],{8258(e,t,s){s.r(t),s.d(t,{createFrom:()=>h});class i{constructor(e){this.el=e,this.width=0,this.resizeRequested=!1,this.resizeTimeout=null,this.storeItems(),this.mo=new MutationObserver(e=>{let t=!1;for(const s of e)"childList"===s.type&&(t=!0);t&&(this.storeItems(),this.requestResize())}),this.ro=new ResizeObserver(e=>{for(let t of e){const e=t.contentRect;e.width!=this.width&&(this.width=e.width,this.resizeRequested||this.requestResize())}}),this.mo.observe(this.el,{attributes:!1,childList:!0,subtree:!0}),this.ro.observe(this.el),[...e.querySelectorAll(".collapse")].forEach(e=>{e.addEventListener("hidden.bs.collapse",()=>{this.resizeRequested||this.requestResize()}),e.addEventListener("shown.bs.collapse",()=>{this.resizeRequested||this.requestResize()})}),[...e.querySelectorAll("img")].forEach(e=>{e.addEventListener("load",()=>{this.resizeRequested||this.requestResize()})}),window.addEventListener("listingUpdated",()=>{this.updateItemOrder(),this.resizeRequested||this.requestResize()})}storeItems(){this.setLabels=[],this.allSections=[],this.items=[];let e=this.el.querySelectorAll("*[data-hm-item]");if(null!=e)for(let t=0,s=e.length;t<s;t++){this.items[t]={orderIndex:t,obj:e[t],hidden:e[t].hasAttribute("data-hm-hidden"),sections:[]};let s=e[t].querySelectorAll("*[data-hm-section]");null!=s&&s.forEach(e=>{let s=(e.dataset.hmSection+"").toLowerCase(),i=this.setLabels.indexOf(s);i<0&&(this.setLabels.push(s),i=this.setLabels.length-1),this.items[t].sections[i]=e,this.allSections.push(e)})}}clearSections(){for(let e=0,t=this.allSections.length;e<t;e++)this.allSections[e].style.minHeight="unset"}updateItemOrder(){this.el.querySelectorAll("*[data-hm-item]").forEach((e,t)=>{for(let s=0,i=this.items.length;s<i;s++)if(this.items[s].obj==e){this.items[s].orderIndex=t,this.items[s].hidden=this.items[s].obj.hasAttribute("data-hm-hidden");break}}),this.items.sort((e,t)=>e.orderIndex-t.orderIndex)}update(){let e=[],t=0,s=0,i=0,h=this.items.length-1;for(let r=0;r<=h;r++)if(!this.items[r].hidden){let h=this.items[r].obj.getBoundingClientRect(),l=Math.floor(h.top);r>0&&Math.abs(l-t)>2&&(i=r-1,e.push({start:s,end:i}),s=r),t=l}s<h&&e.push({start:s,end:h}),this.updateItems(e),this.resizeRequested=!1}updateItems(e){const t=e.map(e=>this.setLabels.map((t,s)=>{let i=0;for(let t=e.start;t<=e.end;t++)if(!this.items[t].hidden){const e=this.items[t].sections[s];null!=e&&(i=Math.max(i,e.offsetHeight))}return Math.ceil(i)}));for(let s=0;s<e.length;s++)for(let i=0;i<this.setLabels.length;i++)for(let h=e[s].start;h<=e[s].end;h++){const e=this.items[h].sections[i];null!=e&&(e.style.minHeight=t[s][i]+"px")}}requestResize(){clearTimeout(this.resizeTimeout),this.resizeRequested=!0,this.resizeTimeout=setTimeout(()=>{this.resize()},200)}resize(){this.clearSections(),this.update()}}function h(e){e.forEach(e=>{1===e.nodeType&&new i(e)})}}}]);
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.